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
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层技术的更多相关文章
- SpringBoot整合持久层技术--(一)JdbcTemplate
简介: JdbcTemplate是Spring提供的一套JDBC模板框架,利用AOP技术解决直接使用JDBC带来的重复代码问题.它没有MyBatis使用那么灵活,但是却比直接使用JDBC方便得多.Sp ...
- SpringBoot整合持久层技术--(二)MyBatis
简介: 原名iBatis,SpringBoot中使用MyBatis: pom.xml <dependency> <groupId>org.springframework.boo ...
- SpringBoot整合持久层技术--(三)Spring Data JPA
简介: JPA(java Persistence API)和SpringData是两个范畴的概念.spring data jpa是spring公司下的spring data项目的一个模块. sprin ...
- Spring Boot 整合Web 层技术(整合Servlet)
1 整合Servlet 方式一1.1通过注解扫描完成Servlet 组件的注册 1.1.1创建Servlet /*** 整合Servlet 方式一*/@WebServlet(name = & ...
- SpringBoot整合持久层技术-创建项目
新建项目 Pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&q ...
- springboot整合持久层技术(mysql驱动问题)
java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more tha ...
- SpringBoot_整合视图层技术
SpringBoot整合视图层技术 在目前的企业级应用开发中,前后端分离是趋势,但是视图层技术还占有一席之地.Spring Boot对视图层技术提供了很好的支持,官方推荐使用的模板引擎是Thymele ...
- Spring Boot 整合视图层技术
这一节我们主要学习如何整合视图层技术: Jsp Freemarker Thymeleaf 在之前的案例中,我们都是通过 @RestController 来处理请求,所以返回的内容为json对象.那么如 ...
- Spring Boot 整合视图层技术,application全局配置文件
目录 Spring Boot 整合视图层技术 Spring Boot 整合jsp Spring Boot 整合freemarker Spring Boot 整合视图层技术 Spring Boot 整合 ...
- springboot 整合 web 项目找不到 jsp 文件
今天遇到一个问题,就是使用springboot整合web项目的时候,怎么都访问不到 \webapp\WEB-INF\jsp\index.jsp 页面.这个问题搞了半天,试了各种方式.最后是因为在启动的 ...
随机推荐
- JavaScript 滚动条滚动到底部才触发按钮是否可用
应用代码片段: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- [SHOI2017] 摧毁“树状图”
首先只要得到 \(x=0\) 时的答案,就可以 \(AC\) 本题.这是很重要的. 考虑由于不能有重复经过的边,所以两路径交点数量 \(\le 1\). 容易想到设 \(dp_u\) 表示以 \(u\ ...
- Docker 镜像存储目录的位置修改教程
以下是在 Linux 系统中修改 Docker 镜像存储目录位置的一般步骤: 查看当前 Docker 的默认存储目录:使用docker info命令可以查看 Docker 存储驱动程序和默认存储位置, ...
- ES - 概述
前言 Q1:ElasticSearch 是什么? 为什么要学习? ElasticSearch 是一个分布式.可扩展.实时的搜索和分析引擎,基于 Lucene 构建.它可以用于全文搜索.结构化搜索.分析 ...
- day1-简介与下载
为什么创造了golang? 计算机硬件技术更新频繁,不能合理运用多核多CPU的的优势 目前市场缺乏一款简洁高效的编程语言 c++.c运行速度很快,但存在内存泄漏的问题 go语言特点 既做到了静态语言的 ...
- python实现批量自动访问站点URL并获取内容,自动模拟打开电脑端及移动端URL访问站点,打开URL页面获取页面内容
问题描述:假设目前有多个网站URL,需要检查各站点keyword,description是否正常设置,如果人工逐个打开URL访问比较耗时,故采用python模拟电脑端和移动端自动打开网站URL访问,并 ...
- 【计算力学】CST单元格式推导
CST单元格式推导
- 【Unit4】UML解析器(模型化设计)-作业总结 & 【BUAA-OO】课程总结
第四单元作业总结 1.题目概述 UML类图建模与查询(8) + UML顺序图/状态图建模与查询(3+3) + 模型错误检查(9),三次迭代共23条命令 2.构架设计 一开始以为和第三单元差不多,稍微用 ...
- Font-awesome失效恢复
Font-awesome失效恢复策略 可能的原因有: 1.用了收费pro的版本,没充钱. Font Awesome 6 字体分为 Free 和 Pro 两个版本.Font Awesome 6 Free ...
- goframe API 自定义接口返回值处理
前言 goframe 默认使用了中间键 ghttp.MiddlewareHandlerResponse, HTTP Server 的数据返回通过 ghttp.Response 对象实现,ghttp.R ...