輕量級JavaEE企業應用實戰(六)

Servlet介紹

Servlet是一個特殊的Java類,必須繼承於HttpServlet,提供了不同的方法響應客戶端的請求:

    doGet:響應GET請求

    doPost:響應POST請求

    doPut:響應PUT請求

    doDelete:相應DELETE請求

HttpServlet還包含了兩種方法:

    init(ServletConfig config):創建實例時,初始化資源

    destory():銷燬Servlet實例,自動調用該方法回收資源

使用標籤形式的Servlet

@WebServlet(name="firstServlet", urlPattern={"/firstServlet"})
public class FirstServlet extends HttpServlet {
    //客戶端的響應方法,使用該方法可以響應客戶端所有的請求類型
    //service方法可以統一處理用戶請求
    public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //內容
    }
}
 
@WebServlet是屬於Servlet 3.0的Annoation
屬性:
   1.asyncSupported 非必須,指定該Servlet是否支持異步操作模式
   2.displayName 非必須,指定該Servlet的顯示名
   3.initParams 非必須,用於爲該Servlet配置參數
   4.loadOnStartup 非必須,用於將該Servlet配置成load-on-startup的Servlet
   5.name 非必須,指定該Servlet名稱
   6.urlPatterns/value  非必須,這兩個屬性都是處理該Servlet的URL
 
上述方式等同於
   <servlet>
      <servlet-name>firstServlet</servlet-name> //相當於name屬性
      <servlet-class>test.firstServlet</servlet-class> //實現類
   </servlet>
   <servlet-mapping>
      <servlet-name>firstServlet</servlet-name>
      <url-pattern>/first</url-pattern> //urlPattern屬性
   </servlet-mapping>

 

jsp/servlet生命週期

創建Servlet實例的時機

        1.客戶端第一次請求這個Servlet實例,系統創建該實例

        2.WEB應用啓動立即創建,即Load-on-startup

生命週期

        1.創建Servlet實例

        2.web容器調用init方法,進行初始化

        3.Servlet初始化後,將一直存在於容器中,用於響應客戶端請求

        4.web容器決定銷燬Servlet時,先調用destroy方法,通常在關閉web應用時銷燬servlet

 

load-on-startup

       

註解:
    @WebServlet(loadOnStartup=1)
等同於配置文件:
    <Servlet>
        ... //省略其他
        <load-on-startup>1</load-on-startup>
    </Servlet>


 initParams

註解:
@WebServlet(initParams={
	@WebInitParam(name="driver", value="com.mysql.jdbc.Driver"),
	@WebInitParam(name="url", value="jdbc:mysql://localhost:3306/javaee"),
	@WebInitParam(name="username", value="root"),
	@WebInitParam(name="password", value="root")})
調用:
	ServletConfig config = getServletConfig(); //獲取ServletConfig對象
	String driver = config.getInitParameter("driver"); //獲取配置參數driver
等同於配置文件:
	<servlet>
		<init-param>
			<param-name>driver</param-name>
			<param-value>com.mysql.jdbc.Driver</param-value>
		</init-param>
	</servlet>
 

使用Servlet作爲控制器

在標準MVC模式中

Servlet作爲控制器使用

        類似於調度員:將所有用戶請求都發給Servlet,Servlet調用Model處理用戶請求,並調用JSP呈現處理結果

        Model通常由JavaBean充當,所有業務邏輯,數據訪問邏輯都在Model中實現。可能還有豐富的組件,例如Dao,領域對象

JSP僅作爲View

        1.收集用戶的請求參數

        2.將應用的處理結果,狀態呈現給用戶

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