SpringBoot使用注解扫描注册Java Web三大组件

使用注解扫描和注册Java Web三大组件(Servlet、Filter、Listener)非常方便。

1. Servlet 注册

Servlet 是 Java Web 开发的基础组件,用于处理客户端(通常是浏览器)发送的 HTTP 请求并生成响应。
Controller是基于 Servlet 的封装。

可以通过@WebServlet注解来注册Servlet,并使用@ServletComponentScan注解来扫描这些Servlet。

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/myServlet")
public class MyServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    	System.out.println("Hello MyServlet");
        resp.getWriter().write("Hello from MyServlet");
    }

}

主类上添加@ServletComponentScan注解:

@SpringBootApplication
@ServletComponentScan
public class QvtuWeb002Application {

    public static void main(String[] args) {
        SpringApplication.run(QvtuWeb002Application.class, args);
    }

}

2. Filter 注册

通过@WebFilter注解来注册Filter,同样需要使用@ServletComponentScan注解来扫描。

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

@WebFilter("/myServlet")
public class MyFilter implements Filter {
    @Override
    public void doFilter(ServletRequest servletRequest,
                         ServletResponse servletResponse,
                         FilterChain filterChain) throws IOException, ServletException {
        System.out.println("处理请求前的处理");
        filterChain.doFilter(servletRequest, servletResponse);
        System.out.println("处理请求后的处理");
    }
}

3. Listener 注册

通过@WebListener注解来注册Listener,同样需要使用@ServletComponentScan注解来扫描。

@WebListener
public class MyListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("----Web应用初始化完成----");
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("----Web应用销毁之前----");
    }
}

4. 运行测试

运行项目的启动类,控制台输出项目启动的信息。
SpringBoot使用注解扫描注册Java Web三大组件_第1张图片
在浏览器中访问http://127.0.0.1:8080/myServlet,此时控制台输出访问结果信息。
SpringBoot使用注解扫描注册Java Web三大组件_第2张图片

你可能感兴趣的:(spring,boot,spring,boot)