servlet3.0

servlet3.0新特性Servlet3.0引入的若干重要新特性,包括异步处理、新增的注解支持、可插性支持等等,为读者顺利向新版本过渡扫清障碍.Servlet3.0新特性概述Servlet3.0作为JavaEE6规范体系中一员,随着JavaEE6规范一起发布。

1.Servlet、Filter、Listener无需在web.xml中进行配置,可以通过Annotation进行配置;

2.模块化编程,即将各个Servlet模块化,将配置文件也分开配置。

3.Servlet异步处理,应对复杂业务处理;

4.异步Listener,对于异步处理的创建、完成等进行监听;

5. 文件上传API简化;

Annotation支持

servlet3.0不需要在web.xml中配置跳转的servlet而是采用注解的方法:

  @WebServlet 用于将一个类声明为 Servlet该注解将会在部署时被容器处理容器将根据具体的属性配置将相应的类部署为 Servlet。该注解具有下表给出的一些常用属性以下所有属性均为可选属性但是 vlaue 或者 urlPatterns 通常是必需的且二者不能共存如果同时指定通常是忽略 value 的取值
  @WebServlet 主要属性列表属性名 类型 描述  
  name String 指定 Servlet 的 name 属性等价于 <servlet-name>。如果没有显式指定则该 Servlet 的取值即为类的全限定名。
  value String[] 该属性等价于 urlPatterns 属性。两个属性不能同时使用。  
  urlPatterns String[] 指定一组 Servlet 的 URL 匹配模式。等价于 <url-pattern> 标签。  
  loadOnStartup int 指定 Servlet 的加载顺序等价于 <load-on-startup> 标签。  
  initParams WebInitParam[] 指定一组 Servlet 初始化参数等价于 <init-param> 标签。  
  asyncSupported boolean 声明 Servlet 是否支持异步操作模式等价于 <async-supported> 标签。  
  description String 该 Servlet 的描述信息等价于 <description> 标签。  
  displayName String 该 Servlet 的显示名通常配合工具使用等价于 <display-name> 标签。

实例代码如下:

code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import java.io.IOException;
import java.io.PrintWriter;
 
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;
 
/**
  *
  * Descriptions
  */
@WebServlet (name = "/HelloServlet" , urlPatterns = { "/HelloServlet" }, loadOnStartup = 1 , initParams = {
         @WebInitParam (name = "name" , value = "jsjtt" ), @WebInitParam (name = "age" , value = "20" )})
public class HelloServlet extends HttpServlet {
     private static final long serialVersionUID = 1L;
 
     public HelloServlet() {
         super ();
     }
 
     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         doPost(request, response);
     }
 
     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
             IOException {
         request.setCharacterEncoding( "UTF-8" ); 
         ServletConfig config = getServletConfig(); 
         PrintWriter out = response.getWriter(); 
         out.println( "<html>" ); 
         out.println( "<body>" ); 
         out.println( "Hello world" + "<br />" ); 
         out.println(config.getInitParameter( "name" )); 
         out.println( "</body>" ); 
         out.println( "</html>" ); 
     }
 
}

直接访问:http://localhost:8080/Servlet3/HelloServlet

filter接口定义和servlet是类似的

下面是一个简单的示例
@WebFilter(servletNames = {"SimpleServlet"},filterName="SimpleFilter")  public class LessThanSixFilter implements Filter{...}       
如此配置之后就可以不必在 web.xml
中配置相应的 <filter> 和 <filter-mapping> 元素了
容器会在部署时根据指定的属性将该类发布为过滤器。
它等价的 web.xml 中的配置形式为
<filter>   
<filter-name>SimpleFilter</filter-name>   
<filter-class>xxx</filter-class> 
</filter>  <filter-mapping>   
<filter-name>SimpleFilter</filter-name>   
<servlet-name>SimpleServlet</servlet-name> 
</filter-mapping>

 

listener配置方法:

@WebListener
该注解用于将类声明为监听器被 @WebListener 标注的类必须实现以下至少一个接口

ServletContextListener 
ServletContextAttributeListener 
ServletRequestListener 
ServletRequestAttributeListener 
HttpSessionListener 
HttpSessionAttributeListener  
该注解使用非常简单其属性如下
@WebListener 的常用属性属性名 类型 是否可选 描述   value String 是 该监听器的描述信息。 
一个简单示例如下
@WebListener("This is only a demo listener") 
public class SimpleListener implements ServletContextListener{...}
点击打开链接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值