五、 Spring Boot 整合 Web 层技术

整合 Servlet
1 整合 Servlet 方式一

1.1通过注解扫描完成 Servlet 组件的注册
1.1.1创建 Servlet


    /*** 整合 Servlet 方式一 */
    @WebServlet(name = "FirstServlet", urlPatterns = "/first")
    public class FirstServlet extends HttpServlet {
        public void doGet(HttpServletRequest request, HttpServletResponse response) {
            System.out.println("First Servlet........");
        }
    }

1.1.2修改启动类

  @SpringBootApplication
    @ServletComponentScan
    //在 spring Boot 启动时会扫描@WebServlet 注解,并将该类实例化
    public class SpringbootwebApplication {
        public static void main(String[] args) {
            SpringApplication.run(SpringbootwebApplication.class, args);
        }
    }
2 整合 Servlet 方式二

2.1通过方法完成 Servlet 组件的注册
2.1.1创建 Servlet

 /*** 整合 Servlet 方式二 */
    public class SecondServlet extends HttpServlet {
        public void doGet(HttpServletRequest request, HttpServletResponse response) {
            System.out.println("Second Servlet........");
        }
    }

2.1.2创建 Servlet 配置类

/*** Servlet 配置类
     */
    @Configuration
    public class ServletConfig {
        /*** 完成 Servlet 组件的注册 */
        @Bean
        public ServletRegistrationBean getServletRegistrationBean() {
            ServletRegistrationBean bean = new ServletRegistrationBean(new SecondServlet());
            bean.addUrlMappings("/second");
            return bean;
        }
    }
3 整合 Filter 方式一

3.1通过注解扫描完成 Filter 组件注册
3.1.1创建 Filter

 /*** 整合 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() {
    }
}

3.1.2修改启动类

@SpringBootApplication
    @ServletComponentScan
    //在 spring Boot 启动时会扫描 @WebServlet,@WebFilter 注解,并将该类实例化
    public class SpringbootwebApplication {
        public static void main(String[] args) {
            SpringApplication.run(SpringbootwebApplication.class, args);
        }
    }
4 整合 Filter 方式二

4.1通过方法完成 Filter 组件注册
4.1.1创建 Filter

 /**
     * 整合 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() {
        }
    }

4.1.2创建 Filter 配置类

  /*** Filter 配置类 */
    @Configuration
    public class FilterConfig {
        @Bean
        public FilterRegistrationBean getFilterRegistrationBean() {
            FilterRegistrationBean bean = new FilterRegistrationBean(new SecondFilter());
// bean.addUrlPatterns(new String[]{"*.do","*.jsp"});
      bean.addUrlPatterns("/second");
       return bean; 
        } 
    }
5 整合 Listener 方式一

5.1通过注解扫描完成 Listener 组件注册
5.1.1编写 Listener

/*** 整合 Listener */
    @WebListener
    public class FirstListener implements ServletContextListener {
        public void contextDestroyed(ServletContextEvent event) {
        }

        public void contextInitialized(ServletContextEvent event) {
            System.out.println("Listener ...Init......");
        }
    }

5.1.2修改启动类

@SpringBootApplication @ServletComponentScan/*在 spring Boot 启动时会扫描
    @WebServlet,@WebFilter,@WebListener 注解,并将该类实例化*/
    public class SpringbootwebApplication {
        public static void main(String[] args) {
            SpringApplication.run(SpringbootwebApplication.class, args);
        }
    }
6 整合 Listener 方式二

6.1通过方法完成 Listener 组件注册
6.1.1编写 Listener

/*** 整合 Listener 方式二 */
    public class SecondListener implements ServletContextListener {
        public void contextDestroyed(ServletContextEvent event) {
        }

        public void contextInitialized(ServletContextEvent event) {
            System.out.println("Second....Listener ...Init......");
        }
    }

6.1.2创建 Listener 配置类

/**
     * Listener 配置类
     */
    @Configuration
    public class ListenerConfig {
        @Bean
        public ServletListenerRegistrationBean getServletListenerRegistrationBean() {
            ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean(new SecondListener());
            return bean;
        }
    }

六、 Spring Boot 访问静态资源

    在 SpringBoot 项目中没有我们之前常规 web 开发的 WebContent(WebApp),它只有 src 目录。在 src/main/resources 下面有两个文件夹,static 和 templates。SpringBoot 默认在 static 目录中存放静态页面,而 templates 中放动态页面。

1 static 目录

Spring Boot 通过 classpath/static 目录访问静态资源。注意存放静态资源的目录名称必须 是 static。

2 templates 目录

在 Spring Boot 中不推荐使用 jsp 作为视图层技术,而是默认使用 Thymeleaf 来做动态页 面。Templates 目录这是存放 Thymeleaf 的页面。

3 静态资源存放其他位置

3.1Spring Boot 访问静态资源的位置

classpath:/META‐INF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/
3.2自定义静态资源位置

#配置静态资源访问路径
 spring.resources.static-locations=classpath:/suibian/,cla sspath:/static/

  如有文章对你有帮助,
   “ 在看”和 转发是对我最大的支持!

在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