目录

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. FANUC发那科机器人维护保养与故障处理分析

    发那科机器人维护保养与故障处理分析 掌握知识:掌握发那科机器人维护保养与故障处理分析 每台机器人都需要预防性保养,这样可以保证它们在生产线上保持最佳性能和实现一致性,当机器人没有进行定期的预防性保养检 ...

  2. 动态代理到AOP

    动态代理 代理(proxy)是一种设计模式,通过了目标对象的另外访问方法,即通过代理对象访问目标对象.动态代理是再程序运行时动态地生成一个代理类代替原本的类.该类会拦截对目标对象的方法调用 为什么使用 ...

  3. 图片的 rgb信息 byte[] 直接转换为bmp文件

    方法1: /// <summary> /// rgb像素值转换为bmp文件 /// </summary> /// <param name="buffer&quo ...

  4. Lobe Chat 数据库版安装和使用教程

    DeepSeek 爆火之后官方网站一直繁忙,不少开发者都开始自己动手部署聊天客户端了. 市面上可供选择的套壳 UI 很多,但是论颜值和功能,还得是 Lobe Chat. Lobe Chat 是什么? ...

  5. Ansible 数百台批量操作前期准备工作

    Ansible 数百台批量操作前期准备工作 背景: 当前有100台服务器在同一个内网,需要统一部署业务程序并且对主机修改主机名,只提供了一个文档host_user.txt,内容 " IP 用 ...

  6. Azure - [01] 订阅管理

    题记部分 001 || 核心功能 (1)访问控制   Azure订阅通过基于角色的访问控制(RBAC)系统,允许管理员精细管理用户.组和应用程序对资源的访问权限.RBAC系统通过将权限分配给角色,再将 ...

  7. docker - [11] 数据卷之DockerFile

    通过DockerFile可以生成一个镜像 一.DockerFile的介绍 狂神:dockerfile是用来构建docker镜像的文件命令参数脚本. 狂神:dockerfile是面向开发的,我们以后要发 ...

  8. 开源一款数据转换扩展板-FreakStudio多米诺系列

    原文链接: FreakStudio的博客 摘要 数据转换板通过I2C接口进行信号采集和输出,支持最多16通道输入和2通道输出.具备860Hz采样率和50KHz输出频率,采用16位ADC和12位DAC芯 ...

  9. CCRC软件开发评审-材料应该怎么准备

    1. 什么是CCRC软件开发评审 软件安全开发资质认证是对软件开发方的基本资格.管理能力.技术能力和软件安全过程能力等方面进行评价全软件开发服务资质级别是衡量服务提供方的软件安全开发服务资格和能力的尺 ...

  10. go的异常抛出

    defer func() { if r := recover(); r != nil { fmt.Println("Recovered:", r) } }() 在任何涉及到数组取值 ...