Servlet 常用注解

本文最后更新于:2024年3月18日 凌晨

Servlet 常用注解

@WebServlet

  • 在servlet3.0以后,我们可以不用再web.xml里面配置servlet,只需要加上@WebServlet注解就可以修改该servlet的属性了。
  • 下面是@WebServlet的属性列表。
属性名 类型 描述
name String 指定Servlet 的 name 属性,等价于 ,如果没有显式指定,则该 Servlet 的取值即为类的全限定名,
value String[] 该属性等价于 urlPatterns 属性,两个属性不能同时使用,
urlPatterns String[] 指定一组 Servlet 的 URL 匹配模式,等价于标签,
loadOnStartup int 指定 Servlet 的加载顺序,等价于 标签,
initParams WebInitParam[] 指定一组 Servlet 初始化参数,等价于标签,
asyncSupported boolean 声明 Servlet 是否支持异步操作模式,等价于 标签,
description String 该 Servlet 的描述信息,等价于 标签,
displayName String 该 Servlet 的显示名,通常配合工具使用,等价于 标签,
  • 从上表可见,web.xml可以配置的servlet属性,在@WebServlet中都可以配置。

@WebFilter

  • @WebFilter 用于将一个类声明为过滤器,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器,该注解具有下表给出的一些常用属性。
  • 注意:以下所有属性均为可选属性,但是 value,urlPatterns,servletNames 三者必需至少包含一个,且 value 和 urlPatterns 不能共存,如果同时指定,通常忽略 value 的取值。
属性 类型 是否必需 说明
asyncSupported boolean 指定Filter是否支持异步模式
dispatcherTypes DispatcherType[] 指定Filter对哪种方式的请求进行过滤,支持的属性:ASYNC,ERROR,FORWARD,INCLUDE,REQUEST;默认过滤所有方式的请求
filterName String Filter名称
initParams WebInitParam[] 配置参数
displayName String Filter显示名
servletNames String[] 指定对哪些Servlet进行过滤
urlPatterns/value String[] 两个属性作用相同,指定拦截的路径
  • 自定义过滤器,实现javax.servlet.Filter接口,通过注解方式配置,拦截所有的请求,放行登录页面,登录操作请求,其余请求需要在登录后才可访问,同时配置参数,指定要放行的路径和请求的字符集。

@WebInitParam

  • 放在@WebServlet@WebFilter注解的initParams属性中。
  • 等同于web.xml中的<init>标签。
1
2
3
4
5
6
@WebServlet(
name = "WebInitParamExample", urlPatterns = {"/hello"}
,initParams = {
@WebInitParam(name= "Site :", value="http://test.net"),
@WebInitParam(name= "Rose", value= "India"),
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>servletAnnotationExample</display-name>
<servlet>
<servlet-name>WebInitParamExample</servlet-name>
<servlet-class>roseindia.net.WebInitParamExample</servlet-class>
<init-param>
<param-name>Site :</param-name>
<param-value>http://test.net</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>WebInitParamExample</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!