zoukankan      html  css  js  c++  java
  • SpringBoot整合Web层技术


    1 SpringBoot整合Web层技术

    1.1 SpringBoot整合Servlet

    目录结构

    1.1.1 方式一 通过注解扫描完成Servlet组件的注册

    1.1.1.1 创建Servlet

    /**
     * SpringBoot 整合servlet方式一
     */
    @WebServlet(name = "FirstServlet" , urlPatterns = {"/first"})
    public class FirstServlet extends HttpServlet {
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //        super.doGet(req, resp);
            System.out.println("First Servlet......");
        }
    }
    

    需要在Servlet类上加上@WebServlet注解,并指定name属性和urlPatterns属性

    1.1.1.2 修改启动类

    @SpringBootApplication
    @ServletComponentScan //在Spring Boot启动时会扫描@WebServlet注解,并将该类实例化
    public class SpringBootWebApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SpringBootWebApplication.class, args);
        }
    
    }
    

    启动类需要加上ServletComponentScan注解

    1.1.2 方式二 通过方法完成Servlet组件的注册

    1.1.2.1 创建Servlet

    /**
     * SpringBoot 整合servlet方式二
     */
    public class SecondServlet extends HttpServlet {
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            System.out.println("Second Servlet......");
        }
    }
    

    需要继承HttpServlet

    1.1.2.2 创建Servlet配置类

    /**
     * 完成Servlet组件的注册
     */
    @Configuration
    public class ServletConfig {
    
        /**
         * 容器开始的时候初始化一次
         * @return
         */
        @Bean
        public ServletRegistrationBean getServletRegistrationBean(){
            ServletRegistrationBean bean = new ServletRegistrationBean(new SecondServlet(),"/second");
            bean.addUrlMappings("/second2");
            bean.addUrlMappings("/second3");
            return bean;
        }
    }
    

    需要在配置类上加上@Configuration注解,在方法上加上@Bean注解,返回ServletRegistrationBean对象

    1.1.2.3 启动类

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

    1.2 SpringBoot整合Filter

    1.2.1 方式一 通过注解扫描完成Filter组件注册

    1.2.1.1 创建Filter

    //@WebFilter(filterName = "FirstFilter",urlPatterns = {"*.do","*.jsp"})
    @WebFilter(filterName = "FirstFilter",urlPatterns = "/first")
    public class FirstFilter implements Filter {
    
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
    
        }
    
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            System.out.println("进入first Filter..");
            filterChain.doFilter(servletRequest,servletResponse);
            System.out.println("退出first Filter..");
        }
    
        @Override
        public void destroy() {
    
        }
    }
    

    Filter类需要添加@WebFilter注解,实现Filter接口(javax.servlet.*)

    1.2.1.2 修改启动类

    @SpringBootApplication
    //@ServletComponentScan //在Spring Boot启动时会扫描@WebServlet、@WebFilter注解,并将该类实例化
    public class SpringBootWebApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SpringBootWebApplication.class, args);
        }
    
    }
    

    1.2.2 方式二 通过方法完成Filter组件注册

    1.2.2.1 创建Filter

    public class SecondFilter implements Filter {
    
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
    
        }
    
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            System.out.println("进入second Filter..");
            filterChain.doFilter(servletRequest,servletResponse);
            System.out.println("退出second Filter..");
        }
    
        @Override
        public void destroy() {
    
        }
    }
    

    1.2.2.2 创建Filter配置类

    @Configuration
    public class FilterConfig {
    
        @Bean
        public FilterRegistrationBean getFilterRegistration(){
            FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new SecondFilter());
            filterRegistrationBean.addUrlPatterns("/second");
            return filterRegistrationBean;
        }
    }
    

    配置类需要加上@Configuration注解,方法加上@Bean注解,返回FilterRegistrationBean对象

    1.2.1.3 修改启动类

    @SpringBootApplication
    @ServletComponentScan //在Spring Boot启动时会扫描@WebServlet、@WebFilter注解,并将该类实例化
    public class SpringBootWebApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SpringBootWebApplication.class, args);
        }
    
    }
    

    启动类需要加上@ServletComponentScan注解,这样可以扫描@WebFilter注解

    1.3 SpringBoot整合Listener

    Servlet的8个Listener

    1.3.1 方式一 通过注解扫描完成Listener组件注册

    1.3.1.1 创建Listener

    @WebListener
    public class FirstListener implements ServletContextListener {
    
        @Override
        public void contextInitialized(ServletContextEvent sce) {
            System.out.println("first listener ... init");
        }
    
        @Override
        public void contextDestroyed(ServletContextEvent sce) {
            System.out.println("first listener ... destroy");
        }
    }
    

    Listener类需要加上@WebListener注解

    1.3.1.2 修改启动类

    @SpringBootApplication
    @ServletComponentScan //在Spring Boot启动时会扫描@WebServlet、@WebFilter、@WebListener注解,并将该类实例化
    public class SpringBootWebApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SpringBootWebApplication.class, args);
        }
    }
    

    1.3.2 方式二 通过方法完成Listener组件注册

    1.3.2.1 创建Listener

    public class SecondListener implements ServletContextListener {
    
        @Override
        public void contextInitialized(ServletContextEvent sce) {
            System.out.println("second listener ... init");
        }
    
        @Override
        public void contextDestroyed(ServletContextEvent sce) {
            System.out.println("second listener ... destroy");
        }
    }
    

    1.3.2.2 创建配置类

    @Configuration
    public class ListenerConfig {
    
        @Bean
        public ServletListenerRegistrationBean getListener(){
            ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean(new SecondListener());
            return bean;
        }
    }
    

    类加上@Configuration注解,方法加上@Bean注解

    1.3.2.3 修改启动类

    @SpringBootApplication
    //@ServletComponentScan //在Spring Boot启动时会扫描@WebServlet、@WebFilter、@WebListener注解,并将该类实例化
    public class SpringBootWebApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SpringBootWebApplication.class, args);
        }
    
    }
    
    --------------- 我每一次回头,都感觉自己不够努力,所以我不再回头。 ---------------
  • 相关阅读:
    yarn 完美替代 npm
    Vue调试神器vue-devtools安装
    PHPStorm 忽略 node_modules 目录
    npm 更改为淘宝镜像的方法
    php快速获取所有的自定义常量用户常量
    我们为什么要在 PHPStorm 中标记目录
    PhpStorm 合理标注目录让索引和扫描更加地高效
    Linux sleep命令
    Shell命令行中特殊字符与其转义详解(去除特殊含义)
    shell编程—— EOF
  • 原文地址:https://www.cnblogs.com/zjw-blog/p/13580766.html
Copyright © 2011-2022 走看看