servlet3开始提供基于注解的方式来声明一个servlet,filter, listener
这里只讲servlet相关的内容listner与filter。
在servlet3之前我们声明一个servlet需要在web.xml进行配置。
例如:
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.hxj.websimplejava.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/helloServlet.do</url-pattern>
</servlet-mapping>
现在servlet3可以采用注解的方式来声明一个servlet了
例如:
@WebServlet(name = "AnnotationServlet", urlPatterns = { "/annotationServlet.do" })
public class AnnotationServlet extends HttpServlet {
// ...
}
给一个实现了httpServlet接口的类配一个@WebServlet的注解就可以声明一个servlet了。
@WebServlet参数
boolean asyncSupported 声明servlet支持异步操作模式,默认为false。Servlet3.0才加入的这个参数。
String description 描述servlet
String displayName
WebInitParam[] initParams Servlet初始化参数
String largeIcon
int loadOnStartup Servlet加载顺序
String name Servlet名称
String smallIcon
String[] urlPatterns 需要过滤的路径
String[] value 与urlPatterns参数功能一样
可以看出这些参数与web.xml<servlet>标签都可以对应起来。
在我看来Servlet3.0增加annotation方式声明Servlet可以更好的来支持3.0新特性:可插性。这样可以在不入侵原有代码的情况下任意扩展。