一、Servlet的生命週期
在Web容器中,Servlet主要經歷4個階段瀏覽器
①、加載Servlet:當Tomcat第一次訪問Servlet的時候,Tomcat會負責建立Servlet的實例
②、初始化Servlet:當Servlet被實例化以後,Tomcat會調用init()方法來初始化這個對象
③、處理服務:當瀏覽器訪問Servlet的時候,Servlet會調用service()方法處理請求
④、銷燬:當Tomcat關閉或者檢測打Servlet要從Tomcat刪除的時候,會自動調用destory()方法,讓該實例佔用的資源釋放掉。
二、Servlet是單例的嗎,爲何
Servlet是單例的,瀏覽器屢次對Servlet的請求,通常狀況下,服務器只建立一個Servlet對象,也就是說,Servlet對象一旦建立了,就會駐留在內存中,爲後續的請求作服務,直到服務器關閉
三、GET和POST請求的區別
GET請求暴露請求信息,不安全,POST請求隱藏了請求信息,較安全
GET請求不能超過1KB,可傳輸的信息有限,不能上傳圖片
POST請求沒有限制請求的數據大小,能夠作圖片的上傳
四、Tomcat中如何解決中文亂碼問題
對於POST請求能夠設置請求編碼方式:request.setCharacterEncoding("UTF-8"),注意必須在獲取第一個參數以前設置,而且該方式只會POST方式有效
對於GET請求能夠從新設置Tomcat的編碼方式,修改Tomcat的配置文件,在conf/server.xml文件中,在端口號配置段,添加URIEncoding=「UTF-8」安全
五、forward與redirect的區別
forward:客戶端和瀏覽器只發出一次請求,地址欄不發生改變,資源是共享的
語法:request.getRequestDispatcher(path).forward(request,response)
redirect:客戶端和瀏覽器端發送兩次請求,地址欄發生改變,資源不共享
語法:response.sendRedirect(String location)
六、session和cookie區別
①、session的數據存放在服務器端,cookie的數據存放在客戶端
②、cookie不是很安全,能夠分析存放在本地的cookie並進行cookic欺騙。session較安全
③、session會在必定時間內保存在服務器上,當訪問增多,會比較佔用服務器的資源,從性能方面cookie更有優點
④、單個cookie在客戶端的限制是3k,session無限制服務器