• 05 SpringBoot注册Web组件


    目录

    一、SpringBoot注册web组件_注册Servlet

     注册方式一:全注解方式@WebServlet

     注册方式二:配置类注册Servlet

    二、SpringBoot注册web组件_注册Filter

      注册方式一:全注解方式@WebFilter

     注册方式二:配置类注册Filter

    三、SpringBoot注册web组件_注册Listener

    注册方式一:全注解方式@WebListener

    注册方式二:配置类注册Listener

    四、知识点整理:


    一、SpringBoot注册web组件_注册Servlet

     注册方式一:全注解方式@WebServlet

    1.编写Firstservlet

    1. @WebServlet("/first")
    2. public class FirstServlet extends HttpServlet {
    3. @Override
    4. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    5. System.out.println("first Servlet......");
    6. }
    7. }

    2.启动类添加@ServletComponentScan注解扫描web组件

    1. @SpringBootApplication
    2. //SpringBoot启动时扫描注册注解标注的Web组件
    3. @ServletComponentScan
    4. public class Springbootdemo2Application {
    5. public static void main(String[] args) {
    6. SpringApplication.run(Springbootdemo2Application.class, args);
    7. }
    8. }

    @ServletComponentScan可以扫描Servlet、Filter、Listen三个组件

    3.运行结果:后台打印出“first Servlet.....” 

     注册方式二:配置类注册Servlet

    1.编写SecondServlet

    1. public class SecondServlet extends HttpServlet {
    2. @Override
    3. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    4. System.out.println("Second Servlet......");
    5. }
    6. }

    2.编写配置类ServletConfig注册Servlet

    1. @SpringBootConfiguration
    2. public class ServletConfig {
    3. //ServletRegistrationBean可以注册Servlet组件,将其放入Spring容器即可注册Servlet组件
    4. @Bean
    5. public ServletRegistrationBean getServletRegistrationBean(){
    6. //注册Servlet组件
    7. ServletRegistrationBean bean = new ServletRegistrationBean(new SecondServlet());
    8. //添加Servlet访问路径
    9. bean.addUrlMappings("/second");
    10. return bean;
    11. }
    12. }

    3.运行结果:后台打印出“Second Servlet.....” 

     

    二、SpringBoot注册web组件_注册Filter

      注册方式一:全注解方式@WebFilter

    1.编写FirstFilter

    1. @WebFilter(urlPatterns = "/first")
    2. public class FirstFilter implements Filter {
    3. @Override
    4. public void init(FilterConfig filterConfig) throws ServletException {
    5. }
    6. @Override
    7. public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    8. System.out.println("进入first Filter");
    9. filterChain.doFilter(servletRequest,servletResponse);
    10. System.out.println("离开first Filter");
    11. }
    12. @Override
    13. public void destroy() {
    14. }
    15. }

    2.启动类中的@ServletComponentScan注解扫描web组件

    1. @SpringBootApplication
    2. //SpringBoot启动时扫描注册注解标注的Web组件
    3. @ServletComponentScan
    4. public class Springbootdemo2Application {
    5. public static void main(String[] args) {
    6. SpringApplication.run(Springbootdemo2Application.class, args);
    7. }
    8. }

    3.运行结果:访问localhost:8080/first 

     注册方式二:配置类注册Filter

    1.编写SecondFilter

    1. public class SecondFilter implements Filter {
    2. @Override
    3. public void init(FilterConfig filterConfig) throws ServletException {
    4. }
    5. @Override
    6. public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    7. System.out.println("进入Second Filter");
    8. filterChain.doFilter(servletRequest,servletResponse);
    9. System.out.println("离开Second Filter");
    10. }
    11. @Override
    12. public void destroy() {
    13. }
    14. }

    2.编写配置类FilterConfig注册Filter

    1. @SpringBootConfiguration
    2. public class FilterConfig {
    3. //ServletRegistrationBean可以注册Servlet组件,将其放入Spring容器即可注册Servlet组件
    4. @Bean
    5. public FilterRegistrationBean getFilterRegistrationBean(){
    6. //注册Filter组件
    7. FilterRegistrationBean bean = new FilterRegistrationBean(new SecondFilter());
    8. //添加Filter过滤路径
    9. bean.addUrlPatterns("/second");
    10. return bean;
    11. }
    12. }

    3.运行结果:访问localhost:8080/second

     

    三、SpringBoot注册web组件_注册Listener

    注册方式一:全注解方式@WebListener

     1.编写FirstListener

    1. @WebListener
    2. public class FirstListener implements ServletContextListener {
    3. @Override
    4. public void contextInitialized(ServletContextEvent sce) {
    5. System.out.println("First Listener Init....");
    6. }
    7. @Override
    8. public void contextDestroyed(ServletContextEvent sce) {
    9. }
    10. }

    2.运行结果:

    注册方式二:配置类注册Listener

     1.编写SecondListener

    1. public class SecondListener implements ServletContextListener {
    2. @Override
    3. public void contextInitialized(ServletContextEvent sce) {
    4. System.out.println("Second Listener Init....");
    5. }
    6. @Override
    7. public void contextDestroyed(ServletContextEvent sce) {
    8. }
    9. }

    2.编写配置类ListenerConfig注册Listener

    1. @Configuration
    2. public class ListenerConfig {
    3. @Bean
    4. public ServletListenerRegistrationBean getServletListenerRegistrationBean(){
    5. ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean(new SecondListener());
    6. return bean;
    7. }
    8. }

    3.运行结果:

     

    四、知识点整理:

    1. SpringBoot启动类 中,扫描 web组件的注解是 @ServletComponentScan
    2. SpringBoot 中,自动扫描 Servlet 组件需要在 Serlvet类上添加 @WebServlet 注解
    3. SpringBoot 中,自动扫描 Filter 组件需要在 Filter类上添加 @WebFilter 注解
    4. SpringBoot 中,自动扫描 Listener 组件需要在 Listener 类上添加 @WebListener 注解
  • 相关阅读:
    弹性伸缩:高可用架构利器(架构+算法+思维)
    激活函数总结(四十二):激活函数补充(SSFG、Gumbel Cross Entropy)
    内网渗透-横向移动外部工具的使用
    用pyinstaller打包LGBM模型为ELF/EXE可执行文件
    高通车机8155平台android开启ASAN定位内存问题方法
    Leecode 24.两两交换链表中的节点
    分布式系统关注点:“熔断”以及最佳实践方法
    Qt编写跨平台视频监控系统(64通道占用7%CPU/支持win_linux_mac等)
    word转PDF 版本不一样可能过程各种找不到文件路径,需要自行修改
    ZXing.Net 的Core平台生成二维码
  • 原文地址:https://blog.csdn.net/m0_51697147/article/details/127041801