初学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);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章