十六SpringBoot2核心技术——整合jsp

Posted 上善若水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十六SpringBoot2核心技术——整合jsp相关的知识,希望对你有一定的参考价值。

一、整合jsp

1.1、添加依赖

<dependencies>
    <!--springboot整合web框架起步依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--
        引入springboot内嵌tomcat对jsp的解析依赖,不添加,解析不了jsp。
        仅仅只是展示jsp页面,只添加以下一个依赖
    -->
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
    </dependency>
</dependencies>

如果需要添加其他依赖,比如jstl、servlet等,可以参考如下依赖配置:

        <!--如果要使用servlet,必须添加以下两个依赖-->
        <!--servlet依赖的jar包-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.3</version>
        </dependency>

        <!--如果使用JSTL必须添加该依赖-->
        <!--jstl标签依赖的jar包-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

1.2、新建webapp目录,并对该目录进行设置

1.src/main目录下,新建webapp文件夹。并设置为web目录。



1.3、在pom.xml的build标签中要配置以下信息

spring boot要求jsp文件必须编译到指定的META-INF/resources目录下才能访问,否则访问不到。其实官方已经更建议使用模板技术(thymeleaf)。

<build>
    <!--
        springboot项目默认推荐使用的前端引擎时thymeleaf,现在我们要使用springboot集成jsp,
        手动指定jsp最后编译的路径。而且springboot集成jsp、编译jsp的路径是springboot规定好的位置
        META-INF/resources
    -->
    <resources>
        <resource>
            <!--源文件夹-->
            <directory>src/main/webapp</directory>
            <!--指定编译到 META-INF/resources -->
            <targetPath>META-INF/resources</targetPath>
            <!--指定源文件夹中的哪个资源要编译进行-->
            <includes>
                <include>**/*.*</include>
            </includes>
        </resource>
    </resources>
    <!--springboot编译打包插件-->
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

1.4、在application.yml文件配置SpringMVC的视图展示为jsp,这里相当于Spring MVC的配置

# springboot核心配置文件
# 指定内嵌 tomcat 端口号
server:
  port: 8081
  servlet:
    context-path: / # 指定上下文根,默认 /

# 配置SpringMVC视图解析器
# 其中: / 表示目录为 src/main/webapp
spring:
  mvc:
    view:
      prefix: /
      suffix: .jsp

1.5、编写controller类

package com.xbmu.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class JspController {
    @RequestMapping(value = "/springboot/jsp")
    public String jsp(Model model){
        model.addAttribute("data","SpringBoot 前端使用 JSP 页面");
        return "index";
    }
}

1.6、编写index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>SpringBoot 前端使用 JSP 页面</title>
</head>
<body>
    ${data}
</body>
</html>

1.7、编译,打包,启动服务


以上是关于十六SpringBoot2核心技术——整合jsp的主要内容,如果未能解决你的问题,请参考以下文章

二十一SpringBoot2核心技术——整合activiti7

十七SpringBoot2核心技术——整合Mybatis

十七SpringBoot2核心技术——整合Mybatis

十九SpringBoot2核心技术——整合Alibaba Dubbo

十九SpringBoot2核心技术——整合Alibaba Dubbo

二十SpringBoot2核心技术——整合logback