时间:2021-05-19
序言:
SpringBoot默认不支持JSP,如果想在项目中使用,需要进行相关初始化工作。为了方便大家更好的开发,本案例可直接作为JSP开发的脚手架工程 SpringBoot+War+JSP .
常见问题:
1.修改JSP需重启才能生效:
在生产环境中,SpringBoot重新编译JSP可能会导致较大的性能损失,并且很难追查到问题根源,所以在最新的版本中,官方已经默认关闭此功能,详见JspServlet类的初始化参数。那么,如何解决这个问题呢?推荐两个解决办法:1.使用devtools 2. 添加配置(server.servlet.jsp.init-parameters.development=true)
2.各种404:
1.必须导入嵌入式容器和JASPER解析器 2.必须创建webapp目录
正文:SpringBoot 添加对JSP的支持
1. 搭建脚手架
首先使用 Spring Initializr 构建工程,其中源码和静态资源目录默认生成,这里只需手工添加Web资源目录。如图:
2. 在pom.xml 添加相关依赖
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://.hehe</groupId> <artifactId>springboot-web-jsp</artifactId> <version>0.0.1-SNAPSHOT</version> <!--打包格式:SpringBoot使用JSP时需打包为war类型 --> <packaging>war</packaging> <!--继承父工程--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.M4</version> <relativePath/> </parent> <!--依赖管理 --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <!--指定远程仓库(含插件) --> <repositories> <repository> <id>spring-snapshots</id> <url>http://repo.spring.io/snapshot</url> <snapshots><enabled>true</enabled></snapshots> </repository> <repository> <id>spring-milestones</id> <url>http://repo.spring.io/milestone</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-snapshots</id> <url>http://repo.spring.io/snapshot</url> </pluginRepository> <pluginRepository> <id>spring-milestones</id> <url>http://repo.spring.io/milestone</url> </pluginRepository> </pluginRepositories> <!--构建插件 --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>3. 启动类添加Servlet支持
@SpringBootApplicationpublic class SpringbootWarJspApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(SpringbootWarJspApplication.class); } public static void main(String[] args) { SpringApplication.run(SpringbootWarJspApplication.class, args); }}4. 添加MVC映射
application.yml 配置如下:
spring: mvc: view: prefix: /WEB-INF/views/ # Read From Web Resources Dir suffix: .jsp5. 编写JSP页面
在 WEB-INF/views 目录下新建一个JSP文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %><!DOCTYPE html><html><body> <marquee><p style="font-size: 100px">Hello JSP !!</p> ![](${pageContext.servletContext.contextPath}/doge.gif) </marquee></body></html>6.启动项目
启动方式1:在IDE启动WebJspApplication,然后打开项目地址。
启动方式2:部署到外置Tomcat,启动完成后,打开项目地址。这里需要注意的是,使用外置Tomcat部署的时候,需要将嵌入式容器调整为provided级别。(防止冲突)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency>7.单元测试
@RunWith(SpringRunner.class)@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)@DirtiesContextpublic class WebJspApplicationTest { @Autowired private TestRestTemplate restTemplate; @Test public void testJspWithEl() throws Exception { ResponseEntity<String> entity = restTemplate.getForEntity("/", String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); assertThat(entity.getBody()).contains("Hello JSP"); }}全文至此,有疑问的小伙伴可在评论下方进行交流。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
springboot添加对jsp的支持,以下是pom.xml文件的配置
本文介绍了SpringBoot集成jsp(附源码)+遇到的坑,分享给大家1、大体步骤(1)创建Mavenwebproject;(2)在pom.xml文件添加依赖
springboot对于jsp支持的限制对于jsp的支持,SpringBoot官方只支持了war的打包方式,不支持fatjar。参考官方文档:https://d
步骤1:视图支持Springboot的默认视图支持是Thymeleaf,本知识点记录如何让Springboot支持jsp。步骤2:可运行项目首先下载一个简单的可
编辑器另外一个很重要的功能就是代码格式化了,VSCode默认提供常见文件的格式化,如.js,.html等。添加对.vue文件的格式化支持这里我们添加对.vue文