Servlet

Servlet的開發​

  • Servlet是一個特殊的Java類,必須繼承HttpServlet
  • doGet 響應客戶頓的GET請求
  • doPost 響應客戶端的POST請求 (重寫service()方法響應客戶端所有請求)
  • init( ServletConfig config) 創建servlet實例時,初始化Servlet資源
  • destory() 銷燬實例時,自動調用該方法的回收資源

Servlet的配置

  • 1、在Servlet類中使用@WebServlet註解進行配置
  • 2、在web.xml文件中進行配置
    <!-- 配置Servlet的名字 -->
        <servlet>
            <!-- 指定Servlet的名字,
                相當於指定@WebServlet的name屬性 -->
            <servlet-name>firstServlet</servlet-name>
            <!-- 指定Servlet的實現類 -->
            <servlet-class>lee.FirstServlet</servlet-class>
        </servlet>
        <!-- 配置Servlet的URL -->
        <servlet-mapping>
            <!-- 指定Servlet的名字 -->
            <servlet-name>firstServlet</servlet-name>
            <!-- 指定Servlet映射的URL地址,
                相當於指定@WebServlet的urlPatterns屬性-->
            <url-pattern>/aa</url-pattern>
        </servlet-mapping>

JSP/Servlet的生命週期

創建實例————初始化————響應請求————資源回收————實例被銷燬

創建實例的兩個時機

  • (1)用戶請求時
  • (2)應用啓動時
 @WebServlet(loadOnStartup=1) //整型值越小,Servlet就越先實例化
    public class TimerServlet extends HttpServlet
    {
        public void init(ServletConfig config)throws ServletException
        {
            super.init(config);
            Timer t = new Timer(1000,new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    System.out.println(new Date());
                }
            });
            t.start();
        }
    }

訪問Servlet的配置參數

@WebServlet(name="testServlet"
        , urlPatterns={"/testServlet"}
        , initParams={
            @WebInitParam(name="driver", value="com.mysql.jdbc.Driver"),
            @WebInitParam(name="url", value="jdbc:mysql://localhost:3306/javaee"),
            @WebInitParam(name="user", value="root"),
            @WebInitParam(name="pass", value="32147")})
    // 獲取ServletConfig對象
    ServletConfig config = getServletConfig();
    // 通過ServletConfig對象獲取配置參數:dirver
    String driver = config.getInitParameter("driver");

Servlet3.0新特性

註解

@WebServlet :用於修飾一個Servlet類,用於部署Servlet類
@WebInitParam
@WebListener
@WebFilter
@MultipartConfig:用於修飾Servlet,指定該Servlet將會負責處理multipart/form-data類型的請求(主要用於文件上傳)

Web模塊支持

異步處理

改進的Servlet API

HttpServletRequest增加了對文件上傳的支持
Part getPart(String name):根據名稱獲取文件上傳域
Collection getParts():獲取所有的文件的上傳域

上傳文件要爲表單域設置enctype屬性
application/x-www-form-urlencoded:默認,只處理value屬性值
multipart/form=data:以二進制流的方式來處理表單數據(上傳文件)
text/plain:當表單的action屬性爲mailto:URL的形式時比較方便

ServletContext允許通過編程的方式動態註冊Servlet、Filter

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