Spring MVC -- Spring Tool Suite和Maven(安裝Tomcat、JDK)

Spring提供了本身的集成開發環境(IDE),稱爲Spring Tool Suite(STS),它多是構建Spring應用程序的最佳IDE了。STS捆綁了Maven做爲其默認依賴管理工具,所以不須要單獨安裝Maven。html

一 安裝STS

百度搜索Spring Tools Suite官網,進入到下載頁面https://spring.io/tools3/sts/all/java

下載zip文件後,將其解壓到到一個文件夾下。web

解壓後包含一個sts-bundle目錄,其下又有3個目錄:spring

  • 法律文件,包含各類工具的許可協議;
  • pivotal-tc-server-developer-x.y.z.RELEASE,包含Pivotal tc服務器的開發人員版本x.y.z;
  • sts-x.y.z.RELEASE,包含STS,其中x.y.z表明爲STS的主版本和次要版本。

在解壓後的sts-bundle下的sts-x.y.zRELEASE目錄中STS.exe即是可執行程序,用於啓動STS,將該文件發送到桌面快捷方式,當咱們想使用STS時能夠快速的找到。apache

 

打開STS後,界面以下圖所示,跟Eclipse幾乎沒有什麼差異,只是多了Spring的不少應用。windows

接下來咱們爲STS進行優化設置,大部分均可以參考Eclipse的配置,具。下面咱們修改STS的編碼方式爲UTF-8,在菜單欄點擊Windows-->Perference-->General-->Workspace,將編碼方式設置爲Other,而後在下拉框中選擇UTF-8:api

接下來咱們設置Maven的settings.xml和Repository(倉庫)的位置,點擊Windows-->Perference-->Maven-->User settings,在右側設置本機安裝的Maven這些文件的位置:瀏覽器

二 建立一個Spring MVC應用

STS嚴重依賴Maven,並容許你建立使用Maven依賴管理關係的應用程序。要建立Spring MVC應用程序,請按照下列步驟操做:spring-mvc

一、點擊File->New->Maven Project,你會看到如圖所示的項目對話框;tomcat

二、勾選Create a simple project(skip archetype selection);

三、點擊Next按鈕繼續配置項目,將出現以下圖所示的配置項:

四、在「Group Id」中輸入包名,例如「com.example」;在」Artifact Id「中輸入項目名稱,例如」first-spring-mvc「;

五、在」Packaging「下拉框中選擇「War」,告訴STS建立一個Spring MVC應用,war是servlet/jsp應用的文件擴展名;

六、點擊Finish按鈕,你將在Project Explorer中看到項目;

七、STS將會建立一個如上圖所示的工程和一個pom.xml文件(maven配置文件)。如今,須要編輯pom.xml,以便讓maven來處理依賴。雙擊pom.xml,用默認編輯器打開文件。編輯器有多個選項卡,提供查看和編輯文件的不用方式。選項卡名稱顯示在對話框的底部,其中一個選項卡是「Dependencies」選項卡,容許管理項目所須要的依賴項。單擊依賴項選項卡:

八、經過Dependencies選項卡添加依賴是一種相對容易的方式,咱們在這裏展現如何作。典型的Spring MVC應用程序至少包含3個庫:Servlet API、Spring MVC庫和JSTL。要添加Servlet API,清單擊"Dependencies"窗口中的Add按鈕,將打開"Select Dependency"對話框:

要輸入的值以下:

Group Id:javax.servlet

Artifact Id:javax.servlet-api

Version:3.1.0

Scope:provided

provided表示當應用程序分發時,該庫將由容器提供,不須要包含在war文件中。

完成輸入後,單擊「OK」按鈕,關閉該對話框,返回到「Dependencies」選項卡。

九、接下去,使用一樣的方式添加Spring MVC庫,點擊Add按鈕,輸入以下值:

Group Id:org.springframework

Artifact Id:spring-webmvc

Version:5.1.6.RELEASE

Scope:compile

十、最後添加JSTL庫,

點擊Add按鈕,輸入以下值:

Group Id:javax.servlet

Artifact Id:jstl

Version:1.2

Scope:runtime

十一、按Ctrl+S保存pom.xml文件,這樣STS將經過下載依賴項構建項目。這裏須要鏈接到互聯網,除非之前使用Maven下載過所須要的庫。

Maven完成下載依賴項後,將會在Library中看到一個Maven Dependencies文件夾:

這些依賴是放在C:\Users\Administrator\.m2\repository路徑下的,也就是咱們在第一節中設置的Repository路徑:

在應用建立之初,pom.xml文件中存在一個錯誤,這主要是由於當前應用找不到web.xml文件,要解決這個問題,須要打開pom.xml文件,單擊pon.xml選項卡。在pom.xml文件中查找<dependencies>元素,並在其上添加以下內容。注意:failOnMissingWebXml元素用來打開或關閉因爲缺乏web.xml文件引發的錯誤消息。

  <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
  </build>

 

三 選擇Java版本

經過向pom.xml文件添加屬性來爲應用程序選擇Java版本。請按以下步驟操做:

