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("出生了");

 

    }

 

}

servlet3.0 的新特性之二注解代替了web.xml配置文件的更多相关文章

  1. 项目支持Servlet3.0的新特性

    一.Servlet3.0介绍 Servlet3.0是Java EE6规范的一部分,Servlet3.0提供了注解(annotation),使得不再需要在web.xml文件中进行Servlet的部署描述 ...

  2. Servlet3.0的新特性

    注意:Servlet3.0的项目一定要使用Tomcat7.0才能看到效果!! 1.新增标注支持     在Servlet3.0的部署描述文件web.xml的顶层标签<web-app>中有一 ...

  3. 相比于python2.6,python3.0的新特性。

    这篇文章主要介绍了相比于python2.6,python3.0的新特性.更详细的介绍请参见python3.0的文档. Common Stumbling Blocks 本段简单的列出容易使人出错的变动. ...

  4. Java8新特性之二:方法引用

    上一节介绍了Java8新特性中的Lambda表达式,本小节继续讲解Java8的新特性之二:方法引用.方法引用其实也离不开Lambda表达式. 1.方法引用的使用场景 我们用Lambda表达式来实现匿名 ...

  5. php5.3到php7.0.x新特性介绍

    <?php /*php5.3*/ echo '<hr>'; const MYTT = 'aaa'; #print_r(get_defined_constants()); /* 5.4 ...

  6. paip.php 5.0 5.3 5.4 5.5 -6.0的新特性总结与比较

    paip.php 5.0 5.3 5.4  5.5 -6.0的新特性总结与比较 PHP5的新特性 2 · 对象的参照过渡是默认的(default) 3 · 引入访问属性的限制 3 · 引入访问方法的限 ...

  7. NodeJS 框架 Express 从 3.0升级至4.0的新特性

    NodeJS 框架 Express 从 3.0升级至4.0的新特性 [原文地址:√https://scotch.io/bar-talk/expressjs-4-0-new-features-and-u ...

  8. MySQL 8.0 InnoDB新特性

    MySQL 8.0 InnoDB新特性 1.数据字典全部采用InnoDB引擎存储,支持DDL原子性.crash safe,metadata管理更完善 2.快速在线加新列(腾讯互娱DBA团队贡献) 3. ...

  9. Atitit jquery  1.4--v1.11  v1.12  v2.0  3.0 的新特性

    Atitit jquery  1.4--v1.11  v1.12  v2.0  3.0 的新特性 1.1. Jquery1.12  jQuery 2.2 和 1.12 新版本发布 - OPEN资讯.h ...

随机推荐

  1. JavaScript 事件循环及异步原理(完全指北)

    引言 最近面试被问到,JS 既然是单线程的,为什么可以执行异步操作? 当时脑子蒙了,思维一直被困在 单线程 这个问题上,一直在思考单线程为什么可以额外运行任务,其实在我很早以前写的博客里面有写相关的内 ...

  2. Log4net 根据日志类型输出日志

    第一步:引入Log4net.dll 文件的引用 第二步:添加LogHelper类,代码如下 using System; using System.Collections.Generic; using ...

  3. 一个文件查看你选择 Run as Android applications 都干了啥

    <?xml version="1.0" encoding="UTF-8"?> <project name="PushFastDemo ...

  4. DNS的概念,用途,DNS查询的实现算法

    1.DNS的概念,用途      DNS是由解析器以及域名服务器组成的.      域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器.      DNS ...

  5. C# Enum,Int,String,之间及bool与int之间的转换

    枚举类型的基类型是除 Char 外的任何整型,所以枚举类型的值是整型值. Enum 提供一些实用的静态方法: (1)比较枚举类的实例的方法 (2)将实例的值转换为其字符串表示形式的方法 (3)将数字的 ...

  6. 75. Find Peak Element 【medium】

    75. Find Peak Element [medium] There is an integer array which has the following features: The numbe ...

  7. unity3d 导入google play services插件工程

    最近在给unity工程尝试接入google play services插件,遇到了些问题,记录一下. 之前在做android插件的时候,都是自己创建一个android工程,把生成的.class文件打包 ...

  8. c++ telescoping constructor is NOT supported until c++11

    Telescoping constructor: see Effective Java 2nd Edition Item 2 If you want to use telescoping constr ...

  9. springboot开启事务管理

    spring中开启事务管理需要在xml配置文件中配置,springboot中采取java config的配置方式. 核心是@EnableTransactionManager注解,该注解即为开启事务管理 ...

  10. Mysql 变量讲解

    set语句的学习: 使用select定义用户变量的实践将如下语句改成select的形式: set @VAR=(select sum(amount) from penalties);我的修改: sele ...