標籤:邏輯 整合通訊 lte 而且 全域變數 ice url uri 伺服器端
一、get請求和post請求的區別:
1.get請求是通過url傳遞參數,post請求是通過請求體傳遞參數的
2.get請求最多允許傳遞255個字元,對長度有限制,所以資料比較大的時候我們使用post請求,尤其是做上傳的時候用post請求!
3.get請求我們在瀏覽器上是可以看到請求參數的,而post請求在瀏覽器地址欄中是看不到請求參數的!
4.在表單中一般我們都使用post請求,除了在表單中,頁面中的其它地方基本上都是使用get請求!
二、servlet是web的三大組件之一;web的三大組件是指:Servlet、Filter、Listener
三、生命週期
servlet是由tomcat伺服器來管理的!
servlet生命週期:是指servlet對象由產生到銷毀的過程!
servlet生命週期涉及的幾個方法:
1.構造器方法:只會在第一次訪問這個servlet的時候調用一次,調用一次就說明servlet是單例的,但是servlet是多線程的,
非安全執行緒的,也就是說在servlet中我們盡量不要在service方法中操作全域變數!
2.init方法:init方法只會在第一次訪問servlet的時候調用一次,對servlet對象進行初始化操作!
3.service:service方法會在每次訪問這個servlet的時候都調用一次,而且我們的商務邏輯也是寫在這個service方法!
4.destroy方法::destroy方法只會在我們的項目卸載的時候調用一次,也就是說在伺服器關閉的時候會在伺服器關閉的時候調用一次!
四、轉寄和重新導向
轉寄:當瀏覽器向伺服器發送請求的時候,伺服器自己不處理,而是調用其它的web資源進行處理!
重新導向:當瀏覽器向伺服器發送請求的時候,伺服器返回給瀏覽器一個特殊的響應,這個特殊的響應告訴瀏覽器再向另一個地址發送一個請求!
轉寄和重新導向的區別:
發生在瀏覽器端還是伺服器 瀏覽器的請求次數 瀏覽器地址欄是否發生變化 瀏覽器是否能夠感知到
轉寄[request] 發生在伺服器端 1 不發生變化 感知不到
重新導向[response] 發生在瀏覽器端 2 發生變化 能感知到!
五、編碼問題分析及請求編碼
通訊雙方在進行通訊的時候,實際上是將通訊的內容【資訊】是按照一定的規則轉化為二進位進行通訊的
而這個一定的規則就是字元的編碼:ascii,gb2312,gbk,iso8859-1,utf-8;
在請求到達的時候,另一方就需要解碼!
亂碼原因:
通訊雙方的編碼方式和解碼方式不一致造成的,
解決辦法:
整合通訊雙方的編碼方式和解碼方式,都使用utf-8編碼!
編碼分類:
請求編碼
瀏覽器編碼---》伺服器解碼iso8859-1
響應編碼
伺服器編碼----》瀏覽器解碼
伺服器端預設使用的是iso8859-1編碼,而瀏覽器預設使用的是gb2312,當然我們也可以在頁面中告訴瀏覽器用什麼編碼方式!
get請求:
統一瀏覽器和伺服器端的編碼格式為utf-8編碼:在server.xml檔案的connector標籤中指定編碼格式為utf-8編碼:URIEncoding="utf8"
post請求!
我們可以在post方法中在第一次擷取請求參數之前通過request.setCharacterEncoding("utf-8");來設定解碼格式!
JAVA基礎篇—Servlet小結