在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
