博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot之filter/listener/servlet
阅读量:6331 次
发布时间:2019-06-22

本文共 2895 字,大约阅读时间需要 9 分钟。

简介

SpringBoot可以简化开发流程,但是在其中如何使用传统的J2EE servlet/listener/filter呢

@Bean配置

在Configuration类中加入filter和servlet的registration

@Bean    public FilterRegistrationBean registFilter() {        FilterRegistrationBean registration = new FilterRegistrationBean();        registration.setFilter(new Filter(){            @Override            public void init(FilterConfig filterConfig) throws ServletException {            }            @Override            public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {                System.out.println("in filter");                chain.doFilter(request, response);            }            @Override            public void destroy() {            }                    });        registration.addUrlPatterns("/*");        registration.setOrder(1);        return registration;    }         @SuppressWarnings("serial")    @Bean    public ServletRegistrationBean registServlet() {        ServletRegistrationBean servletRegist=new ServletRegistrationBean();        servletRegist.setServlet(new HttpServlet (){            @Override            protected void doGet(HttpServletRequest req, HttpServletResponse resp)                    throws ServletException, IOException {                resp.getWriter().write("inside servlet");            }        });        servletRegist.addUrlMappings("/registedServlet");        return servletRegist;    }

运行项目就可以访问servlet和filter了,在registrationBean中可以配置路径和实例。

使用Servlet3.0

如果使用Servlet3.0的话,可以在Configuration类上加@ServletComponentScan("类路径")

并开发对应的filter、listener、servlet

@WebFilterpublic class CustFilter implements Filter{    @Override    public void init(FilterConfig filterConfig) throws ServletException {        // TODO Auto-generated method stub            }    @Override    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {        System.out.println("in filter2");        chain.doFilter(request, response);    }    @Override    public void destroy() {        // TODO Auto-generated method stub            }}@WebListenerpublic class CustListener implements HttpSessionListener {    @Override    public void sessionCreated(HttpSessionEvent se) {        System.out.println("session created");    }    @Override    public void sessionDestroyed(HttpSessionEvent se) {        // TODO Auto-generated method stub    }}@WebServlet(urlPatterns={"/cust"})public class CustServlet extends HttpServlet {    private static final long serialVersionUID = 1L;    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        req.getSession().setAttribute("a", "1");        resp.getWriter().write("cust servlet");    }}

在访问localhost:8080/cust时,对应的filter、listener、servlet都会被访问到

转载于:https://www.cnblogs.com/resentment/p/5964581.html

你可能感兴趣的文章
乐乐茶完成近2亿元Pre-A轮融资,祥峰投资领投
查看>>
clickhouse修改时区
查看>>
CSS_定位
查看>>
第二十四章:页面导航(六)
查看>>
百度、长沙加码自动驾驶,湖南阿波罗智行科技公司成立 ...
查看>>
10 个 Linux 中方便的 Bash 别名
查看>>
[Server] 服务器配置SSH登录邮件通知
查看>>
全新 DOCKER PALS 计划上线,带给您不一样的参会体验! ...
查看>>
Android开发之自定义View(二)
查看>>
python爬虫之微打赏(scrapy版)
查看>>
自制操作系统Antz day08——实现内核 (中) 扩展内核
查看>>
poj-1056-IMMEDIATE DECODABILITY(字典)
查看>>
阿里云容器Kubernetes监控(二) - 使用Grafana展现Pod监控数据
查看>>
区块链应用 | 不知道什么时候起,满世界都在谈区块链的事情
查看>>
小程序爆红 专家:对简单APP是巨大打击
查看>>
FarBox--另类有趣的网站服务【转】
查看>>
在非纯色背景上,叠加背景透明的BUTTON和STATIC_TEXT控件
查看>>
Distributed2:Linked Server Login 添加和删除
查看>>
海量数据处理相关面试问题
查看>>
Python-time
查看>>