在servlet3.0以后,我們可以不用再web.xml里面配置servlet,只需要加上@WebServlet注解就可以修改該servlet的屬性了。
下面是@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>標簽。 |
從上表可見,web.xml可以配置的servlet屬性,在@WebServlet中都可以配置。
下面是一個用@WebServlet標簽,的servlet的樣例:
package com.bsz.hanyue.weixin.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 implementation class WeChatIndexServlet */ @WebServlet(description = "a enter for wechat", urlPatterns = { "/aaa"},loadOnStartup=1) public class WeChatIndexServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public WeChatIndexServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.print(" This is "); out.print(this.getClass()); out.println(", using the GET method"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } }
官方參考:
http://tomcat.apache.org/tomcat-7.0-doc/servletapi/javax/servlet/annotation/WebServlet.html
中文參考:
https://blog.csdn.net/maozi_bsz/article/details/46431189