6.Servlets, Filters, listeners

一.Web 开发使用 Controller 基本上可以完成大部分需求,但是我们还可能会用到 Servlet、 Filter、Listener 等等

二.在 spring boot 中的三种实现方式

方法一:通过注册 ServletRegistrationBean、 FilterRegistrationBean 和 ServletListenerRegistrationBean 获得控制

自定义 servlet

/**

* 自定义 servlet

* */

public class CustomServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;


    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        System.out.println("servlet get method");
        doPost(request, response);
    }


    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        System.out.println("servlet post method");
        response.getWriter().write("hello world");

    }

}

自定义 filter

自定义 listener

注册 bean

具体实现:

选中的文件就是需要实现的

CustomFilter.java

上面的注册也可以配置类方式

示例使用已存在的过滤器,编码过滤器

CustomListener.java

CustomServlet.java

DemotmApplication.java中的代码

如果想对所有的访问执行filter,如下写,去掉第二个参数

访问:http://localhost:8080/test

控制台中的输出

方法二:通过实现 ServletContextInitializer 接口直接注册

具体实现:

主要是改动方法二中的bean实现方式改成通过实现 ServletContextInitializer 接口直接注册

DemotmApplication.java

方法三 :在 SpringBootApplication 上使用@ServletComponentScan 注解后,直接通过@WebServlet、@WebFilter、@WebListener 注解自动注册

具体实现

DemotmApplication.java 加入@ServletComponentScan

main的上面

相应的类加入注释

Last updated

Was this helpful?