Servlet3.0提供@WebListener注解将一个实现了特定监听器接口的类定义为监听器。
- package me.gacl.web.listener;
-
- import javax.servlet.ServletContextEvent;
- import javax.servlet.ServletContextListener;
- import javax.servlet.annotation.WebListener;
-
-
-
-
- @WebListener
- public class MyServletContextListener implements ServletContextListener {
-
- @Override
- public void contextDestroyed(ServletContextEvent sce) {
- System.out.println("ServletContex销毁");
- }
-
- @Override
- public void contextInitialized(ServletContextEvent sce) {
- System.out.println("ServletContex初始化");
- System.out.println(sce.getServletContext().getServerInfo());
- }
- }
同理对于过滤器:
- package me.gacl.web.filter;
- import java.io.IOException;
- import javax.servlet.Filter;
- import javax.servlet.FilterChain;
- import javax.servlet.FilterConfig;
- import javax.servlet.ServletException;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- import javax.servlet.annotation.WebFilter;
-
-
-
-
-
-
-
- @WebFilter(filterName="Servlet3Filter",urlPatterns="/*")
- public class Servlet3Filter implements Filter {
-
- @Override
- public void destroy() {
- System.out.println("过滤器销毁");
- }
-
- @Override
- public void doFilter(ServletRequest request, ServletResponse response,
- FilterChain chain) throws IOException, ServletException {
- System.out.println("执行过滤操作");
- chain.doFilter(request, response);
- }
-
- @Override
- public void init(FilterConfig config) throws ServletException {
- System.out.println("过滤器初始化");
- }
- }
过滤器中使用了
@WebFilter(filterName="Servlet3Filter",urlPatterns="/*")进行配置,Filter的名字是Servlet3Filter,表示urlPatterns="/*"该Filter拦截所有的请求。
总结:
有了注解之后,我们的web.xml就无需任何配置了