目录

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. 0帧起手将腾讯混元大模型集成到Spring AI的全过程解析

    在前面,我们已经为大家铺垫了大量的知识点,并深入解析了Spring AI项目的相关内容.今天,我们将正式进入实战环节,从零开始,小雨将带领大家一步步完成将第三方大模型集成到Spring AI中的全过程 ...

  2. [ABC297F] Minimum Bounding Box 2 题解

    容斥真有趣. 有一个性质: 两个相同的子矩阵,对答案的贡献一定相同. 所以就只需要枚举矩阵大小即可. 我们设当前矩阵长 \(i\) 宽 \(j\)(对应的,\(H\) 为长,\(W\) 为宽),假如要 ...

  3. 使用browser-use进行数据爬取实战记录

    前言 前面的文章介绍了browser-use的基本使用,今天带来的分享是使用browser-use进行一次数据爬取的实战(不过还是demo级别的). 使用到的三个玩法分别是使用自己的浏览器.定义输出结 ...

  4. Math.atan2求角度解析

    我们求角度的时候, 第一反应应该是Math.tan(x/y)就得到角度了 但是这样求的是和y轴的夹角,如果以y轴正方向为0度,顺时针为正,则第三象限和第一象限的tan值一致,需要判断x,y和0的关系, ...

  5. WPF .Net Core 3.1遇到Satellite Assemblies无法正常加载的处理

    1.原因 加载的时候没有调取 AssemblyLoadContext.Default 2.解决方案: 在程序启动的时候,手动调用 /// <summary> /// Interaction ...

  6. Docker 服务、镜像、容器简单命令使用

    Docker 进程相关命令 启动docker服务: systemctl start docker  查看docker服务状态: systemctl status docker 停止docker服务: ...

  7. Zookeeper、Hadoop、Hbase的启动顺序以及关闭顺序

    启动顺序 Hadoop及hbase集群启动顺序 zookeepeer -> hadoop -> hbase 停止顺序 Hadoop及hbase集群关闭顺序 hbase -> hado ...

  8. Vulkan环境配置 | vscode+msvc 解决方案

    Vulkan环境配置 | vscode+msvc 解决方案 前言 如果作为Windows 11侠的你是一个vscode爱好者,凑巧电脑上还安装有Visual Studio,这个时候你突然想配置一个Vu ...

  9. Qt ButtonRole参数的作用

    文章目录 QMessgageBox中addButton(QAbstructButton* , ButtonRole),ButtonRole的作用 QMessgageBox中addButton(QAbs ...

  10. uniapp vue3 setup + 云开发开发个人小程序

    最近使用uniapp vue3 setup + 云开发开发了个人小程序,设计使用figma软件,看下成品截图吧(可以直接微信搜索[识光]小程序体验,或者最底部有码可以直接扫)