ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
SpringBoot 默认使用它自身嵌入的 Tomcat 服务器,而且默认不支持 jsp 模板引擎。 <br/> 如果要使用 jsp 引擎,可以如下配置: **1. 创建SprintBoot项目,包必须选择`War`** ![](https://img.kancloud.cn/48/de/48de6fbf254d66f26605e2caceeef423_1541x798.png) **2. maven坐标** ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- 外部tomcat支持 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <!-- servlet支持 --> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>6.0.0</version> <scope>provided</scope> </dependency> <!-- jstl标签库支持 --> <dependency> <groupId>jakarta.servlet.jsp.jstl</groupId> <artifactId>jakarta.servlet.jsp.jstl-api</artifactId> <version>3.0.0</version> </dependency> <!-- jsp引擎支持 --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <version>10.1.11</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> ``` **3. ServletInitializer类** 项目创建成功后,使用 War 创建的 SpringBoot 项目会自动创建一个 ServletInitializer 类,必须存在该类外部的 Tomcat 才能使用。 ![](https://img.kancloud.cn/d5/99/d5994bd0da799edf4eac7c907b37ad1c_1729x254.png) ```java public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(JspApplication.class); } } ``` **4. 添加webapp目录** ![](https://img.kancloud.cn/ae/fc/aefc33bbfeba2b9231eefe1422b72db7_1755x461.png) >[info]模板不放在 templates 目录下了,放到 /main/webapp/WEB-INF/ 目录下。 *`/main/webapp/WEB-INF/views/demo.jsp`* ```xml <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> <!-- 静态资源位置与引入静态资源的方式与使用Thymeleaf模板是一样的 --> <script type="text/javascript" src="/webjars/jquery/3.5.0/dist/jquery.min.js"></script> <script type="text/javascript" src="/assets/jquery.min.js"></script> </head> <body> <h1>${username},欢迎来到Demo!</h1> </body> </html> ``` **5. `application.yml`** ```yml spring: mvc: view: prefix: /WEB-INF/views/ suffix: .jsp ``` **6. 写一个controller测试一下** ```java @Controller public class DemoController { @GetMapping("/v1/demo") public String demo(Model model) { model.addAttribute("username", "张三"); return "demo"; } } ``` 访问 http://localhost:8080/v1/demo ,成功了。 ![](https://img.kancloud.cn/05/4b/054b41bd91bccd4db6a51139109776a6_1648x254.png) **** 案例代码:https://gitee.com/flymini/codes03/tree/master/learn-bootjsp