一、單擊Overview選項卡,點擊「Properties」下拉列表右側的Create按鈕,將打開「Add Property」對話框:

二、在「Name」中輸入「maven.compiler.source」,在「value」輸入框中輸入「1.8」;

三、保存pom.xml文件,此時咱們應該能夠看到Libraries中的JRE System Library由J2SE-1.5變成了JavaSE-1.8:

注意JaveSE:表示Java標準版本;J2SE:是JaveSE的簡稱,從Java1.6版本以後,都叫作JaveSE-x.y,x.y是版本號。說到這裏,我以爲有必要補習一下JAVA的幾點基礎知識:

  • JRE全稱:Java Runtime Envirnment,顧名思義,是Java的運行環境,相似於微軟的.net FrameWork;而JDK全稱爲:Java SE Development Kit。因此若是不須要作Java程序開發,只須要運行Java程序的,下載安裝JRE就能夠了;若是你安裝了JDK,那麼在JDK的安裝目錄下,也會生成一個jre文件夾(注意:若是是安的是JDK11以後的版本,安裝JDK的時候會同時安裝JRE,可是此時你看不到jre相關的文件夾);
  • JDK1.5和JDK5.0是同個版本,叫法不一樣,之後都稱5.0、6.0等,可能Sun以爲版本混亂之後很差命名因此改了;
  • 原來的J2SE、J2EE、J2ME如今都改爲了:Java SE、Java EE、Java ME。

若是STS仍然報錯,那是由於它找不到JRE1.8,咱們能夠經過執行以下步驟告訴他在哪裏找到Java:
一、單擊Window->Perferences;

二、在左窗格中選擇Jave->Installed JRE,而後單擊Add按鈕;

三、選擇Standard VM,而後點擊Next,將會看到以下圖的對話框,點擊「Directory」按鈕,並瀏覽到JDK主目錄。

四、點擊Finish。若是你已經安裝成功會在JRE列表中看到JDK:

注意:若是沒有安裝JDK,能夠參考博客:Java開發環境的搭建以及使用eclipse從頭一步步建立java項目

最終pom.xml配置文件以下:

<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.example</groupId>
  <artifactId>first-spring-mvc</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
  </build>
  <dependencies>
      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>3.1.0</version>
          <scope>provided</scope>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>5.1.6.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>jstl</artifactId>
          <version>1.2</version>
          <scope>runtime</scope>
      </dependency>
  </dependencies>
  <properties>
      <maven.compiler.source>1.8</maven.compiler.source>
  </properties>
</project>

四 建立index.html文件

要完成示例應用程序,須要建立一個index .html文件並將其保存在src/main/webapp下。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
Welcome!
</body>
</html>

五 更新項目

在運行應用程序以前,還須要更新項目。右鍵單擊應用,而後Maven->Update Project。

以後,應用的目錄結構以下:

六 Tomcat安裝

你須要一個Tomcat或其餘的servlet容器來運行應用程序。若是你沒有安裝Tomcat,請如今安裝,若是安裝過了能夠跳過該步驟。

Tomcat是當今最流行的Servlet/JSP容器,它是免費的、成熟、開源的。

一、下載和配置Tomcat

 首先,從http://tomcat.apache.org網站下載Tomcat最新版本。選用zip或者gz格式的最新二進制發行版本。

下載了文件後,要進行解壓,隨後就能在安裝目錄看到以下幾個目錄:

  • 在bin目錄中,能夠看到啓動和終止Tomcat的程序;
  • webapps目錄很重要,由於默認狀況下在那裏部署應用程序,不過部署路徑是能夠修改的;
  • conf目錄包含了包含了配置文件,包括server.xml和tomcat-user.xml文件;
  • lib目錄包含了編譯Servlet和定製標籤所需的Servlet和JSP API。

 二、啓動和終止Tomat

進入bin文件,雙擊運行startup.bat文件(windows)或startup.sh文件(UNIX/Linux/Mac OS)來啓動Tomcat。

咱們能夠看到應用程序被部署到webapps/ROOT路徑下。

默認狀況下,Tomcat在端口8080運行,所以能夠在瀏覽器中打開以下網址:

http://localhost:8080/

此時默認訪問的是webapps/ROOT/index.jsp文件,默認訪問的文件能夠經過conf\web.xml文件進行修改:

  <!-- ==================== Default Welcome File List ===================== -->
  <!-- When a request URI refers to a directory, the default servlet looks  -->
  <!-- for a "welcome file" within that directory and, if present, to the   -->
  <!-- corresponding resource URI for display.                              -->
  <!-- If no welcome files are present, the default servlet either serves a -->
  <!-- directory listing (see default servlet configuration on how to       -->
  <!-- customize) or returns a 404 status, depending on the value of the    -->
  <!-- listings setting.                                                    -->
  <!--                                                                      -->
  <!-- If you define welcome files in your own application's web.xml        -->
  <!-- deployment descriptor, that list *replaces* the list configured      -->
  <!-- here, so be sure to include any of the default values that you wish  -->
  <!-- to use within your application.                                       -->

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

