目录

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);
} }

SpringBoot整合Web层技术的更多相关文章

  1. SpringBoot整合持久层技术--(一)JdbcTemplate

    简介: JdbcTemplate是Spring提供的一套JDBC模板框架,利用AOP技术解决直接使用JDBC带来的重复代码问题.它没有MyBatis使用那么灵活,但是却比直接使用JDBC方便得多.Sp ...

  2. SpringBoot整合持久层技术--(二)MyBatis

    简介: 原名iBatis,SpringBoot中使用MyBatis: pom.xml <dependency> <groupId>org.springframework.boo ...

  3. SpringBoot整合持久层技术--(三)Spring Data JPA

    简介: JPA(java Persistence API)和SpringData是两个范畴的概念.spring data jpa是spring公司下的spring data项目的一个模块. sprin ...

  4. Spring Boot 整合Web 层技术(整合Servlet)

    1 整合Servlet 方式一1.1通过注解扫描完成Servlet 组件的注册      1.1.1创建Servlet /*** 整合Servlet 方式一*/@WebServlet(name = & ...

  5. SpringBoot整合持久层技术-创建项目

    新建项目 Pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&q ...

  6. springboot整合持久层技术(mysql驱动问题)

    java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more tha ...

  7. SpringBoot_整合视图层技术

    SpringBoot整合视图层技术 在目前的企业级应用开发中,前后端分离是趋势,但是视图层技术还占有一席之地.Spring Boot对视图层技术提供了很好的支持,官方推荐使用的模板引擎是Thymele ...

  8. Spring Boot 整合视图层技术

    这一节我们主要学习如何整合视图层技术: Jsp Freemarker Thymeleaf 在之前的案例中,我们都是通过 @RestController 来处理请求,所以返回的内容为json对象.那么如 ...

  9. Spring Boot 整合视图层技术,application全局配置文件

    目录 Spring Boot 整合视图层技术 Spring Boot 整合jsp Spring Boot 整合freemarker Spring Boot 整合视图层技术 Spring Boot 整合 ...

  10. springboot 整合 web 项目找不到 jsp 文件

    今天遇到一个问题,就是使用springboot整合web项目的时候,怎么都访问不到 \webapp\WEB-INF\jsp\index.jsp 页面.这个问题搞了半天,试了各种方式.最后是因为在启动的 ...

随机推荐

  1. JavaScript 滚动条滚动到底部才触发按钮是否可用

    应用代码片段: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  2. [SHOI2017] 摧毁“树状图”

    首先只要得到 \(x=0\) 时的答案,就可以 \(AC\) 本题.这是很重要的. 考虑由于不能有重复经过的边,所以两路径交点数量 \(\le 1\). 容易想到设 \(dp_u\) 表示以 \(u\ ...

  3. Docker 镜像存储目录的位置修改教程

    以下是在 Linux 系统中修改 Docker 镜像存储目录位置的一般步骤: 查看当前 Docker 的默认存储目录:使用docker info命令可以查看 Docker 存储驱动程序和默认存储位置, ...

  4. ES - 概述

    前言 Q1:ElasticSearch 是什么? 为什么要学习? ElasticSearch 是一个分布式.可扩展.实时的搜索和分析引擎,基于 Lucene 构建.它可以用于全文搜索.结构化搜索.分析 ...

  5. day1-简介与下载

    为什么创造了golang? 计算机硬件技术更新频繁,不能合理运用多核多CPU的的优势 目前市场缺乏一款简洁高效的编程语言 c++.c运行速度很快,但存在内存泄漏的问题 go语言特点 既做到了静态语言的 ...

  6. python实现批量自动访问站点URL并获取内容,自动模拟打开电脑端及移动端URL访问站点,打开URL页面获取页面内容

    问题描述:假设目前有多个网站URL,需要检查各站点keyword,description是否正常设置,如果人工逐个打开URL访问比较耗时,故采用python模拟电脑端和移动端自动打开网站URL访问,并 ...

  7. 【计算力学】CST单元格式推导

    CST单元格式推导

  8. 【Unit4】UML解析器(模型化设计)-作业总结 & 【BUAA-OO】课程总结

    第四单元作业总结 1.题目概述 UML类图建模与查询(8) + UML顺序图/状态图建模与查询(3+3) + 模型错误检查(9),三次迭代共23条命令 2.构架设计 一开始以为和第三单元差不多,稍微用 ...

  9. Font-awesome失效恢复

    Font-awesome失效恢复策略 可能的原因有: 1.用了收费pro的版本,没充钱. Font Awesome 6 字体分为 Free 和 Pro 两个版本.Font Awesome 6 Free ...

  10. goframe API 自定义接口返回值处理

    前言 goframe 默认使用了中间键 ghttp.MiddlewareHandlerResponse, HTTP Server 的数据返回通过 ghttp.Response 对象实现,ghttp.R ...