java Servlet 3.0新特性例子

迟到的作业,Servlet3.0 已经出来很久了也没去关注,一直守旧于老的技术,今天抽时间学习了一下补个作业。

Servlet3.0  特性:

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

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

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

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

5. 文件上传API简化;

备注:tomcat7.0 以上才支持servlet3.0

servlet 3.0 目的:

1:简化了开发

2:模块化的结构更易于部署

特性1---------------------------------------------------------------------------------------------------------------------

有了Annotation 就大大简化了web.xml ,一个servlet 的定义无需在web.xml写入任何代码:

原来定义servlet 的方式:

<span style="font-size:18px;"><servlet>
    <servlet-name></servlet-name>
    <servler-class></servlet-class>
    <load-on-startup></load-on-startup>
    <init-param>
         <param-name></param-name>
         <param-value></param-value>
    </init-param>
</servlet>
<servlet-mapping>
     <servlet-name></servlet-name>
      <url-pattern></url-pattern>
</servlet-mapping>
</span>

而现在主需要:

<span style="font-size:18px;">import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;

/*
 * 解释:
 name :当前Servlet 的名称
 urlPatterns :当前Servlet 请求url
 loadOnStartup: tomcat 启动时就初始化改Servlet
 initParam:初始化参数(可以是多个)
 name:參數名
 value :参数值
 */
@WebServlet(name = "MyServlet", urlPatterns = { "/myServlet" }, loadOnStartup = 1, initParams = { @WebInitParam(name = "name", value = "java developer"), @WebInitParam(name = "age", value = "20") })
public class MyServlet3 extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("调用do get 方法; ");
		String name = getInitParameter("name");
		System.out.println("获取初始化参数:" + name);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		super.doPost(req, resp);
	}

	public void init(ServletConfig config) throws ServletException {
		System.out.println("Servlet  初始化");
		super.init(config);
	}
}
</span>

这样就完成了一个servlet 的定义,通过浏览器访问该servlet 看效果吧。

同理 filter  和 listener 的定义 也可以通过注释来完成。

注释方式:

Filter  :

@WebFilter(filterName="",urlPattern={"/"});

Listener:

@WebListener

-------------------------------------------------------------------------

另外补一下servlet 中  doget、dopost、service  方法区别

当servlet 中重写了父类的 service 后,即声明了当前servlet  用来处理业务而非跳转,此时goget、dopost 方法失效。

大白话:

需要servlet 跳转的 就用 doget、dopost ,此时别重写父类的service 方法。

需要servlet 处理业务不进行跳转的 就重新父类的service方法。

特性2:-------------------------------------------------------------------------------------------------------------------

servlet 模块化:

以listener 为例子:

import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener;

@WebListener
public class MyLin implements ServletRequestListener {

	@Override
	public void requestDestroyed(ServletRequestEvent arg0) {

	}
	@Override
	public void requestInitialized(ServletRequestEvent arg0) {
		System.out.println("自定义Linstener 启动,去xml 化");
	}
}

将此类打包成jar 文件 放到工程lib 下 即可。模块servlet 配置如此简单。

特性3:-------------------------------------------------------------------------------------------------------------------

未完待续

java Servlet 3.0新特性例子

时间: 2024-08-09 10:20:07

java Servlet 3.0新特性例子的相关文章

[转]Servlet 3.0 新特性详解

原文地址:http://blog.csdn.net/xiazdong/article/details/7208316 Servlet 3.0 新特性概览 1.Servlet.Filter.Listener无需在web.xml中进行配置,可以通过Annotation进行配置: 2.模块化编程,即将各个Servlet模块化,将配置文件也分开配置. 3.Servlet异步处理,应对复杂业务处理: 4.异步Listener,对于异步处理的创建.完成等进行监听: 5. 文件上传API简化: tomcat

Servlet 3.0 新特性详解 (转载)

原文地址:https://www.ibm.com/developerworks/cn/java/j-lo-servlet30/ Servlet 3.0 新特性概述 Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布.该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化 Web 应用的开发和部署.其中有几项特性的引入让开发者感到非常兴奋,同时也获得了 Java 社区的一片赞誉之声: 异步处理支持:有了该特性,Servlet

Servlet 3.0 新特性详解

转自:https://www.ibm.com/developerworks/cn/java/j-lo-servlet30/ Servlet 3.0 新特性详解 张 建平2010 年 4 月 23 日发布 WeiboGoogle+用电子邮件发送本页面 6 Servlet 3.0 新特性概述 Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布.该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化 Web 应用的开发和部署.其

Servlet 3.0 新特性概述

Servlet 3.0 新特性概述 Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布.该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化 Web 应用的开发和部署.其中有几项特性的引入让开发者感到非常兴奋,同时也获得了 Java 社区的一片赞誉之声: 异步处理支持:有了该特性,Servlet 线程不再需要一直阻塞,直到业务处理完毕才能再输出响应,最后才结束该 Servlet 线程.在接收到请求之后,Servlet 线

atitit.j2ee 1.5 1.6 的不同跟 Servlet 3.0新特性总结

atitit.j2ee 1.5 1.6 的不同跟 Servlet 3.0新特性总结 1. jar比较,j2ee 1.6 添加了许多的jar 1 2. ,Servlet 3.0 2 2.1. 可插性  web片段 2 2.2. 异步处理 3 2.3. anno支持filter,sevlet,listen 3 2.4. 三.元数据和通用注释 3 2.5. 现有API的改进 HttpServletRequest,,HttpServletRequest,,ServletContext,,dynac fi

Servlet 3.0 新特性

Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布.该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化 Web 应用的开发和部署.其中有几项特性的引入让开发者感到非常兴奋,同时也获得了 Java 社区的一片赞誉之声: 异步处理支持:有了该特性,Servlet 线程不再需要一直阻塞,直到业务处理完毕才能再输出响应,最后才结束该 Servlet 线程.在接收到请求之后,Servlet 线程可以将耗时的操作委派给另一个线程来

Servlet 2.0 &amp;&amp; Servlet 3.0 新特性

概念:透传. Callback 在异步线程中是如何使用的.??

Java基础加强-(注解,类加载器,servlet3.0新特性)

1.   Annotation注解 1.1.  Annotation概述 Annotation是JDK 5.0以后提供对元数据的支持,可以在编译.加载和运行时被读取,并执行相应的处理.所谓Annotation就是提供了一种为程序元素设置元数据的方法,可用于修饰包.类.构造器.方法.成员变量.参数和局部变量的声明,这些信息被存储在Annotation的“name=value”对中. Annotation能被用来为程序元素(类.方法.成员变量等)设置元数据,比如一段代码的作者或者告诉编译器禁止一些特

Java JDK5.0新特性

JDK5.0新特性 虽然JDK已经到了1.8 但是1.5(5.0)的变化是最大的 1. 增强for循环 foreach语句 foreach简化了迭代器 作用: 对存储对象的容器进行迭代 (数组, collection, map) 1> 格式 增强for循环括号里写两个参数 第一个是声明一个变量 第二个就是需要迭代的容器 for( 元素类型 变量名 : Collection集合 & 数组 ) { ... } 2> 增强for循环和传统for循环的区别 a. 增强for循环在使用时 必须要