Springboot入门之四-进行自定义Servlet、过滤器及监听器配置

Springboot入门之四-进行自定义Servlet、过滤器及监听器配置

SpringBoot默认以jar包的方式启动内部自定义的Servlet组件,没有web.xml文件,这种情况下我们不禁会考虑,那之前使用SSM框架时的自定义Servlet、过滤器及监听器要如何配置呢?今天就来解答这个问题:

前期准备工作:

创建SpringBoot工程,创建CustomerServletConfigurer配置类如下,用于进行配置,名字可以自取

@Configuration

public class CustomerServletConfigurer {

}

自定义Servlet配置

创建MyServlet类实现HttpServlet接口,如下

public class MyServlet extends HttpServlet {

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

System.out.println("MyServlet.doGet");

doPost(req,resp);

}

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

System.out.println("MyServlet.doPost");

}

}

在CustomerServletConfigurer配置类中配置ServletRegistrationBean的返回类,如下

@Bean

//配置自定义的Servlet

public ServletRegistrationBean servletRegistrationBean(){

ServletRegistrationBean servletRegistrationBean=new ServletRegistrationBean();

servletRegistrationBean.setServlet(new MyServlet());

servletRegistrationBean.addUrlMappings("/myServlet");

return servletRegistrationBean;

}

通过该配置可实现在客户端访问"/myServlet"相关请求时使用自定义的MyServlet进行处理

自定义Filter配置

创建MyFilter类,实现Filter接口,实现相关方法,如下

public class MyFilter implements Filter {

public void init(FilterConfig filterConfig) throws ServletException {

System.out.println("MyFilter.init");

}

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

System.out.println("MyFilter.doFilter");

}

public void destroy() {

System.out.println("MyFilter.destroy");

}

}

在CustomerServletConfigurer配置类中配置FilterRegistrationBean的返回类,如下

@Bean

//配置自定义的Filter

public FilterRegistrationBean filterRegistrationBean(){

FilterRegistrationBean filterRegistrationBean=new FilterRegistrationBean();

filterRegistrationBean.setFilter(new MyFilter());

filterRegistrationBean.addUrlPatterns("/myFilter");

return filterRegistrationBean;

}

通过该配置可实现在客户端访问"/myFilter"时先使用过滤器过滤

自定义Listener配置

​创建MyListener类,实现ServletContextListener接口,实现相关方法,如下

public class MyListener implements ServletContextListener {

public void contextInitialized(ServletContextEvent sce) {

System.out.println("MyListener.contextInitialized");

}

public void contextDestroyed(ServletContextEvent sce) {

System.out.println("MyListener.contextDestroyed");

}

}

​在CustomerServletConfigurer配置类中配置FilterRegistrationBean的返回类,如下

@Bean

//配置自定义的Listener

public ServletListenerRegistrationBean servletListenerRegistrationBean(){

ServletListenerRegistrationBean servletListenerRegistrationBean=new ServletListenerRegistrationBean();

servletListenerRegistrationBean.setListener(new MyListener());

return servletListenerRegistrationBean;

}

通过该配置可实现Servlet在创建及销毁时执行相应方法

江山父老能容我,不使人间造孽钱,本人小白,如有问题,欢迎指教​


分享到:


相關文章: