您好,登录后才能下订单哦!
密码登录
            
            
            
            
        登录注册
            
            
            
        点击 登录注册 即表示同意《亿速云用户服务条款》
        # SpringBoot如何访问JSP页面
## 一、前言
在SpringBoot项目中,虽然官方推荐使用Thymeleaf、FreeMarker等模板引擎,但仍有不少传统项目需要集成JSP(JavaServer Pages)。本文将详细介绍如何在SpringBoot 2.x/3.x中配置和访问JSP页面,并解决常见问题。
## 二、环境准备
### 1. 创建SpringBoot项目
通过Spring Initializr创建项目时需注意:
```xml
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 必须添加tomcat-embed-jasper -->
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>
src/
├── main/
│   ├── java/
│   ├── resources/
│   └── webapp/       # 必须使用此目录名
│       └── WEB-INF/
│           └── views/ # JSP存放目录
在application.properties中添加:
# JSP配置
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
# 开发时关闭缓存
spring.mvc.servlet.load-on-startup=1
server.servlet.jsp.init-parameters.development=true
若需要自定义配置,可创建配置类:
@Configuration
public class JspConfig implements WebMvcConfigurer {
    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }
}
@Controller
public class HomeController {
    
    @GetMapping("/hello")
    public String hello(Model model) {
        model.addAttribute("message", "Hello JSP!");
        return "hello"; // 对应/WEB-INF/views/hello.jsp
    }
}
@GetMapping("/user")
public String userInfo(Model model) {
    User user = new User("张三", 25);
    model.addAttribute("user", user);
    return "user";
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>SpringBoot JSP</title>
</head>
<body>
    <h1>${message}</h1>
    <p>当前时间:<%= new java.util.Date() %></p>
</body>
</html>
需额外添加依赖:
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>
示例JSP:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forEach items="${users}" var="user">
    <p>${user.name} - ${user.age}</p>
</c:forEach>
webapp目录位置正确application.properties配置# 添加编译配置
server.tomcat.additional-tld-skip-patterns=*.jar
需要额外添加依赖:
<dependency>
    <groupId>jakarta.servlet.jsp.jstl</groupId>
    <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
    <version>2.0.0</version>
</dependency>
mvn tomcat7:jspc
spring.mvc.servlet.load-on-startup=0
server.servlet.jsp.init-parameters.development=false
server.compression.enabled=true
server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript
虽然SpringBoot官方不推荐使用JSP,但在迁移传统项目时仍是必要技术。关键点包括: 1. 正确的依赖配置(tomcat-embed-jasper) 2. 严格的目录结构(webapp/WEB-INF) 3. 完善的视图解析配置 4. 针对不同SpringBoot版本的适配
建议新项目优先考虑Thymeleaf等现代模板引擎,但掌握JSP集成方案对于维护老系统至关重要。
注意:SpringBoot 3.x需使用Jakarta EE 9+的命名空间(jakarta.servlet代替javax.servlet) “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。