[springboot 設定] springboot で JSP ページをサポートする方法

序文:

時代の発展に伴い、新興技術である springboot はますます多くの人に求められ、使用されています. 一般的な開発は、vue+springboot などのフロントエンドとバックエンドの分離に基づいています. 未構成のネイティブ springboot は jsp をサポートしていませんファイルの分析について、この記事では jsp ファイルの分析をサポートするように springboot を構成する方法を紹介します。

JSP技術は後進性により廃止されましたが、初心者にとっては慣れ親しんで習得すべき基礎知識です。

非フロントエンドとバックエンドの分離プロジェクト、jsp を実行できる SSM プロジェクトを構築する

1. springboot を使用して新しいプロジェクトを作成します

Java8 バージョンを選択し、パッケージ化方法は war パッケージです  (jsp プロジェクトには jsp Web ページ ファイルが含まれており、サポートするにはこれらのファイルを war パッケージにパッケージ化する必要があることに注意してください)。

ここではAlibaba CloudのSpringInitializrを使用し、必要なモジュールを確認します。

ここで必要なモジュールを確認してください。Spring Web は必須です

2. pom の依存関係を構成します。 

 mysqlデータベース接続を構成します(MySQL8を使用します)

以下の依存関係ファイルをそれぞれ追加します

<!--配置支持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 をサポートする

ビルド ファイルを追加し、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フォルダーを追加します

まず、メイン ディレクトリに新しい webapp フォルダーを作成し (pom フォルダーの構成後にプロンプ​​トが表示されます)、それを直接選択します

 

 次にモジュール設定を開きます

 右クリックしてモジュール設定を開きます

ファセットを選択し、web.xml ファイルを構成します (このディレクトリには webapp フォルダーが見つからないため、スクリーンショットがよく使われます)

    プラス記号をクリックして、新しい web.xml ファイルを作成します。

場所のディレクトリを変更することに注意し、src\main\webapp web.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. テストクラスを作成する

 新しいコントローラー テスト クラスのテスト ページを作成し、main/java/user-define ファイルのメイン ディレクトリに配置します。

 テストクラスを作成...

同時に、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>

 コントローラコード表示

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