(转自:http://www.cnblogs.com/luxh/archive/2012/06/06/2537458.html)
我使用的开发环境:MyEclipse10+Tomcat7+JDK6。
开发Servlet3的程序需要一定的环境支持。Servlet3是Java EE6规范的一部分,MyEclipse10和Tomcat7都提供了对Java EE6规范的支持。
Tomcat需要Tomcat7才支持Java EE6,Tomcat7需要使用JDK6。
如果使用的MyEclipse的版本较低,没有提供Java EE6的支持,可以到Oracle官方网站下载JavaEE6的SDK进行安装,或者从Tomcat7的解压目录下的lib文件夹中把所有jar文件引用到我们的项目路径下。(例如:先建一个Java EE5的web项目,然后把Tomcat7的解压目录下的lib文件夹中的所有jar引入到项目中,再删除Java EE5的库引用,最后从Tomcat7的解压目录下的conf文件夹下把web.xml模板拷贝到项目,替换掉原来的web.xml)。
Servlet3.0提供了注解(annotation),使得不再需要在web.xml文件中进行Servlet的部署描述,简化开发流程。
1、新建一个Web Project,直接选择Java EE6.0。
2、看一下项目包视图。
3、Java EE6的库文件
4、web.xml文件
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> </web-app>
注意version="3.0"和http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd。
5、新建一个Servlet。写上Servlet的Name,然后Next。
6、不需要在web.xml文件中生成Servlet的相关信息。Finish。
7、这样建好一个Servlet后,在web.xml文件中没有任何关于这个Servlet的描述信息。
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> </web-app>
8、使用注解描述Servlet。
package com.cndatacom.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 使用注解描述Servlet * @author Luxh */ /** * 注解WebServlet用来描述一个Servlet * 属性name描述Servlet的名字,可选 * 属性urlPatterns定义访问的URL,或者使用属性value定义访问的URL.(定义访问的URL是必选属性) */ @WebServlet(name="AnnotationServlet",urlPatterns="/AnnotationServlet") public class AnnotationServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML>"); out.println("<HTML>"); out.println(" <HEAD>"); out.println(" <TITLE>A Servlet</TITLE>"); out.println(" <meta http-equiv=\"content-type\" " + "content=\"text/html; charset=utf-8\">"); out.println(" </HEAD>"); out.println(" <BODY>"); out.println(" Hello AnnotationServlet."); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } }
9、把项目发布到Tomcat7,启动Tomcat7。在浏览器访问:http://localhost:8080/Servlet3/AnnotationServlet
完成了一个使用注解描述的Servlet程序开发。
使用@WebServlet将一个继承于javax.servlet.http.HttpServlet的类定义为Servlet组件。
@WebServlet有很多的属性:
asyncSupported:声明Servlet是否支持异步操作模式。
description: Servlet的描述。
displayName: Servlet的显示名称。
initParams: Servlet的init参数。
name: Servlet的名称。
urlPatterns: Servlet的访问URL。
value: Servlet的访问URL。
Servlet的访问URL是Servlet的必选属性,可以选择使用urlPatterns或者value定义。
像上面的AnnotationServlet可以描述成@WebServlet(name="AnnotationServlet",value="/AnnotationServlet")。
也定义多个URL访问:
如@WebServlet(name="AnnotationServlet",urlPatterns={"/AnnotationServlet","/AnnotationServlet2"})
或者@WebServlet(name="AnnotationServlet",value={"/AnnotationServlet","/AnnotationServlet2"})
相关推荐
可以使用@ErrorPage注解定义特定错误代码对应的错误页面,使错误处理更加优雅和直观。 10. **MIME类型映射** 开发者可以使用@MultipartConfig注解来处理多部分请求,例如文件上传,无需额外的库。 总之,Servlet...
3. 部署监听器:无需在web.xml中声明,开发者可以通过注解定义部署监听器,如`@WebListener`,在应用部署或卸载时自动执行代码。 4. 嵌入式Servlet容器:Servlet 3.0允许在程序内部创建和启动Servlet容器,这对于...
下载的`servlet3.0jar综合`压缩包包含了实现这些特性的关键库,对于进行Java EE 3.0开发的程序员来说是必不可少的工具。在实际开发中,结合相关的框架(如Spring MVC)和其他Java EE组件,可以构建出功能强大、易...
这个"Servlet-API-3.0.zip"压缩包包含的是Servlet 3.0规范的API jar文件,该文件是开发和运行基于Java的Web应用程序所必需的库。以下是对Servlet API 3.0的详细讲解: 1. **Servlet 3.0引入的新特性**: - **注解...
在这个主题中,我们将深入探讨Servlet 3.0的主要特性和功能,以及提供的两个jar包——`javax.servlet-3.0-sources.jar`和`javax.servlet.jar`的作用。 首先,Servlet 3.0作为Servlet API的一个版本,引入了许多新...
过滤器可以使用`@WebFilter`注解来定义,同时支持通过注解配置过滤器的URL模式、DispatcherType和优先级。 5. **微容器(Microcontainer)**: Servlet 3.0引入了微容器概念,使得应用程序可以在不依赖全局web....
2. javax.servlet-3.0.txt:这可能是一个文档或说明文件,详细介绍了Servlet 3.0 API的使用方法、新特性以及可能的示例代码。对于开发者来说,这是一个宝贵的参考资料,可以帮助他们理解和应用Servlet 3.0的特性。 ...
Servlet3.0引入了注解驱动的部署,允许开发者通过在类或方法上添加注解来定义Servlet、过滤器和监听器,从而避免了繁琐的web.xml配置。此外,还支持异步处理,使得Servlet可以在处理请求时释放线程,提高服务器性能...
1. **Servlet 3.0特性**: Servlet 3.0引入了注解配置,可以直接在Servlet类上使用`@WebServlet`注解声明URL映射,不再需要web.xml配置文件。 2. **异步处理**: Servlet 3.0允许开发者编写异步Servlet,通过`...
5. **生命周期管理**:Servlet3.0允许在Servlet中定义自己的初始化和销毁方法,通过`@PostConstruct`和`@PreDestroy`注解标记,这些方法会在Servlet实例化后和销毁前自动调用。 6. **嵌入式容器**:Servlet3.0支持...
这个压缩包“servlet3.0.zip”包含两个核心的JAR文件:“javax.servlet-javadoc.jar”和“javax.servlet.jar”,它们分别提供了Servlet API的文档和实现。 1. **Servlet API**: - `javax.servlet`包是Servlet API...
2. **注解驱动的配置**:相比于之前的版本,Servlet 3.0允许使用注解来配置Servlet、Filter和Listener,无需在web.xml中进行繁琐的XML配置。例如,`@WebServlet`、`@WebFilter`和`@WebListener`注解分别用于声明...
Servlet3.0引入了注解配置,允许开发者无需在web.xml文件中进行繁琐的配置,可以直接在Servlet类上使用`@WebServlet`注解来声明和映射Servlet。例如: ```java @WebServlet("/hello") public class ...
而Servlet3.0则引入了注解驱动的监听器注册,开发者可以直接在类上使用`@WebListener`注解来声明监听器,无需再依赖web.xml。这使得监听器的定义更加简洁,也更易于管理和维护。 例如,我们可以创建一个监听...
在实际开发中,我们可以使用Servlet 3.0的异步特性来处理WebSocket连接的生命周期,例如在接收到新消息时,通过异步上下文将消息分发给所有在线的WebSocket连接。同时,我们还需要一个后台服务来处理聊天室的消息...
- Servlet类:使用了Servlet3.0的注解进行配置,并在其中实现了与MyBatis的整合逻辑。 五、注意事项 1. 确保数据库驱动在类路径下可找到。 2. 配置文件的正确性,如数据源配置、Mapper扫描路径等。 3. SQL语句的...
- **实体类定义**:定义与数据库表相对应的实体类,通过简单的注解即可完成实体与表的映射。 **5.4 JFinal独创Db+Record模式** - **数据访问模式**:提供了一种简单高效的数据访问模式,结合Db和Record两个工具类...
Servlet 3.0是Java Servlet规范的一个重要版本,它在原有的Servlet 2.x基础上引入了多项新特性,极大地提升了Web应用程序的开发效率和灵活性。...对于使用servlet-api.jar的开发者来说,理解并掌握这些特性至关重要。
可以通过注解`@WebInitParam`在类级别定义Servlet的初始化参数,无需在web.xml中配置。 10. **安全增强**: Servlet3.0引入了新的安全API,如`HttpServletRequest#isUserInRole()`和`HttpServletRequest#...
### Servlet 3.0 使用注解标注过滤器 #### 一、Servlet 3.0概述与新特性 Servlet 3.0 是 Java EE 6 的一部分,它引入了许多新的特性和改进,使得开发者能够更方便地开发 Web 应用程序。其中一个重要特性就是支持...