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,如下写,去掉第二个参数

控制台中的输出

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

DemotmApplication.java
方法三 :在 SpringBootApplication 上使用@ServletComponentScan 注解后,直接通过@WebServlet、@WebFilter、@WebListener 注解自动注册
具体实现
DemotmApplication.java 加入@ServletComponentScan
main的上面
相应的类加入注释
Last updated
Was this helpful?