【springboot配置】如何让springboot支持jsp页面

前言:

随着时代的发展,springboot这一新兴技术受到越来越多的人们的追捧与使用,一般的开发都是基于vue+springboot之类的前后端分离开发,未经配置的原生springboot是不支持jsp文件的解析的,本文我们来介绍一下如何配置springboot来支持jsp文件的解析

虽然jsp技术已经因为落后被淘汰掉了,但是对于初学者而言,都是应该熟悉并且掌握的基本知识,我可以不用,但你不能不会

非前后端分离项目,搭建能运行jsp的SSM项目

1. 通过springboot创建新项目

选择Java8版本,打包方式为war包  (这点要注意,jsp项目包含了jsp网页文件,需要打成war包才能被支持)

这边我们用的是阿里云的spring initializr ,勾选需要的模块

这边勾选需要的模块即可,spring Web为必选项

2. 配置pom依赖: 

 配置mysql数据库连接(笔者使用的是MySQL8)

扫描二维码关注公众号,回复: 15675578 查看本文章

分别添加下面的依赖文件

<!--配置支持jsp-->
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>

 以此支持jsp

添加build文件,将jsp打包进war包

代码如下:

<resources>
<!-- 作用是打包时将jsp文件拷贝到META-INF目录下-->
    <resource>
<!-- 指定处理哪个目录下的资源文件 -->
        <directory>src/main/webapp</directory>
<!-- 注意此次必须要放在此目录下才能被访问到因为此路径是spring boot静态资源默认访问路径可以通过 -->
        <targetPath>META-INF/resources</targetPath>
        <includes>
             <include>**/**</include>
        </includes>
    </resource>
</resources>

 刷新maven 之后配置webapp文件夹

3. 添加webapp文件夹

首先在main目录下新建webapp文件夹(配置过pom文件夹后会提示)直接选择即可

 

 之后打开模块设置

 右击打开module设置

选择facets,配置web.xml文件 (截图的爆红是因为没有发现该目录下有webapp文件夹)

    点击加号,新建web.xml文件

注意修改位置目录,添加src\main\webappweb.xml版本号随意(默认就行)

 修改后多了web.xml文件

自行修改application.properties 配置正确的数据库配置(如果不使用数据库对jsp并没有影响,但是配置错误会导致http 500 服务器内部错误)

仅供参考

spring:
  application:
    name: petManager
  # 数据库:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/petDB?serverTimezone=UTC
    name: petDB
    username: root
    password: root
  # spring mvc逻辑视图映射
  mvc:
    view:
      prefix: /WEB-INF/
      suffix: .jsp
    # 静态资源文件映射
    static-path-pattern: /static/**
  web:
    resources:
      # 配置静态资源所在路径
      static-locations: classpath:/static/

# 配置mybatis
mybatis:
  #指定Mybatis的Mapper文件
  mapper-locations: classpath:/mappers/*.xml
  #指定Mybatis的实体目录
  type-aliases-package: com.yanqi.petmanager.pojo

# 指定端口
server:
  port: 8080

重点部分为mvc和web部分,配置MVC逻辑试图映射

spring:
  mvc:
    view:
      prefix: /WEB-INF/
      suffix: .jsp
    # 静态资源文件映射
    static-path-pattern: /static/**
  web:
    resources:
      # 配置静态资源所在路径
      static-locations: classpath:/static/

 4. 编写测试类

 新建controller测试类测试页面,位置在main/java/用户定义的文件主目录 下

 写测试类……

同时在我们application.yml中指定的目录位置新建test.jsp(位置在webapp/WEB-INF/ 下)

 test.jsp代码展示

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

 controller代码展示

package com.yanqi.petmanager.controller;

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

@Controller
public class TestController {

    @RequestMapping("/test")
    public String Test(){
        System.out.println("访问了test页面……");
        return "test";
    }

}

 注意!这边的return "test"; 如果报错,那就是你jsp存放的位置没有被MVC框架检查到,确认一下自己存放的位置

 访问页面

 这样就是成功了,可以访问到jsp资源,控制台也出现了预设的输出内容

项目框架:

 欢迎访问 个人博客:编程日记 | Yiki-Blog 

内容还在陆续完善,欢迎交流探讨

猜你喜欢

转载自blog.csdn.net/weixin_56170314/article/details/126023733
今日推荐