Springboot整合JSP-修订版本(Springboot3.1.6+IDEA2022版本)

1、问题概述?

Springboot对Thymeleaf支持的要更好一些,Springboot内嵌的Tomcat默认是没有JSP引擎,不支持直接使用JSP模板引擎。这个时候我们需要自己配置使用。

2、Springboot整合使用JSP过程

现在很多的IDEA版本即使创建的项目类型是WAR工程,但是在项目中也没有webapp目录和web.xml目录,这个是需要重点解决的问题。

2.1、创建工程,引入相关包信息

1、核心包就是tomcat-embed-jasper

2、由于我们创建的是springboot工程spring-boot-starter-tomcat包是不需要的。

3、由于在jsp模板引擎中我们喜好使用JSTL+EL表达式,如果需要也可以导入JSTL的包,但如果只是测试JSP是否能成功访问,要不要这个包不影响大局。

<?xml version="1.0" encoding="UTF-8"?>
<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 https://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>3.1.7</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.txc</groupId><artifactId>springjspdemo2</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><name>springjspdemo2</name><description>springjspdemo2</description><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 使用jsp引擎,springboot内置tomcat没有此依赖 --><dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId><scope>provided</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><image><builder>paketobuildpacks/builder-jammy-base:latest</builder></image><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources></build></project>

2.2、通过IDEA生成webapp及web.xml配置文件

2.2.1、选择File->Project Structure

2.2.2、选择Modules-> + -> Web

2.2.3、创建webapp根目录

这步重点就是创建webapp目录,我选择创建在src下,创建在其他地方都是可以的。

2.2.4、选择Web->+ 添加web.xml文件

要将WEB-INF/web.xml创建在上面创建的webapp目录中

2.2.5、创建成功后效果

有些版本创建后,可能会出现没有web.xml配置文件或者web.xml没有内容。这个时候只要webapp创建没有问题,直接从其他地方拷贝一个web.xml也是有效的。

2.3、在application.properties中配置视图解析器

由于视图解析器中配置的目录在WEB-INF/view目录,所以还需要手动在创建view目录。

【application.properties】

server.port=8081
spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.jsp

【application.yml】

如果使用的是yml文件,配置相同,写法不同

server:port: 8081
spring:mvc:view:prefix: /WEB-INF/view/suffix: .jsp

2.4、创建view目录及index.jsp测试页面

${username}是获取后端request/session/application/ModelMap等中保存的值,一会会使用到。

2.5、创建测试类

@Controller
public class TestController {@RequestMapping("/index")public String test(HttpSession session){session.setAttribute("username","博主-雾林小妖");System.out.println("====1=23=2=====");return "index";}}

2.6、启动工程,访问程序

访问地址:http://localhost:8081/index

3、源码下载

https://download.csdn.net/download/tangshiyilang/88676797

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/311142.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ESP32入门九(超声波测距传感器)

一、超声波测距原理 超声波测距模块可提供非接触式距离感测功能&#xff1b;模块包括超声波发射器、接收器和控制电路。其工作原理为当接收到信号后&#xff0c;发射器发出音速的超声波信号&#xff0c;信号在受到物品阻挡时会返回并被接收器检测到&#xff0c;当接收器检测信…

双侧电源系统距离保护MATLAB仿真模型

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 系统原始数据 双侧电源系统模型如图所示&#xff1a; 仿真模型搭建 将线路AB分成Line1和Line2&#xff0c;将线路BC分成Line3和Line4&#xff0c;用三相电压电流测量模块作为系统母线&#xff0c;根据系统已…

04 HAL库下使用定时器产生一个中断

目录 一、定时器的相关知识点 1.定时器的定义 2. 查看时钟配置 3. 定时器的分类 二、实验开始 1. 配置一个定时器 2.打开定时器的中断配置 引言 在本文的开头我想给大家分享一下单片机工作的两种工作模式轮询和中断&#xff08;异步&#xff09;&#xff0c; 中断也叫做…

雨课堂作业整理

第一次作业 1.下列序列是图序列的是&#xff08; &#xff09; A.1&#xff0c;2&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;4&#xff0c;5 B.1&#xff0c;1&#xff0c;2&#xff0c;2&#xff0c;4&#xff0c;6&#xff0c;6 C.0&#xff0c;0&#xff0c;2&am…

性能测试-jmeter:安装 / 基础使用

一、理解jmeter 官网-Apache JMeter-Apache JMeter™ JMeter是一款开源的性能测试工具&#xff0c;主要用于模拟大量用户并发访问目标服务器&#xff0c;以评估服务器的性能和稳定性。 JMeter可以执行以下任务序号用途描述1性能测试通过模拟多个用户在同一时间对服务器进行请…

PythonTSK Study for first day (paper read)

HTSK model Study AbstractIntroductionII TSK for high-dimentional datasetIII ResultsA DatesetB AlgorithmC性能评估 Abstract The TSK Fuzzy System with Gaussian membership functions can not address high dimentional datasets, if add softmax function to solve i…

使用Android Studio等idea工具开发flutter应用,必备的debug调试技能,非常好用

我们程序员不论开发什么软件&#xff0c;都需要一把锋利的调试工具&#xff0c;这是必不可少的&#xff0c;不然出现问题了&#xff0c;你都不知道问题是啥&#xff0c;出现在哪&#xff0c;就更别说怎么解决了。所以我这里就介绍一下android studio开发flutter必备的调试技能&…

【数据结构—堆排序、top k问题和时间复杂度】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、堆排序&#xff08;升序&#xff09; 1.1向上调整算法&#xff1a; 1.2向下调整算法&#xff1a; 1.3、堆排序的实现&#xff1a; 二、top k问题 2.1top k…

Python+Django+Mysql+SimpleUI搭建后端用户管理系统(非常详细,每一步都清晰,列举了里面所有使用的方法属性)

一、在Anaconda环境下创建虚拟环境 &#xff08;1&#xff09;打开Anaconda Prompt(install)&#xff0c;创建虚拟环境&#xff0c;如下图所示&#xff1a; 方法一&#xff1a;默认情况下虚拟环境创建在Anaconda安装目录下的envs文件夹中 conda create --name usermanage …

高频面试题:合并两个List并去重

欢迎关注微信公众号&#xff1a;互联网全栈架构 合并两个List中并去掉重复的元素&#xff0c;有好几种方法&#xff0c;我们来看看常见的三种&#xff1a; 一、使用HashSet HashSet是一个没有重复元素的集合&#xff0c;可以利用这个特性&#xff0c;把List中的元素逐一添加到H…

简单几步制作翻页电子画册

翻页电子画册是一种非常流行的电子书形式&#xff0c;它能够以生动、美观、有趣的方式展示您的内容。如果您想要制作自己的翻页电子画册&#xff0c;以下是一些简单的步骤&#xff0c;可以帮助您轻松上手。 首先&#xff0c;你需要一款在线制作电子杂志平台。比如FLBOOK&#x…

java8开发常用的日期操作,纯干货分享

首先介绍java8关于日期和时间比较常用的一些类&#xff1a; Java 8 推出了全新的日期时间API&#xff0c;在教程中我们将通过一些简单的实例来学习如何使用新API。 Java处理日期、日历和时间的方式一直为社区所诟病&#xff0c;将 java.util.Date设定为可变类型&#xff0c;以…