SpringBoot开发Web应用兼容JSP(开发工具idea)

首先创建一个web应用,打包方式要选用war,选择jar会导致编译好的jsp不能使用。

SpringBoot开发Web应用兼容JSP(开发工具idea)

这个时候选择web组件,其他的就暂时先不选了,后续自己操作再添加需要的jar包依赖,

SpringBoot开发Web应用兼容JSP(开发工具idea)

    创建完项目在pom.xml中增加依赖。

<!-- 支持jsp页面-start -->
<dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>jstl</artifactId>
</dependency>
<dependency>
   <groupId>org.apache.tomcat.embed</groupId>
   <artifactId>tomcat-embed-jasper</artifactId>
   <!--<scope>provided</scope>-->
</dependency>
<!-- 支持jsp页面-end -->

只引入这两个就够用了  spring-boot-starter-web的引用是idea帮忙引入的。

然后在配置文件中增加jsp页面的支持,在application.yml中或者application.properties增加配置,这两个有一个就可以,如果都存在的话,application.properties的优先级会比较高,默认读取properties文件,下面直接上配置截图

SpringBoot开发Web应用兼容JSP(开发工具idea)     SpringBoot开发Web应用兼容JSP(开发工具idea)

    然后是webapp包的结构:

SpringBoot开发Web应用兼容JSP(开发工具idea)

   下面是login.jsp代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<h1>恭喜您!注册成功,用户名: ${map.username },密码:${map.password }</h1>
</body></html>

下面是controller代码:

@Controller
public class JspController {

@RequestMapping("/logindev")
public ModelAndView testjsplogin() {
    Map<String, Object> map = new HashMap<>();
    map.put("username", "SpringBoot");
    map.put("password", UUID.randomUUID().toString().replace("-",""));
    ModelAndView modelAndView = new ModelAndView("/login");
    modelAndView.addObject("map", map);
    return modelAndView;
    }
}

代码部分就写完了,现在说一下启动方式,不能使用自动的启动方式,要用双击spring-boot:run的方式来启动

SpringBoot开发Web应用兼容JSP(开发工具idea)

试下访问地址: http://127.0.0.1:8080/logindev
页面显示如下:

SpringBoot开发Web应用兼容JSP(开发工具idea)