使用springboot建立web專案,並使用外部Tomcat

wen-pan發表於2018-12-23

簡單介紹:

Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。

在springboot中預設使用的是嵌入式的servlet容器,我們可以不用引入外部Tomcat就可以執行程式。這樣的嵌入式容器優點就是簡單、便攜,但是缺點也比較明顯,比如他預設不支援jsp,優化定製比較複雜等。

特點:

1. 建立獨立的Spring應用程式

2. 嵌入的Tomcat,無需部署WAR檔案

3. 簡化Maven配置

4. 自動配置Spring

5. 提供生產就緒型功能,如指標,健康檢查和外部配置

6. 絕對沒有程式碼生成並且對XML也沒有配置要求

步驟和提示:

  • 必須建立一個war專案
  • 在pom.xml檔案中將嵌入式Tomcat指定為provided
  •         <dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-tomcat</artifactId>
    			<scope>provided</scope>
    		</dependency>
  • 必須有SpringBootServletInitializer子類(已預設建立了)
  • 最後啟動伺服器就可以使用了

 

下面就使用springboot建立一個web工程,並且使用外部自己的Tomcat和實現對jsp的支援:

一、建立工程

1.首先使用spring初始化器新建一個工程:

2.取好自己的工程名,並且選擇打包方式為war的形式:

注:使用jar包形式應用啟動流程:執行springboot主類的main方法--->啟動IOC容器--->建立嵌入式servlet容器

       使用war包形式應用啟動流程:啟動伺服器--->伺服器啟動springboot應用--->建立IOC容器

       可以看出,使用war包的形式和使用jar的形式啟動過程相反!

3.選擇一個要使用的模組(這裡我們只匯入web模組),然後點選下一步,點選完成:

4.工程新建完畢之後,目錄結構如下所示,預設幫我們自動建立了兩個類(這兩個類非常重要,一定不能刪除):

注:第一個類是用來啟動我們的容器的,如果刪除了則容器不能正常啟動,第二個類是我們springboot的主類

5.一個常規的web工程,在src/main目錄下都會有一個webapp目錄,但是我們當前的工程並沒有這個目錄,我們可以手動的建立一個webapp目錄以及webapp下的WEB-INF目錄,也可以使用intellij來生成該目錄。這裡我們選擇生成該目錄,使用快捷鍵:ctrl+alt+shift+s開啟project structure,我們可以看到我們當前的專案不僅是spring專案,也是一個web專案

6.點選自動建立webapp目錄,點選OK就自動生成了webapp目錄:

另外,我們的web工程應該還有一個web.xml檔案,這裡我們也在指定的目錄生成一個web.xml檔案,最後點選ok:

這時我們的工程目錄結構如下:

此時我們的web工程就建立完成了,接下來就是要引入我們外部的Tomcat容器了(將我們外部的Tomcat整合進intellij IDEA),不再使用springboot預設的嵌入式容器了,並且使我們的工程支援jsp!!!

二、使用外部Tomcat,並且使工程支援jsp

1.將Tomcat整合進我們的idea中(選擇一個本地的Tomcat伺服器)

2.選擇你本地的Tomcat,並配置Tomcat相關資訊,配置完畢之後點選OK,這裡我們就將外部的Tomcat整合到我們的工程中了

部署應用:

到此處我們的外部Tomcat就整合完畢了,接下來就寫一個jsp頁面進行測試:

三、測試是否支援jsp

1.編寫一個controller和一個hello.jsp頁面,一個success.jsp頁面

原始碼:

HelloController:

package com.wp.spring.controller;

import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {

    @GetMapping("/success")
    public String hello(Model model){
        model.addAttribute("msg","您好!!!");
        return "success";
    }
}

hello.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>hello</title>
</head>
<body>
    <h1>Hello!!!</h1>
    <a href="/success">點選我跳轉到成功頁面!!!</a>

</body>
</html>

success.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>成功介面</title>
</head>
<body>
    <h1>Success</h1>
    <h3>這是測試資訊:${msg}</h3>
</body>
</html>

2.為了讓我們請求後返回的檢視能夠得到解析,我們要在全域性配置檔案中配置解析字首和字尾:

3.點選進行執行,可以看到控制檯列印了開啟我們外部Tomcat的一些資訊和啟動了IOC容器

4.接下來我們就開始訪問我們的程式:

 

到這裡我們的專案就可以使用jsp進行正常的web開發了!後面將記錄如何在springboot中整合thymeleaf和jsp兩種模板引擎進行web開發!

 

 

 

相關文章