終止Tomcat時,運行bin目錄下的shutdown.bat文件(windows)或者shutdown.sh文件(UNIX/Linux/Mac OS)。

若是想要修改端口號,請使用編輯器打開conf/server.xml找到以下配置行:

    <!-- A "Connector" represents an endpoint by which requests are received
         and responses are returned. Documentation at :
         Java HTTP Connector: /docs/config/http.html
         Java AJP  Connector: /docs/config/ajp.html
         APR (HTTP/AJP) Connector: /docs/apr.html
         Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
    -->
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

修改port便可,這裏我修改成8008。

三、配置STS

(1)打開Window——> Preferences ——>Runtime Environment窗口,點擊Add:

(2)找到Apache Tomcat v8.5,與咱們下載的Tomcat版本要一致,而後點擊Next按鈕:

(3)點擊Browse按鈕,找到咱們Tomcat的解壓路徑:

點擊Finist按鈕,完成設置。

(4)新建Server。在Servers選項卡中右鍵New——>Server,而後點擊Finist按鈕:

(5)第一次新建Server以後,雙擊Tomcat v8.5 Server at localhost,是能夠修改Server Locations的,將默認選項:Use workspace metadata(dose not modify Tomcat installation)修改成:Use Tomcat installation(takes control of Tomcat installation),此時應用程序是部署到tomcat安裝路徑下的wtpwebapps路徑下的。這樣在STS啓動了tomcat服務器,咱們也可以訪問到tomcat本地管理首頁。不然只能在DOS下使用Tomcat的啓動命令才能訪問Tomcat本地管理首頁。

四、定義上下文

要將Servlet/JSP應用程序部署到Tomcat,須要定義一個Tomcat上下文,在Tomcat中,每個Tomcat上下文都表示一個Web應用程序

定義Tomcat上下文有如下幾種方法:

  • 在Tomcat的conf/Catalina/localhost目錄下建立一個XML文件;
  • 在Tomcat的conf/server.xml文件中添加一個Context元素;

(1)第一種方式

若是決定給每個上下文都建立一個XML文件,那麼這個文件名就很重要,由於上下文路徑是從文件名衍生獲得的。例如,把一個first-spring-mvc.xml文件放在conf/Catalina/localhost目錄下,那麼應用程序的上下文路徑就是commerce,而且能夠利用以下URL訪問該應用的一個資源:

http://localhost:8008/first-spring-mvc/resourceName

first-spring-mvc.xml文件中必須包含一個Context元素,做爲它的根元素。這個元素大多沒有子元素,它是該文件中的惟一元素。例如:

<Context docBase="E:\apache-tomcat-8.5.41\wtpwebapps\first-spring-mvc" reloadable="true" />

這裏惟一必要的屬性是docBase,它用來定義應用程序的位置。reloadable屬性是可選的,可是若是存在,而且將它的值設置爲true,那麼一旦應用程序中的Java類文件或其餘資源有任何增長、減小、更新。Tomcat都會檢測到,那麼Tomcat就會從新加載應用程序,在部署期間,建議將reloadable設置爲true,在生產期間,不建議這麼作。

當把first-spring-mvc應用程序複製到wtpwebapps目錄下,Tomcat就會自動加載應用程序,當刪除這個應用程序時,Tomcat就會自動卸載應用程序。

(2)第二種方式

定義上下文的另外一種方式是在conf/server.xml文件中添加一個Context元素。爲此,要先打開文件,並在Host元素下建立一個Context元素,與前一種方法不一樣的是,此處定義上下文須要給上下文路徑定義path屬性,以下:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log" suffix=".txt"/>
      <Context docBase="E:\apache-tomcat-8.5.41\wtpwebapps\first-spring-mvc" path="/first-spring-mvc" reloadable="true" source="org.eclipse.jst.jee.server:first-spring-mvc"/>
</Host>

通常來講,不建議經過server.xml來管理上下文,由於只有重啓Tomcat後,更新才能生效,不過,若是有許多應用程序須要測試,使用server.xml比較理想,由於能夠在一個文件中同時管理全部的應用程序。

若是使用STS調試程序,我通常選擇server.xml來管理上下文,由於STS自動部署應用程序就是採用的這種方式。

七 運行應用

請按照以下步驟運行程序:

一、右鍵單擊項目並選擇Run As ——> Run on Server,你將看到以下對話框:

二、若是沒有看到咱們以前安裝的Tomcat服務器,那麼咱們選擇Manually define a new server。

三、而後選擇Apache下的Tomcat v8.5 Server,而後點擊Finish按鈕。

STS將啓動Tomcat並運行應用程序,下圖顯示了STS的Web瀏覽器,其中顯示了應用程序的默認頁面:

如今,就能夠按照以前寫的博客來添加動態內容了。

若是要管理Tomat及其上部署的全部應用程序,清打開STS中的服務器視圖:

參考文獻

[1]Java開發環境的搭建以及使用eclipse從頭一步步建立java項目

[2]Spring MVC學習指南

[3]eclipse怎麼設置server location

相關文章
相關標籤/搜索