初學Servlet3.0新特性

1.Servlet3.0 的 web.xml

metadata-complete web-app元素的屬性
設置爲true 將不支持註解技術
不設置 或者 設置爲false 將支持註解 技術

2.提供Servlet註解技術
@WebServlet
@WebFilter
@WebInitParam
@WebListener

1)簡單的分析:
1.使用註解來替換配置文件
@WebServlet(“/hello”) 用於配置servlet
@WebFilter(“/*”) 用於配置Filter
@WebListener 用於配置Listener

        **關於這些註解細節:
            以@WebServlet("/hello") 爲例

            注意:屬性urlpatterns與values它們都是描述訪問當前servlet的路徑,但它們不能一起出現,只能使用一個.

            <servlet>
                <servlet-name></servlet-name>   String name() default "";
                <servllet-class></servlet-class>
                <init-param>       WebInitParam[] initParams() default {};
                    <param-name>
                    <param-value>
                </init-param>
                <load-on-startup>     int loadOnStartup() default -1;
            </servlet>

            <servlet-mapping>
                <servlet-name></servlet-name>
                <url-pattern></url-pattern>     String[] urlPatterns() default {};   String[] value() default {};
            </servlet-mapping>


            在servlet中怎樣獲取初始化參數
                ServletConfig對象獲取

            在web.xml文件中的屬性 metadata-complete,可以取值爲true,false,
            如果爲false,代表servlet3.0中的註解可以使用,如果爲true,代表不可以使用註解。**
package cn.servlet;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 手動創建servlet
 */
@WebServlet(urlPatterns = {"/hello", "/h"}, initParams = {@WebInitParam(name = "username", value = "tom"), @WebInitParam(name = "encode", value = "utf-8")})
public class MyServlet extends HttpServlet {
    @Override
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        System.out.println("helloWorld");
        //獲取初始化參數
        ServletConfig config = this.getServletConfig();
        //獲取username
        String username = config.getInitParameter("username");
        System.out.println(username);
        //獲取encode
        String encode = config.getInitParameter("encode");
        System.out.println(encode);
    }

    @Override
    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

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