springboot的jsp项目在IDEA中运行部署

博客介绍了在Spring Boot中使用JSP的相关内容,涉及配置路径,完成配置后点击ok,启动main,即可通过访问url来使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置路径 ;’
水电工

点击 ok, 启 动 main,访问 url :

<think>我们被要求使用中文回答,并且按照给定的格式要求。用户的问题是关于在IntelliJ IDEA中配置并运行Spring Boot与JSP整合项目。 根据提供的引用信息,我们可以整合出一个步骤指南。注意,引用中提到了两种方式(jar和war),但这里我们以常见的war方式为例(因为JSP在jar包中运行有局限性,通常推荐war包部署),但也会提到jar包方式的关键点。 同时,我们需要注意,在Spring Boot中整合JSP需要一些特定的配置。 步骤: 1. 创建项目时选择打包方式为war(虽然jar也可以,但war更常见于JSP项目,且引用[2]提到有人认为JSP不支持jar包,但实际上jar包也可以运行,只是需要额外处理)。 2. 添加必要的依赖(包括Spring Boot Web依赖和JSP相关的依赖)。 3. 配置项目结构(创建webapp目录,并设置为Web资源根目录)。 4. 创建JSP文件存放目录(例如在webapp下创建jsp目录)。 5. 配置视图解析器(告诉Spring Boot在哪里查找JSP文件)。 6. 编写控制器和JSP页面。 7. 运行项目。 详细步骤: 1. 创建项目使用Spring Initializr创建项目,选择打包方式为War(在创建项目时选择Packaging为War)。同时添加Web依赖(Spring Web)。 2. 添加JSP相关依赖: 在pom.xml中添加以下依赖(注意:这些依赖在Spring Initializr中可能没有直接选项,需要手动添加): ```xml <!-- JSP依赖 --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <!-- JSTL标签库依赖(可选,如果使用JSTL) --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> ``` 3. 配置项目结构(在IntelliJ IDEA中): - 在main目录下创建webapp目录(如果没有的话)。 - 右键点击项目 -> Open Module Settings (F4) -> 选择Modules -> 选择Web -> 在右侧的Web Resource Directories中,点击+号添加刚才创建的webapp目录,并设置路径(例如:src/main/webapp)。 - 在webapp目录下创建jsp目录(用于存放jsp文件)。 4. 配置视图解析器: 创建一个配置类,实现WebMvcConfigurer接口,并重写configureViewResolvers方法: ```java @Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void configureViewResolvers(ViewResolverRegistry registry) { // 配置jsp文件查找路径:前缀为 /jsp/(即webapp下的jsp目录),后缀为 .jsp registry.jsp("/jsp/", ".jsp"); } } ``` 5. 编写控制器: ```java @Controller public class HelloController { @GetMapping("/hello") public String hello(Model model, String name) { model.addAttribute("name", name); return "hello"; // 这里返回的字符串对应jsp文件的名称(不需要后缀),视图解析器会加上前缀和后缀 } } ``` 6. 编写JSP页面: 在webapp/jsp目录下创建hello.jsp: ```jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>Hello ${name}</h1> </body> </html> ``` 7. 运行项目: 直接运行主启动类(带有@SpringBootApplication注解的类)即可。 注意:如果使用jar包方式,需要将JSP文件放在META-INF/resources目录下,但这样在开发时不如放在webapp目录下方便。而且,在Spring Boot官方文档中,对于JSP的支持也是有限制的,特别是在使用jar包时,一些内嵌容器不支持JSP。因此,推荐使用war包方式,并部署到外部Tomcat中,但开发时可以直接运行。 另外,如果使用war包方式,需要修改主启动类,使其继承SpringBootServletInitializer并重写configure方法: ```java @SpringBootApplication public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 但是,在开发过程中,我们仍然可以直接在IDE中运行主方法启动,而不需要部署到外部Tomcat。 问题解决:如果遇到404错误,请检查: - 是否添加了必要的依赖(tomcat-embed-jasper和jstl)。 - 是否配置了视图解析器,并且路径正确(前缀是否对应jsp目录的路径)。 - JSP文件是否放在webapp/jsp目录下(注意:在IDEA中,webapp目录需要设置为Web资源根目录)。 根据引用[3]中的配置,我们还需要注意application.properties中是否配置了spring.mvc.view.prefix和spring.mvc.view.suffix,但上面的配置类已经配置了视图解析器,所以不需要在application.properties中配置。如果同时配置,以最后配置的为准。 因此,我们可以在IntelliJ IDEA中按照上述步骤配置并运行项目。 生成相关问题: 1. 如何在Spring Boot项目中配置多个视图解析器? 2. Spring Boot中使用JSP有什么限制? 3. 如何将Spring Boot项目打包成war文件并部署到外部Tomcat? 4. 在Spring Boot中除了JSP,还有哪些常用的模板引擎? 5. 为什么在Spring Boot中使用JSP不被推荐?</think>### 在IntelliJ IDEA中配置并运行Spring Boot与JSP整合项目 以下是详细步骤(基于Spring Boot 2.x/3.x): #### 1. **创建项目并添加依赖** - 使用[Spring Initializr](https://start.spring.io/)创建项目: - 打包方式选择 **WAR**(JSP需依赖Servlet容器,推荐WAR包) - 添加依赖:`Spring Web`、`Apache Tomcat`(内嵌) - 手动添加JSP依赖到`pom.xml`: ```xml <!-- JSP支持 --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <!-- JSTL标签库(可选) --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> ``` #### 2. **配置项目结构** - 在`main`目录下创建: ``` src/main/webapp/jsp/ 👈 JSP存放目录 ``` - 在IDEA中配置Web资源目录: 1. 右键项目 → **Open Module Settings** (F4) 2. 选择 **Modules** → **Web** 3. 添加 **Web Resource Directory**:`src/main/webapp` 4. 设置 **Deployment Descriptor**:`src/main/webapp/WEB-INF/web.xml`(可选) #### 3. **配置视图解析器** 创建配置类`WebMvcConfig.java`: ```java @Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void configureViewResolvers(ViewResolverRegistry registry) { registry.jsp("/jsp/", ".jsp"); // 前缀: /jsp/, 后缀: .jsp } } ``` #### 4. **创建Controller和JSP** - 控制器示例: ```java @Controller public class HelloController { @GetMapping("/hello") public String hello(Model model, @RequestParam String name) { model.addAttribute("name", name); return "hello"; // 对应/src/main/webapp/jsp/hello.jsp } } ``` - JSP文件位置:`src/main/webapp/jsp/hello.jsp` ```jsp <%@ page contentType="text/html;charset=UTF-8" %> <html> <head><title>Spring Boot + JSP</title></head> <body> <h1>Hello ${name}!</h1> <p>当前时间: <%= new java.util.Date() %></p> </body> </html> ``` #### 5. **配置应用属性(可选)** 在`application.properties`中添加: ```properties # 关闭Thymeleaf缓存(开发环境) spring.thymeleaf.cache=false # 设置JSP模式(Spring Boot 3+可能需要) spring.mvc.view.prefix=/jsp/ spring.mvc.view.suffix=.jsp ``` #### 6. **运行项目** - 直接运行主启动类(带`@SpringBootApplication`的类) - 访问测试:`http://localhost:8080/hello?name=Spring` #### ⚠️ 常见问题解决 1. **JSP页面404错误**: - 检查`webapp/jsp`目录位置是否正确 - 确认视图解析器配置的前缀/后缀匹配 - WAR包部署需确保JSP在`src/main/webapp`下[^3] 2. **JAR包运行问题**: - 若需打包为JAR,需将JSP放在`META-INF/resources/`目录 - 推荐使用WAR包部署到外部Tomcat[^2] 3. **Spring Boot 3注意事项**: - 需使用Jakarta EE依赖(替换`javax.servlet`为`jakarta.servlet`) - 添加依赖: ```xml <dependency> <groupId>org.glassfish.web</groupId> <artifactId>jakarta.servlet.jsp.jstl</artifactId> <version>2.0.0</version> </dependency> ``` > **关键点**:JSP在Spring Boot中是非官方推荐方案,建议新项目使用Thymeleaf或FreeMarker[^1]。但现有项目迁移时可按此流程整合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值