請求Servlet流程以及Servlet生命周期


一.Servlet的請求流程(Servlet工作原理解析)

二.Servlet的生命周期

   1.客戶端發送請求給服務器。

   2.服務器開始接受,先判斷該請求的servlet實例是否存在,如果不存在先裝載一個servlet類並創建實例。

      如果存在則直接調用該servlet的service方法,之后進行判斷是調用  doGet方法還是doPost方法。

   3.servlet創建實例后,調用init方法進行初始化。之后調用servce方法,判斷是調用doGet方法還是doPost方法。

   4.最后判斷服務器是否關閉,如果關閉則調用destroy方法。

 

三.Tomcat的Servlet容器裝載Servlet:

    1、自動裝載:某些Servlet如果需要在Servlet容器啟動時就加載,需要在web.xml下它的<Servlet>標簽里中,添加優先級代碼:

        <Servlet>

        <location-startup>1<location-startup>

        </Servlet>

         數字越小表示該servlet的優先級越高,會先於其他自動裝載的優先級較低的先裝載。

     2、Servlet容器啟動后,客戶首次向某個Servlet發送請求時,Tomcat的Servlet容器會加載一個Servlet。

     3、當Servlet類文件被更新后,也會重新加載。

     4、Servlet是長期駐留在內存里的。某個Servlet一旦被加載,就會長期存在於服務器的內存里,直到服務器關閉。

      5、Servlet被裝載后,Servlet容器創建一個Servlet實例並且調用Servlet的init()方法進行初始化。在Servlet的整個生命周期內,init()方法只被調用一次。

Servlet3.0新特性詳解

四:Servlet/JSP九大內置對象

五: Servlet的路徑跳轉

         一、JSP跳轉到Servlet

             1、相對路徑,如href="servlet/xxServlet" ,注意:如果寫成"/servletxxServlet"會報錯,因為第一個'/'表示的是【服務器根目錄http://localhost:8080/】

             2、絕對路徑,通過內置成員變量path實現,如href="<%=path%>/servlet/xxServlet"

             注意:這里的path得到的是項目根目錄,如【http://localhost:8080/xxProjectDemo】

       二、Servlet跳轉JSP

             1、請求重定向:response.sendRedirect(request.getContextPath()+"/xxx.jsp");

                  這里通過request.getContextPath()方法獲得項目根目錄,或者通過"../xxx.jsp"取得上路徑得到

             2、服務器內部轉發:request.getRequestDispatcher("../xxx.jsp").forward(req,resp);

注意:web.xml中url-pattern必須以/開頭,這里/表示項目的根目錄。

六:Servlet中獲取初始化參數

    首先設置初始化參數,可以有若干個參數。

     <servlet>
             <servlet-name>xxServlet</servlet-name>
             <servlet-class>com.xxx.xxServlet</servlet-class>
             <init-param>
                   <param-name>xxname</param-name>
                   <param-value>xxvalue</param-value>
             </init-param>
     </servlet>

    servlet中獲取值:String xxvalue = this.getInitParameter("xxname");

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM