Servlet3.0-使用注解定义Servlet



Servlet3.0-使用注解定义Servlet.

我使用的开发环境: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″})

http://www.cnblogs.com/luxh/archive/2012/06/06/2537458.html