Servlet3.0-使用注解定义Servlet
来源:互联网 发布:淘宝卖流量从哪里进货 编辑:程序博客网 时间:2024/05/27 09:47
转载地址: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的部署描述,简化开发流程。
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。
我的web.xml文件:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://xmlns.jcp.org/xml/ns/javaee"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"id="WebApp_ID" version="3.1"></web-app>
使用注解
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(); }}
把项目发布到Tomcat7,启动Tomcat7。在浏览器访问:http://localhost:8080/你的项目名/AnnotationServlet
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
使用@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"})
- Servlet3.0-使用注解定义Servlet
- Servlet3.0-使用注解定义Servlet
- Servlet3.0-使用注解定义Servlet
- Servlet3.0-使用注解定义Servlet
- Servlet3.0-使用注解定义Servlet
- Servlet3.0中使用注解配置Servlet
- Servlet3.0介绍~使用注解标注Servlet
- Servlet3.0-使用注解定义过滤器(Filter)
- servlet3.0 使用注解
- Servlet3.0中Servlet的使用(注解&&配置文件)
- Servlet3.0学习总结--使用注解标注Servlet
- Servlet3.0(一)--使用注解标注Servlet @WebServlet
- Servlet生命周期,Servlet3.0使用注解自动加载
- Servlet3.0中使用注解@WebServlet配置Servlet
- 模拟Servlet3.0使用注解的方式配置Servlet
- 模拟Servlet3.0使用注解的方式配置Servlet
- java Servlet3.0 使用注解标注Servlet @WebServlet
- Servlet3.0注解配置Servlet和Filter
- cocos2dx lua 网络
- 从零开始学习Extjs5_01搭建环境
- 数据科学19:文本挖掘1-更新
- WLAN从入门到精通-2
- Objective-C Runtime
- Servlet3.0-使用注解定义Servlet
- SQL中的case when then else end用法
- BITMAP内存限制OOM,OUT OF MEMORY。
- 对jdk的理解
- 统计一个文件有多少行
- 快速掌握vim:快捷键操作指令大全
- Android实例] Android Matrix类以及ColorMatrix类详解
- 关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
- BCD码