• 峰哥说技术:15-Spring Boot整合web基础组件


    Spring Boot深度课程系列

    峰哥说技术—2020庚子年重磅推出、战胜病毒、我们在行动

    15  峰哥说技术:Spring Boot整合web基础组件

    一般情况下,使用了Spring MVC这些框架后,基本上就不会再去使用Servlet、Filter和Listener这些web组件。但是有时候需要使用第三方的框架,就可能需要使用。比如在使用报表插件的时候,可能就需要使用这些web组件。这也是我们在这里讲解的原因之一。 它们的整合非常简单,可以在工程中直接定义Servlet、Filter和Listener,不需要使用web.xml,也不需要加任何的依赖。最后就是在启动类中添加注解@ServletComponentScan。这个注解可以扫描这三种类型的web组件。下面用一个案例来说明。

    案例:新建一个工程,在工程中使用web基础组件,并进行测试。

    步骤:

    1)创建工程chapter04-webcomponent,添加web依赖

     

    2)创建Servlet

    @WebServlet(urlPatterns = "/hello_servlet")
    public class HelloServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
           doPost(req,resp);
        }

        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            System.out.println("hello,Servlet");
        }
    }

    3)创建Filter

    @WebFilter

    public class HelloFilter implements Filter {
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            System.out.println("hello Filter init");
        }

        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            System.out.println("hello Filter doFilter");
            filterChain.doFilter(servletRequest,servletResponse);
        }

        @Override
        public void destroy() {
            System.out.println("hello Filter destroy");
        }
    }

    4)创建Listener

    @WebListener
    public class HelloHttpSessionListener implements ServletRequestListener {
        @Override
        public void requestDestroyed(ServletRequestEvent sre) {
            System.out.println("HelloHttpSessionListener requestDestroyed");
        }

        @Override
        public void requestInitialized(ServletRequestEvent sre) {
            System.out.println("HelloHttpSessionListener requestInitialized");
        }
    }

    5)在启动类添加注解@ServletComponentScan

    @SpringBootApplication
    @ServletComponentScan(basePackages = "com.java.chapter04webcomponent.webcomponent")
    public class Chapter04WebcomponentApplication {
       public static void main(String[] args) {
          SpringApplication.run(Chapter04WebcomponentApplication.class, args);
       }
    }

    6)启动项目,可以看到如下结果。

     

    大家可以看到过滤器初始化。然后在浏览器中输入:http://localhost:8080/hello_servlet

    大家可以看到监听器、过滤器、servlet都发挥了作用了。

  • 相关阅读:
    iOS 网络编程:socket
    Zsh和Bash,究竟有何不同
    关于微软win10 2004的更新以及wsl2 Ubuntu18.04安装
    C# 委托事件机制 订阅发布
    关于Docker理念和安装,对Visual Studio2019自带生成的DockerFile配置,以及Docker镜像的发布与拉取
    div弹框
    vs分页
    ado显示下拉
    SQL server动态拼接存储过程分页
    退役
  • 原文地址:https://www.cnblogs.com/027kgc/p/12502183.html
Copyright © 2020-2023  润新知