1. 程式人生 > >重定向和servlet生命周期

重定向和servlet生命周期

如何 pan family pattern 優先級 ont servlet htm ide

重定向
(1)什麽是重定向
服務器通知瀏覽器向一個新的地址發送請求。
註:可以發送一個302狀態碼和一個Location消息頭。(該消息頭包含了一個地址,稱之為重定向地址),瀏覽器收到之後,會立即向重定向地址發送請求。
(2)如何重定向
response.sendRedirect(String url);
註:
a.url就是重定向地址。
b.重定向之前,容器會先清空response對象中保存的數據。
(3)特點
a.重定向地址是任意的。
b.重定向之後,瀏覽器地址欄的地址會發生改變。


1.數據庫處理中文需要註意的問題
數據庫中的某些驅動,默認會使用“iso-8859-1”來編碼,對於中文就會發生亂碼。
解決方式:
mysql:
jdbc:mysql://localhost:3306/數據庫名?
useUnicode=true&characterEncoding=utf-8

2.servlet的生命周期


(1)什麽是servlet的生命周期
容器如何去創建servlet對象,如何對其進行初始化處理,如何調用其方法來處理請求,以及如何銷毀該對象的整個過程。
(2)生命周期分為哪幾個階段
1)實例化
a.什麽是實例化?
容器調用servlet的構造器,創建相應的對象。
b.什麽時候實例化?
情況1:容器收到請求之後。
情況2:容器啟動之後,立即創建。
<load-on-startup></load-on-startup>
參數值要求是一個大於等於0的整數,越小,優先級越高(即先創建)。
註:容器只會創建一個實例。
2)初始化
a.什麽是初始化
容器調用servlet對象的init方法。該方法只會執行一次。
b.GenericServlet的init方法時如何實現的。
將容易傳遞過來的ServletConfig對象保存下來,並且提供了一個獲得該對象的方法(getServletConfig)。
c.只需要覆蓋override GenericServlet提供的init()方法。
d.初始化參數
step1,配置

<init-param>
<param-name>company</param-name>
<param-value>西北工業大學</param-value>
</init-param>
step2,讀取
String ServletConfig.getInitParameter(String paramName);
3)就緒
4)銷毀
(3)相關的及各類與接口
1)Servlet接口
init
service
destory
2)GenericServlet抽象類
實現了Servlet接口中的部分方法(init,destory)
3)HttpServlet抽象類
繼承了GenericServlet抽象類,實現了service方法。

3.容器如何處理請求資源路徑
比如,在瀏覽器地址欄輸入:http://ip:port/web04-3/abc.html
step1,容器依據應用名("/web04-3")找到應用所在的文件夾。
step2,容器默認會認為調用的是一個servlet,去web.xml查找有沒有一個和“/abc.html”匹配的servlet。
(1)精確匹配
<url-pattern>/abc.html</url-pattern>
(2)通配符匹配
使用“*”匹配0個或者多個字符,比如<url-pattern>/*</url-pattren>
(3)後綴匹配
使用“*.”開頭,後接多個字符,比如<url-pattern>*.do</url-pattren>會匹配所有以.do結尾的請求。
step3,如果沒有匹配的servlet,則容器會查找相應的文件。

重定向和servlet生命周期