springboot笔记-使用JSP

Spring Boot 项目中使用 JSP:

项目结构:需要添加webapp文件夹用来存放目录 jsp 文件

spring-boot-jsp
 +-src
    +- main
         +- java
         +- resources
         +- webapp
              +- WEB-INF
                 +- jsp
                    +- welcome.jsp
    +- test
 +-pom.xml

在配置文件application.properties中指定 jsp 的位置和后缀。
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

引入依赖包

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>

 

简单写一个页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>jsp welcome</title>
</head>
<body>
    Time:  ${time}
    <br>
    Message: ${message}
</body>
</html>

 

后端程序

@Controller
public class WelcomeController {

    @GetMapping("/")
    public String welcome(Map<String, Object> model) {
        model.put("time", new Date());
        model.put("message", "hello world");
        return "welcome";
    }

}

打war 在tomcat中运行:
(1)在 pom.xml 里设置打包格式为 war。
<packaging>war</packaging>
(2)排除内嵌的 Tomcat 依赖


打包时排除掉内嵌的 Tomcat 依赖,避免 jar 包冲突。

 

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!-- 排除内置容器,排除内置容器导出成 war 包可以让外部容器运行spring-boot项目-->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

 

Servlet 的支持:
Spring Boot 项目必须实现 SpringBootServletInitializer 接口的 configure() 方法才能让外部容器运行 Spring Boot 项目,启动类同目录下创建 ServletInitializer 类:

public class ServletInitializer extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(JspApplication.class);
    }
}

 

打包发布,在项目根目录执行 maven 命令:
mvn clean package
将 war 包发布到 Tomcat 即可。

上一篇:新手小白也能成码农之Java 实例 - 数组输出


下一篇:js打开新窗口