java web筆記之Servlet生命週期

1.init(ServletConfig conf)或init()

加載Servlet時運行此方法,如果load-on-startup爲0,則客戶端第一次請求該Servlet時加載Servlet,如果load-on-startup配置爲1時,則容器啓動時加載Servlet.(此方法只會被服務器執行一次)

2.Service(ServletRequest req,ServletResponse res)

客戶端每次請求Servlet都會運行該方法,該方法判斷訪問類型,然後根據HttpServletRequest的getMethod()返回結果判斷是執行doGet還是doPost,doPut方法。

3.destory()

卸載Servlet時執行該方法,當容器關閉時會先卸載所有的Servlet,因此容器關閉時會執行destory方法。(此方法只會被服務器執行一次)

4.註解@PostConstruct與註解@PreDestory

這兩個註解可以影響生命週期,這兩個註解用來修飾一個非靜態的void()方法,而且這個方法不能有拋出異常聲明。
@PostConstruct:修飾的方法會在服務器加載Servlet的時候運行,並且只會被服務器調用一次,被@PostConstruct修飾的方法會在Servlet構造函數之後,init()方法之前運行
@PreDestory:修飾的方法會在destory()方法之運行,在Servlet被徹底卸載之前運行。PreDestory指的是Servlet銷燬之前,而不是deatory()方法之前。

5.注意

<span style="font-size:18px;"><web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5" <strong>metadata-complete="true"</strong>>
<web-app></span>

需要注意的是,註解多多少少會影響到服務器的啓動速度,服務器在啓動時會自動遍歷,看哪個地方用到註解了,可以在web.xml中設置<web-app>的metadata-complete屬性爲true來關掉服務器啓動時例行的註解檢查。

6.自動刷新(Refresh)

自動刷新不僅可以實現一段時間後自動跳轉到另一個頁面,還可以實現一段時間之後自動刷新本頁面。Servlet中通過HttpServletResponse對象設置Header屬性實現自動刷新效果。
<span style="font-size:18px;">response.setHeader("Refresh","1000;URL=http://localhost:8080/servlet/example.htm")</span>
其中1000爲時間,單位爲毫秒。URL參數指定的網頁就是1秒鐘之後跳轉的頁面。當URL設置的路徑爲Servlet自己的路徑時,就會每隔一秒鐘自動刷新本頁面一次。
提示:自動刷新與重定向原理是差不多的,如果把時間設定爲0,把URL設爲另外一個網址,效果就是重定向。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章