springmvc整合redis_111 SpringBoot整合Servlet JSP Filter Listener
1. SpringBoot介绍
(1) 什么是Spring Boot?
(2) Spring Boot有哪些特点?
Spring Boot 设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。
嵌入的 Tomcat,无需部署 WAR 文件
Spring Boot 并不是对 Spring 功能上的增强,而是提供了一种快速使用 Spring 的方式。
2. 构建SpringBoot项目以及启动器讲解
(1) Spring Boot常见的启动器有哪些?
所谓的SpringBoot启动器其实就是一些jar包的集合。SpringBoot一共提供44启动器。
spring-boot-starter-web 支持全栈式的web开发,包括了tomcat和springMVC等jar
Spring-boot-starter-jdbc 支持spring以jdbc方式操作数据的jar包的集合。
Spring-boot-starter-redis 支持redis键值存储的数据库操作。
(2) Spring Boot的Web启动器的坐标是什么?
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
3. 编写HelloWorld
(1) 如何编写Spring Boot启动类?
package com.bjsxt;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/*** SpringBoot 启动类* @author MSI-PC**/
@SpringBootApplication
public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}
}
(2) 编写Spring Boot启动类时需要注意什么?
启动器存放的位置,启动器可以和controller位于同一个包下,或者位于controller的上一级包中,但是不能放到controller平行的包及子包下。即启动器只能位于Controller所在包及其上级包中。
4. Spring Boot整合Servlet
(1) Spring Boot整合Servlet有几种方式?
通过注解扫描完成Servlet组件的注册
通过方法完成Servlet组件的注册
(2) 各种方式有什么特点?
通过注解扫描完成Servlet组件的注册
Servlet
package com.bjsxt.servlet;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/*** SpringBoot整合Servlet方式一* @author MSI-PC**/
@WebServlet(name="FirstServlet",urlPatterns="/first")
public class FirstServlet extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("FirstServlet.........................");}
}
App启动类
package com.bjsxt;import javax.servlet.annotation.WebServlet;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;/*** SpringBoot启动类* 整合Servlet方式一:通过注解* @author MSI-PC**/
@SpringBootApplication
@ServletComponentScan //在SpringBoot启动时,会扫描@WebServlet注解,并将该类实例化
public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}
}
通过方法完成Servlet组件的注册
Servlet
package com.bjsxt.servlet;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/*** SpringBoot整合Servlet方式二:通过方法* @author MSI-PC**/
public class SecondServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("SecondServlet......................");}
}
App启动类
package com.bjsxt;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;import com.bjsxt.servlet.SecondServlet;/*** SpringBoot整合Servlet方式二:通过方法* @author MSI-PC**/
@SpringBootApplication
public class App2 {public static void main(String[] args) {SpringApplication.run(App2.class, args);}@Beanpublic ServletRegistrationBean getServletRegistrationBean(){ServletRegistrationBean bean = new ServletRegistrationBean<>(new SecondServlet());return bean;}
}
5. Spring Boot整合Filter
(1) Spring Boot整合Filter有几种方式?
通过注解扫描完成Filter组件的注册
通过方法完成Filter组件的注册
(2) 各种方式有什么特点?
通过注解扫描完成Filter组件的注册
Servlet类
package com.bjsxt.servlet;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@WebServlet(name="FirstServlet",urlPatterns="/first")
public class FirstServlet extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("FirstServlet................");}
}
Filter类
package com.bjsxt.filter;import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
/*** SpringBoot整合Filter方式一:注解方式* @author MSI-PC**/
@WebFilter(filterName="FirstFilter",urlPatterns="/first")
public class FirstFilter implements Filter {@Overridepublic void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)throws IOException, ServletException {System.out.println("进入Filter.........");arg2.doFilter(arg0, arg1);System.out.println("离开Filter..............");}}
App启动类
package com.bjsxt;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;@SpringBootApplication
@ServletComponentScan
public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}
}
通过方法完成Filter组件的注册
Servlet
package com.bjsxt.servlet;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class SecondServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("SecondServlet...................");}
}
Filter
package com.bjsxt.filter;import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;public class SecondFilter implements Filter {@Overridepublic void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)throws IOException, ServletException {System.out.println("进入SecondFilter............");arg2.doFilter(arg0, arg1);System.out.println("离开SecondFilter................");}}
SpringBoot启动类
package com.bjsxt;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;import com.bjsxt.filter.SecondFilter;
import com.bjsxt.servlet.SecondServlet;/*** SpringBoot整合Filter方式二:通过方法* @author MSI-PC**/
@SpringBootApplication
public class App2 {public static void main(String[] args) {SpringApplication.run(App2.class, args);}/*** 注册Servlet* @return*/@Beanpublic ServletRegistrationBean getServletRegistrationBean() {ServletRegistrationBean bean = new ServletRegistrationBean(new SecondServlet());bean.addUrlMappings("/second");return bean;}/*** 注册Filter* @return*/@Beanpublic FilterRegistrationBean getFilterRegistrationBean() {FilterRegistrationBean bean = new FilterRegistrationBean(new SecondFilter());bean.addUrlPatterns("/second");return bean;}
}
6. springBoot整合Listener
(1) Spring Boot整合Listener有几种方式?
通过注解扫描方式
通过方法的方式
(2) 各种方式有什么特点?
通过注解扫描方式
Listener类
package com.bjsxt.listener;import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
/*** SpringBoot整合Listener方式一:注解扫描方式* @author MSI-PC**/
@WebListener
public class FirstListener implements ServletContextListener {@Overridepublic void contextInitialized(ServletContextEvent sce) {// TODO Auto-generated method stubServletContextListener.super.contextInitialized(sce);System.out.println("Listener..........init..........");}
}
SpringBoot启动类
package com.bjsxt;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;@SpringBootApplication
@ServletComponentScan
public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}
}
通过方法的方式
Listener类
package com.bjsxt.listener;import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;public class SecondListener implements ServletContextListener{@Overridepublic void contextInitialized(ServletContextEvent sce) {// TODO Auto-generated method stubServletContextListener.super.contextInitialized(sce);System.out.println("SecondListener............init..........");}
}
SpringBoot启动类
package com.bjsxt;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/*** SpringBoot整合Listener方式二:通过方法* @author MSI-PC**/
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.context.annotation.Bean;import com.bjsxt.listener.SecondListener;
@SpringBootApplication
public class App2 {public static void main(String[] args) {SpringApplication.run(App2.class, args);}@Beanpublic ServletListenerRegistrationBean<SecondListener> getServletListenerRegistrationBean(){ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean(new SecondListener());return bean;}
}
7. Spring Boot访问静态资源
(1) 在Spring Boot中访问静态资源有几种方式?
两种:
SpringBoot从classpath/static的目录
ServletContext根目录 src/main/webapp
8. Spring Boot文件上传
(1) 在Spring Boot中如何设置单个上传文件大小?
在resources文件夹下添加application.properties配置文件,并添加
spring.http.multipart.maxFileSize=200MB
(2) 在Spring Boot中如何设置一次请求上传文件大小?
在application.properties文件中添加如下配置:
spring.http.multipart.maxRequestSize=200MB
9. Spring Boot整合jsp
(1) 在Spring Boot中整合jsp需要添加哪些坐标?
<dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId></dependency><dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId><scope>provided</scope></dependency>
10. Spring Boot整合Freemarker
(1) 在Spring Boot中整合Freemarker需要添加哪些坐标?
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency>
(2) Freemarker视图的扩建名是什么?
.ftl
11. Thymeleaf入门-创建项目
在Spring Boot中整合Thymeleaf需要添加哪些坐标?
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>
(2) Thymeleaf视图的扩建名是什么?
.html
(3) Thymeleaf视图要求放到项目的哪个目录下?
Src/main/resources/templates
该目录是安全的。意味着该目录下的内容是不允许外界直接访问的。
12. Thymeleaf入门-Thymeleaf基本使用
(1) Thymeleaf的特点是什么?
Thymeleaf是通过它特定的语法对html的标记做渲染。
(2) 在使用Thymeleaf时页面会出现什么异常?
(2) 解决Thymeleaf中标签匹配的异常有几种方式?
两种
解决异常方式 1
让 html 的标记按照严禁的语法去编写。
解决异常方式 2
Thymeleaf.jar:更新为 3.0 以上的版本
thymeleaf-layout-dialect.jar:更新为 2.0 以上的版本
更换 thymeleaf 的 jar 包的版本
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>
<groupId>com.bjsxt</groupId>
<artifactId>10-spring-boot-view-thymeleaf</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<java.version>1.7</java.version>
<thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.0.4</thymeleaf-layout-dialect.versi
on>
</properties>
<dependencies>
<!-- springBoot 的启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- springBoot 的启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
</project>
springmvc整合redis_111 SpringBoot整合Servlet JSP Filter Listener相关推荐
- SpringBoot注册Servlet、Filter、Listener
SpringBoot默认是以jar包的方式启动嵌入式的Servlet容易来启动SpringBoot的Web应用,没有web.xml文件 因此我们可以使用以下方式来注册Servlet.Filter.Li ...
- SpringBoot之Servlet、Filter、Listener配置
在SpringBoot中是不需要配置web.xml的,那么原来在web.xml中配置的Servlet.Filter.Listener现在怎么弄呢? SpringBoot提供了三种Bean Filter ...
- RabbitMQ,RabbitMQ 的工作模式,Spring 整合 RabbitMQ,Springboot 整合RabbitMQ
什么是RabbitMQ 1.1 MQ概述 MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器.多用于分布式系统之间进行通信. ⚫ MQ,消息队列,存储消息的中间件 ⚫ ...
- 【Javaweb 2】JSP,Filter,Listener,AJAX,Vue
- SpringBoot --- 整合Ldap
SpringBoot --- 整合Ldap 1.介绍 2.代码 2.1 pom.xml 2.2 配置文件 2.3 代码 整理不易,不喜勿喷.谢谢 SpringBoot - 整合Ldap. Spring ...
- springboot整合mybatis
3.springboot整合mybatis 首先新建一个项目,勾选上我们需要的 1.springboot配置数据库连接池druid druid学习地址 https://github.com/aliba ...
- springboot整合多线程ThreadPoolTaskExecutor
springboot整合多线程 springboot整合ThreadPoolTaskExecutor实现多线程 处理一些高并发需要使用多线程.可根据自己项目需求配置ThreadPoolTaskExec ...
- SpringBoot整合第三方技术学习笔记(自用)
SpringBoot整合第三方技术学习笔记 搬运黑马视频配套笔记 KF-4.数据层解决方案 KF-4-1.SQL 回忆一下之前做SSMP整合的时候数据层解决方案涉及到了哪些技术?MySQL数据库与My ...
- springboot整合之版本号统一管理
特别说明:本次项目整合基于idea进行的,如果使用Eclipse可能操作会略有不同,不过总的来说不影响. springboot整合之如何选择版本及项目搭建 springboot整合之版本号统一管理 ...
最新文章
- cmd 找不到java power 可以_高三总是找不到学习状态?这几个方法一定可以帮到你!...
- 【编程】位运算(异或)
- GraphPad Prism(医学绘图) v9.1.2.226 for Win
- HDU - 7008 水题(打表)
- WebSphere Classloader内存泄漏预防
- 还在 Bug 不断?不妨试试这 2 个装X技巧
- 一转眼,距 2021 竟然就不到 65 天了,你准备好了么?
- QT将窗体变为顶层窗体
- python操作excel命令_python excel操作总结
- JavaScript书籍的免费32本-收集分享
- linux docker端口映射无法访问,docker设置了端口映射,不能访问的解决方案
- Python学习笔记7——数据类型(中)
- MAE源代码理解 part2 : 预训练调试
- qemu启动openEuler Embedded镜像
- 关于团队敏捷流程的思考
- matlab roundn函数_matlab中round函数具体用法
- python分支语句_Python语言基础分支语句、循环语句.ppt
- Git回退和取消回退
- cgb2107-day08
- 谓词表示法求解农夫、狼、山羊、白菜问题(个人理解)
热门文章
- 三层登录VB.NET实现
- 比特币可视化工具_比特币再破1.2万大关 你还要做打工人吗?
- 服务间调用要通过网关吗_Asp.Net Boilerplate微服务实战(二)架构解析
- ipv6计算_移动云多款产品通过工信部IPv6支持能力技术测评
- 后端开发实践:Spring Boot项目模板
- WEB前端:浏览器(IE+Chrome+Firefox)常见兼容问题处理【03】
- 【JavaSE05】Java中方法与重载、递归
- 进腾讯了!(实习面经分享)
- Sharding-JDBC改写自己查询规则思路
- HBase 0.98 分布式集群安装详解