@WebServlet 注解用于将一个类声明为 Servlet

该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为 Servlet。

该注解具有下表给出的一些常用属性(以下所有属性均为可选属性,但是 vlaue 或者 urlPatterns 通常是必需的,且二者不能共存,如果同时指定,通常是忽略 value 的取值):

属性名类型描述
nameString指定 Servlet 的 name 属性, 等价于 。 如果没有显式指定, 则该 Servlet 的取值即为类的全限定名。
valueString[]该属性等价于 urlPatterns 属性。 两个属性不能同时使用。
urlPatternsString[]指定一组 Servlet 的 URL 匹配模式。 等价于 标签。
loadOnStartupint指定 Servlet 的加载顺序, 等价于 标签。
initParamsWebInitParam[]指定一组 Servlet 初始化参数, 等价于 标签。
asyncSupportedboolean声明 Servlet 是否支持异步操作模式, 等价于 标签。
descriptionString该 Servlet 的描述信息, 等价于 标签。
displayNameString该 Servlet 的显示名,通常配合工具使用, 等价于 标签。

案例:

	@WebServlet(
	urlPatterns = {"/simple" }, 
	asyncSupported = true, 
	loadOnStartup = -1, 
	name = "SimpleServlet", 
	displayName = "ss", 
	initParams = {@WebInitParam(name = "username", value = "tom") })

等价于:

<servlet>
	<display-name>ss</display-name>
	<servlet-name>SimpleServlet</servlet-name>
	<servlet-class>footmark.servlet.SimpleServlet</servlet-class>	
	<init-param>
		<param-name>username</param-name>
		<param-value>tom</param-value>
	</init-param>
	<load-on-startup>-1</load-on-startup>
	<async-supported>true</async-supported>
</servlet>

代码:

@WebServlet(urlPatterns = "/Test",initParams = {@WebInitParam(name="username",value="king"),@WebInitParam(name="password",value="king")})
public class Test extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Test() {
        super();
        // TODO Auto-generated constructor stub
    }
    @Override
    public void init(ServletConfig config) throws ServletException {
    	System.out.println(config.getInitParameter("username"));
    	System.out.println(config.getInitParameter("password"));
    }
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

结果:

king
king
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