• servlet3.0 的新特性之二注解代替了web.xml配置文件


    servlet3.0 的新特性:

    1. 注解代替了 web.xml 文件
    2. 支持了对异步的处理
    3. 对上传文件的支持

    1.注解代替了配置文件

    1.删除了web.xml 文件

    2. 在Servlet类上添加@WebServlet(urlPatterns={"/AServlet"})

    3. 在Filter类上添加@WebFilter(urlPatterns="/AFilter")

    4. 在Listener类上添加@WebListener

     

    总结:

    * 注解好处:配置信息少,使用很方便!

    * 注解缺点:不方便修改!(如果需要修改,就要更改源码)

     

    2. 使用实例:

     

    Aservlet.java文件

    /*

    原先servlet web.xml 文件中需要配置大量的信息:

    <servlet>

    <servlet-name>AServlet</servlet-name>

    <servlet-class>cn.itcast.web.servlet.AServlet</servlet-class>

    <init-param>

    <param-name>p1</param-name>

    <param-value>v1</param-value>

    </init-param>

    <init-param>

    <param-name>p2</param-name>

    <param-value>v2</param-value>

    </init-param>

    <load-on-startup>1<load-on-startup>

    </servlet>

    <servlet-mapping>

    <servlet-name>AServlet</servlet-name>

    <url-pattern>/AServlet</url-pattern>

    <url-pattern>/AAServlet</url-pattern>

    </servlet-mapping>

     

    */

     

    /*

    * 但是现在使用 注解,就方便多了

    */

    @WebServlet(urlPatterns="/AServlet",

        initParams={

            @WebInitParam(name="p1", value="v1"),

            @WebInitParam(name="p2", value="v2")

        },

        loadOnStartup=1

    )

    public class AServlet extends HttpServlet {

        public void doGet(HttpServletRequest req, HttpServletResponse resp)

                throws ServletException, IOException {

            System.out.println("hello servlet3.0!");

            resp.getWriter().print("hello servlet3.0!!");

        }

    }

     

    Afilter.java 文件:演示 过滤器的 注解使用

    //(urlPatterns="/*") 表示 过滤所有的路径

    @WebFilter(urlPatterns="/*")

    public class AFilter implements Filter {

     

        @Override

        public void destroy() {

            // TODO Auto-generated method stub

            

        }

     

        @Override

        public void doFilter(ServletRequest request, ServletResponse repsonse,

                FilterChain chain) throws IOException, ServletException {

            System.out.println("哈哈~,你看到我没有!");

            chain.doFilter(request, repsonse);//放行

        }

     

        @Override

        public void init(FilterConfig arg0) throws ServletException {

            // TODO Auto-generated method stub

            

        }

     

    }

     

    Alistener.java 文件: 演示 监听器的注解使用

    import javax.servlet.ServletContextEvent;

    import javax.servlet.ServletContextListener;

    import javax.servlet.annotation.WebListener;

    //监听器的注解

    @WebListener

    public class AListener implements ServletContextListener {

     

        @Override

        public void contextDestroyed(ServletContextEvent arg0) {

            System.out.println("死掉了");

     

        }

     

        @Override

        public void contextInitialized(ServletContextEvent arg0) {

            System.out.println("出生了");

     

        }

     

    }

  • 相关阅读:
    JavaScript创建块级作用域
    JavaScript数组求最大值 面试题
    JavaScript类数组转换为数组 面试题
    JavaScript实现深拷贝(深复制) 面试题
    javascript洗牌算法 乱序算法 面试题
    3GPP 测试 /etc/udev/ruse.d/50文件 /lib/udev/ruse.d/55* 网络配置
    【网络】TCP/IP连接三次握手
    SVN 使用方法
    Git 使用方法
    LoadRunner性能测试工具
  • 原文地址:https://www.cnblogs.com/Prozhu/p/5452675.html
Copyright © 2020-2023  润新知