中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在SpringBoot中添加JSP支持

發布時間:2020-12-07 16:55:40 來源:億速云 閱讀:185 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關怎么在SpringBoot中添加JSP支持,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

序言:

SpringBoot默認不支持JSP,如果想在項目中使用,需要進行相關初始化工作。為了方便大家更好的開發,本案例可直接作為JSP開發的腳手架工程 SpringBoot+War+JSP .

常見問題:

1.修改JSP需重啟才能生效:

在生產環境中,SpringBoot重新編譯JSP可能會導致較大的性能損失,并且很難追查到問題根源,所以在最新的版本中,官方已經默認關閉此功能,詳見JspServlet類的初始化參數。那么,如何解決這個問題呢?推薦兩個解決辦法:1.使用devtools 2. 添加配置(server.servlet.jsp.init-parameters.development=true)

2.各種404:

1.必須導入嵌入式容器和JASPER解析器 2.必須創建webapp目錄

正文:SpringBoot 添加對JSP的支持

1. 搭建腳手架

首先使用 Spring Initializr 構建工程,其中源碼和靜態資源目錄默認生成,這里只需手工添加Web資源目錄。如圖:

怎么在SpringBoot中添加JSP支持

2. 在pom.xml 添加相關依賴

 <&#63;xml version="1.0" encoding="UTF-8"&#63;>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <!--基本信息 -->
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.hehe</groupId>
  <artifactId>springboot-web-jsp</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <!--打包格式:SpringBoot使用JSP時需打包為war類型 -->
  <packaging>war</packaging>

  <!--繼承父工程-->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.M4</version>
    <relativePath/>
  </parent>

  <!--依賴管理 -->
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat.embed</groupId>
      <artifactId>tomcat-embed-jasper</artifactId>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <!--指定遠程倉庫(含插件) -->
  <repositories>
    <repository>
      <id>spring-snapshots</id>
      <url>http://repo.spring.io/snapshot</url>
      <snapshots><enabled>true</enabled></snapshots>
    </repository>
    <repository>
      <id>spring-milestones</id>
      <url>http://repo.spring.io/milestone</url>
    </repository>
  </repositories>
  <pluginRepositories>
    <pluginRepository>
      <id>spring-snapshots</id>
      <url>http://repo.spring.io/snapshot</url>
    </pluginRepository>
    <pluginRepository>
      <id>spring-milestones</id>
      <url>http://repo.spring.io/milestone</url>
    </pluginRepository>
  </pluginRepositories>

  <!--構建插件 -->
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>


</project>

3. 啟動類添加Servlet支持

@SpringBootApplication
public class SpringbootWarJspApplication extends SpringBootServletInitializer {

  @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    return builder.sources(SpringbootWarJspApplication.class);
  }

  public static void main(String[] args) {
    SpringApplication.run(SpringbootWarJspApplication.class, args);
  }
}

4. 添加MVC映射

application.yml 配置如下:

spring:
 mvc:
  view:
   prefix: /WEB-INF/views/ # Read From Web Resources Dir
   suffix: .jsp

5. 編寫JSP頁面

在 WEB-INF/views 目錄下新建一個JSP文件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<body>
 <marquee><p >Hello JSP !!</p>
   ![](${pageContext.servletContext.contextPath}/doge.gif)
 </marquee>
</body>
</html>

6.啟動項目

啟動方式1:在IDE啟動WebJspApplication,然后打開項目地址。

啟動方式2:部署到外置Tomcat,啟動完成后,打開項目地址。這里需要注意的是,使用外置Tomcat部署的時候,需要將嵌入式容器調整為provided級別。(防止沖突)

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat.embed</groupId>
      <artifactId>tomcat-embed-jasper</artifactId>
      <scope>provided</scope>
    </dependency>

7.單元測試

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@DirtiesContext
public class WebJspApplicationTest {

  @Autowired
  private TestRestTemplate restTemplate;

  @Test
  public void testJspWithEl() throws Exception {
    ResponseEntity<String> entity = restTemplate.getForEntity("/", String.class);
    assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK);
    assertThat(entity.getBody()).contains("Hello JSP");
  }

}

看完上述內容,你們對怎么在SpringBoot中添加JSP支持有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洛浦县| 永州市| 鸡东县| 裕民县| 新沂市| 云浮市| 滨海县| 南汇区| 钦州市| 平昌县| 随州市| 施秉县| 双桥区| 融水| 西乌珠穆沁旗| 合肥市| 白山市| 普兰店市| 淄博市| 河津市| 普兰县| 礼泉县| 宁蒗| 恭城| 葵青区| 湖北省| 南靖县| 绥棱县| 安顺市| 通榆县| 友谊县| 长武县| 手游| 阿拉善左旗| 绥芬河市| 西宁市| 民丰县| 通道| 漳州市| 永泰县| 海淀区|