servlet3.1 来提供了以下注解(在此之前,我们都是在web.xml配置的)
这个注解我们前面说过一个类是 ServletContainerInitializer ,这个注解用在这个初始化启动类上,这个注解主要提供注入类到我们set<Class<?>>set 中,这在我们在启动类中可以拿到,比如
@HandlesTypes(MyServlet.class) //这样我们只能拿到MyServlet类
public class TestServletContainerInitializer implements ServletContainerInitializer{
public void onStartup(Set<Class<?>> set, ServletContext servletContext) throws ServletException {
System.out.println("=====================");
}
}
ServletSecurity这个注解是提供访问安全控制的,而HttpConstraint、HttpMethodConstraint配合这个安全注解使用的,也就是这个注解的属性,HttpConstraint提供了请求权限,而HttpMethonConstrain提供了方法访问控制
@WebServlet(urlPatterns = "/methodTest")
//@ServletSecurity(value = @HttpConstraint(transportGuarantee = ServletSecurity.TransportGuarantee.CONFIDENTIAL))
@ServletSecurity(httpMethodConstraints = @HttpMethodConstraint(value = "POST",emptyRoleSemantic = ServletSecurity.EmptyRoleSemantic.DENY))
public class methodTest extends HttpServlet {
public void service(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws ServletException, IOException {
System.out.println("annotation ............."+servletRequest.getMethod());
}
}
servlet提供一些注解在servlet注解,不需要在web.xml配置,比如WebFilter、WebServlet,项目会自动在classpath扫描这写注解,比如我们上面那个列子
这个注解主要是配合上面两个注解使用,是注入我们初始化参数用的,比如
@WebFilter(urlPatterns = "/methodTest",initParams=@WebInitParam (name = "key",value = "value"))
public class TestFilter implements Filter {
private FilterConfig filterConfig;
public FilterConfig getFilterConfig() {
return filterConfig;
}
public void setFilterConfig(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
public void init(FilterConfig filterConfig) throws ServletException {
setFilterConfig(filterConfig);
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
FilterConfig filterConfig = this.getFilterConfig();
System.out.println("================================"+filterConfig.getInitParameterNames());
}
public void destroy() {
}
}
webListener同样提供了我们使用主机的方式注入监听器,比如我们实现session监听器就可以如下
@WebListener
public class WebListerTest implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent httpSessionEvent) {
}
public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
}
}
1153

被折叠的 条评论
为什么被折叠?



