在開始以前,須要說明一下遇到的一些問題,我相信這些問題是做爲一個開發者必須明白的,但遺憾的是,我沒有在國內網站中找到這些問題的答案。對於一個初學者,任何一點小問題都會致使調試失敗,而對於這種高度封裝,邏輯又很奇特的框架來講,第一個HelloWord就會更加艱難,因此我努力在這篇文章中講清楚,讓更多的入門者少走彎路。html
1.我應該選擇Eclipse仍是IDEA做爲開發工具?java
2.Maven的默認設置下載依賴時特別慢,如何更改和配置Maven的下載源?mysql
3.Maven在開發中扮演什麼樣的角色?web
4.Spring,Spring-MVC,MyBatis分別是在哪些文件中配置的?spring
5.Spring,Spring-MVC,MyBatis的版本如何選擇?sql
6.XML文件開頭的這些寫法是固定的嗎?是什麼意思?數據庫
7.哪些文件的文件名是能夠自定義的?哪些文件名是不能更改(即框架默認須要使用的)?apache
好了,這些問題是我在入門的時候遇到的一些很坑的問題,但願這篇文章或多或少可以幫您減小一些難度。api
本文將展現本項目中全部的相關文本和代碼,若是您按照本文的步驟沒有成功,我還準備了打包的.war文件,供您下載到本地觀察總結。您只須要將此.war文件下載到本地,使用eclipse選項中的File->Import功能,選擇.war文件導入到eclipse中即可以直接運行調試。下載地址:https://pan.baidu.com/s/1abDYj17wb44OJJxpA6iLWg 提取碼:8dmz ,後續補上CSDN的下載連接。瀏覽器
1.開發工具的選擇:Eclipse。
請注意,Eclipse與IEDA都是很好的開發工具,我甚至認爲IDEA能爲咱們作的更多,但正是因爲IDEA爲咱們作了更多,使咱們不容易弄清楚其中的一些問題。作個不太恰當的比喻,使用Eclipse,就像是用記事本寫java代碼同樣,雖然稍微繁雜,可是更有助於咱們對於java的理解(若是您只會用eclipse寫Java代碼,您極可能不知道使用命令行對一個.java文件編譯成.class的過程),伴隨着咱們學習的深刻,IDEA可能會讓咱們更有效率。
注意:Eclipse有幾個類型的版本,請選擇可以開發Web的版本,因爲我如今網絡環境的關係,沒法訪問Eclipse的官網去截圖選擇哪個,可是隻要是有File->New->Dynamic Web Project這個選項,就是符合條件的Eclipse。
2.配置Maven。
Eclipse是自帶Maven的,可是因爲國外源下載速度太慢,咱們須要更換下載源,除非您的網絡很是優秀,不然您須要進行這一步的配置。
爲了讓你們更清楚Maven在項目中的做用和地位,咱們選擇手動下載一個新的Maven。地址:https://maven.apache.org/download.cgi
選擇下載紅框中的那個文件(版本不一樣不重要,可是要選擇Binary Zip archive),而後在本地的磁盤中選擇一個位置解壓,如我選擇解壓到D://apache-maven-3.6.3目錄,解壓後目錄以下:
新建一個文件夾responsity(這個文件夾是用來存放下載的依賴的jar包的,固然到時候也能夠選擇別的文件夾來存放,隨你意咯),找到conf目錄下的settings.xml用記事本或者其餘的文本編輯器打開:
找到localRepository標籤取消註釋(若是沒有就新增這一行)並設置成這樣(這裏的目錄就是存放要下載的依賴的目錄):
而後打開Eclipse,在Window->Preferences搜索Maven,選擇Installations,點擊Add:
點擊Directory:
選擇剛纔解壓的Maven的目錄:D:\apache-maven-3.6.3
點擊Finish。
到此爲止,Maven的設置就已經完成了。
3、開始項目的搭建。
開始以前,先展現一下項目全部文件(目錄)以及結構:
展開後是這樣:
其中target目錄,test目錄不須要管,有沒有無所謂。controller目錄及目錄下全部文件,dao目錄及目錄下全部文件,webapp下的pages目錄及目錄下全部文件,database.properties,log4j.properties,spring.xml是本身新建的,其餘部分是項目自動生成的。
1.建立項目:
選擇File->New->Maven Project,點擊Next:
選擇maven-archetype-webapp,點擊Next:
填入Group Id和Artifact Id,其中Group Id是組織名稱,Artifact Id是項目名稱(都可以自定義),點擊Finish:
2.打開pom.xml:
在<project></project>標籤下添加:
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> <!-- 各依賴的版本 --> <junit.version>3.8.1</junit.version> <lombok.version>1.18.2</lombok.version> <jetty.version>9.4.12.v20180830</jetty.version> <spring.version>5.0.9.RELEASE</spring.version> <JavaLib.version>1.0.4.RELEASE</JavaLib.version> <slf4j.version>1.8.0-beta2</slf4j.version> <log4j.version>2.13.0</log4j.version> <mybatis.version>3.4.6</mybatis.version> <mybatis-spring.version>2.0.3</mybatis-spring.version> <mysql-connector.version>8.0.18</mysql-connector.version> </properties>
在<dependencies></dependencies>下添加(若是有junit的話,覆蓋掉或者保留原來的均可以):
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j.version}</version> </dependency> <!-- MyBatis 依賴 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>${mybatis-spring.version}</version> </dependency> <!-- MySQL數據庫的JDBC驅動 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql-connector.version}</version> </dependency> <!-- spring 核心依賴 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <!-- spring ioc依賴 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <!-- spring aop依賴 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <!-- spring 擴展依賴 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!-- spring web相關依賴 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!-- spring test相關依賴 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <!-- spring依賴 end-->
完整的pom.xml文件以下(其中文件開頭的「4.0.0」表明相關的版本,這個版本號請以您本地項目下生成的爲準,不然可能會報錯):
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>xiaoxiang</groupId> <artifactId>test</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>test Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> <!-- 各依賴的版本 --> <junit.version>3.8.1</junit.version> <lombok.version>1.18.2</lombok.version> <jetty.version>9.4.12.v20180830</jetty.version> <spring.version>5.0.9.RELEASE</spring.version> <JavaLib.version>1.0.4.RELEASE</JavaLib.version> <slf4j.version>1.8.0-beta2</slf4j.version> <log4j.version>2.13.0</log4j.version> <mybatis.version>3.4.6</mybatis.version> <mybatis-spring.version>2.0.3</mybatis-spring.version> <mysql-connector.version>8.0.18</mysql-connector.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j.version}</version> </dependency> <!-- MyBatis 依賴 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>${mybatis-spring.version}</version> </dependency> <!-- MySQL數據庫的JDBC驅動 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql-connector.version}</version> </dependency> <!-- spring 核心依賴 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <!-- spring ioc依賴 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <!-- spring aop依賴 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <!-- spring 擴展依賴 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!-- spring web相關依賴 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!-- spring test相關依賴 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <!-- spring依賴 end--> </dependencies> <build> <finalName>test</finalName> </build> </project>
3.配置Spring,Spring-MVC
打開src/main/webapp/WEB-INF/web.xml文件:
在<display-name></display-name>標籤後添加內容:
<!-- 統一編碼爲UTF-8 不然在返回中文字符串時可能會亂碼 --> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 統一編碼問題結束 --> <!-- 接入Spring-MVC和Spring,設置後全部訪問的請求會被Spring-MVC攔截處理 --> <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!-- 這裏的classpath:spring.xml對應於項目目錄下的src/resources/spring.xml --> <param-value>classpath:spring.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <!-- url-pattern中的/表示匹配全部的請求,也能夠設置攔截特定的請求給Spring處理 --> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 配置Spring-MVC與Spring結束 -->
完整的web.xml文件內容以下(其中的「2.3」版本號請保持您本地自動生成的版本號爲準,不建議覆蓋掉文件開頭部分,不然可能會報錯)
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <!-- 統一編碼爲UTF-8 不然在返回中文字符串時可能會亂碼 --> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 統一編碼問題結束 --> <!-- 接入Spring-MVC和Spring,設置後全部訪問的請求會被Spring-MVC攔截處理 --> <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!-- 這裏的classpath:spring.xml對應於項目目錄下的src/resources/spring.xml --> <param-value>classpath:spring.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <!-- url-pattern中的/表示匹配全部的請求,也能夠設置攔截特定的請求給Spring處理 --> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 配置Spring-MVC與Spring結束 --> <welcome-file-list> <welcome-file>/</welcome-file> </welcome-file-list> </web-app>
4.配置MyBatis
在src/main/resources目錄下新建spring.xml(該文件名能夠自定義,可是須要在web.xml中對應修改綁定的文件名,web.xml中相關位置有註釋),向其中寫入內容(不管您本地spring,mybatis使用的哪一個版本,該文件中的內容都無需爲版本問題而變更。該xml綁定了一些項目中的文件,具體請閱讀相關位置的註釋):
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- 注意這裏的寫法,無論spring是什麼版本,這裏都這麼些都行 --> <!-- spring與Spring-MVC的相關設置開始 --> <!-- 開啓Spring-MVC註解模式,便可以在Java代碼中使用@GetMapping等內容 --> <mvc:annotation-driven > <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes" value="text/html;charset=UTF-8"/> </bean> </mvc:message-converters> </mvc:annotation-driven> <!--向容器自動注入配置--> <context:annotation-config /> <!--將靜態資源交由默認的servlet處理--> <mvc:default-servlet-handler /> <!-- 設置相關Bean代碼的位置,這裏的controller對應於項目目錄src/main/java/controller,能夠綁定自定義包名,spring會自動掃描該目錄下全部的.java文件 --> <context:component-scan base-package="controller" /> <!-- 配置視圖解析器,如如今的配置意思爲:若是dao包下的java返回了字符串index,實際上在瀏覽器中會跳轉到/pages/index.jsp文件 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"> <!-- 前綴 --> <property name="prefix" value="/pages/" /> <!-- 後綴 --> <property name="suffix" value=".jsp" /> </bean> <!-- spring與Spring-MVC的相關設置結束 --> <!-- MyBatis設置開始 --> <!-- 引入數據庫屬性文件,其中的classpath:database.properties對應於項目目錄src/main/resources/database.properties文件 --> <context:property-placeholder location="classpath:database.properties" /> <!--配置數據源 :這裏使用的是jdbc數據源,也能夠選擇其餘數據源,可是寫法有點不太同樣,具體百度就行,這裏的${driver}對應於database.properties裏的driver=com.mysql.cj.jdbc.Driver,其餘變量同理 --> <bean id="jdbcDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${user}" /> <property name="password" value="${password}" /> </bean> <!-- 配置sqlSessionFactoryBean 這個Bean是產生數據庫鏈接的Bean,其中的jdbcDataSource名稱對應於上方的 <bean id='jdbcDataSource'....--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 數據源 --> <property name="dataSource" ref="jdbcDataSource"></property> <!-- 別名 <property name="typeAliasesPackage" value="com.zr.activiti.entity"></property>--> <!-- 掃描src/main/resources/mapper目錄下的全部xml文件 --> <property name="mapperLocations" value="classpath:mapper/*.xml" /> </bean> <!-- 自動掃描對象關係映射 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!--指定會話工廠,若是當前上下文中只定義了一個則該屬性可省去 --> <!-- <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> --> <!-- 設置dao包路徑,dao對應於項目目錄src/main/java/dao,你可使用分號或逗號 做爲分隔符設置多於一個的包路徑 --> <property name="basePackage" value="dao" /> </bean> <!--聲明式事務管理 --> <!--定義事物管理器,由spring管理事務 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="jdbcDataSource"></property> </bean> <!--支持註解驅動的事務管理,指定事務管理器 --> <tx:annotation-driven transaction-manager="transactionManager"/> <!-- MyBatis設置結束 --> </beans>
5.數據庫源的配置與log4j的配置
在src/main/resources目錄下新建database.properties,寫入內容(本文件無其餘任何內容):
user=xiaoxiang password=123456 driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/tank?useUnicode=true&useSSL=true&characterEncoding=utf-8&serverTimezone=GMT
在src/main/resources目錄下新建log4j.properties,寫入內容(本文件無其餘任何內容):
# +======================================================================+# log4j.rootLogger=${log4j.log.level},${log4j.log.target} log4j.addivity.org.apache=true # +======================================================================+# # | [target] - Console # +----------------------------------------------------------------------+# log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold=${log4j.log.level} log4j.appender.CONSOLE.Encoding=${log4j.log.encoding} log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.layout=${log4j.log.layout} log4j.appender.CONSOLE.layout.ConversionPattern=${log4j.log.layout.pattern} # +======================================================================+# # | [target] - FILE # +----------------------------------------------------------------------+# log4j.appender.FILE=org.apache.log4j.RollingFileAppender log4j.appender.FILE.Threshold=${log4j.log.level} log4j.appender.FILE.Encoding=${log4j.log.encoding} log4j.appender.FILE.File=${log4j.log.dir}/runtime.log log4j.appender.FILE.Append=true log4j.appender.FILE.MaxFileSize=2048KB log4j.appender.FILE.MaxBackupIndex=10 log4j.appender.FILE.layout=${log4j.log.layout} log4j.appender.FILE.layout.ConversionPattern=${log4j.log.layout.pattern} # +======================================================================+# # | log4j config # +----------------------------------------------------------------------+# log4j.log.dir=logs/ #log4j.log.level=ALL,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF log4j.log.level=DEBUG #log4j.log.target=CONSOLE,FILE,DATABASE,EMAIL,SOCKET log4j.log.target=CONSOLE,FILE log4j.log.encoding=UTF-8 log4j.log.layout=org.apache.log4j.PatternLayout log4j.log.layout.pattern=[%d %r] [%-5p] [%t] [%l] [%m]%n # +======================================================================+#
6.建立相關測試用的類和XML,JSP(或者html)
在src/main/resources目錄下新建目錄mapper(該目錄名稱能夠自定義,可是須要在spring.xml中對應修改綁定的名稱,spring.xml中相關位置有註釋),而後新建文件test.xml(該文件名稱能夠自定義,自定義後不須要進行任何其餘操做)。該文件內容以下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- namespace:指定本xml對應的java類,其中的dao.TestDao對應於項目文件src/main/java/dao/TestDao.java --> <mapper namespace="dao.TestDao"> <!-- 這裏的selectCount對應於TestDao類中selectCount函數,輸入有參數的狀況另外百度便可,下面有一些示例 --> <select id="selectCount" resultType="int"> select count(*) from damage; </select> <!-- <select id="selectList" resultType="user"> select * from smbms_user </select> --> <!-- <select id="selectByUserNameAndRole" parameterType="User" resultType="user"> select * from smbms_user where smbms_user.userName like '%${userName}%' and smbms_user.userRole = #{userRole} </select> --> <!-- mapper 傳入參數 --> <!-- <select id="selectByUserNameAndRoleMap" parameterType="map" resultType="user"> select * from smbms_user where smbms_user.userName like '%${uname}%' and smbms_user.userRole = #{urole} </select> <select id="selectByPrimary" parameterType="long" resultType="user"> select * from smbms_user where id=#{id}; </select> --> </mapper>
在src/main/java目錄下新建目錄controller(該包名能夠自定義,可是須要在spring.xml中對應修改綁定的相關名稱,spring.xml中相關位置有註釋),而後新建類Control.java,(該類名能夠自定義,更改後無需其餘任何修改)文件內容以下:
package controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; import dao.TestDao; @Controller public class Control { @Autowired private TestDao testDao; @GetMapping("/") public String index() { System.out.println("終於到了這裏了,結果是:"+testDao.selectCount()); return "index"; } @GetMapping("/abc") public String abc() { System.out.println("終於到了這裏了"); return "index"; } @GetMapping("/abcd") @ResponseBody public String abcd() { return "返回了一個字符串"; } }
須要解釋一下的是:
在瀏覽器中輸入localhost:8080/test時,會使用index函數處理;
輸入localhost:8080/test/abc時,會使用abc函數處理;
同理,輸入localhost:8080/test/abcd時,會使用abcd函數處理。
這樣說您應該能夠明白@GetMapping起到的做用了。
最後,咱們須要在src/main/webapp目錄下新建pages文件夾(該文件夾名稱能夠自定義,可是須要對應更改web.xml中綁定的名稱,web.xml中對應位置有註釋),而後新建文件index.jsp(該文件名能夠自定義,可是須要對應更改Control.java中index函數的renturn值,index.jsp內容以下:
<html> <body> <h2>Hello World!</h2> </body> </html>
到目前爲止,項目下全部文件都已經配置完畢,能夠啓動測試了,項目啓動後在瀏覽器中輸入localhost:8080/test/,觀察瀏覽器返回值和控制檯,若是出現如下結果,說明您成功了!
文章最後,咱們須要回顧一下項目的運行邏輯和數據傳遞過程。我也是剛剛搭建成功,因此對於其中遇到的一些問題印象還比較深入,同時伴隨着的是沒有對該框架一個獨到並且客觀的認識,因此一下內容僅僅是我目前的一些見解,可能有些錯誤,望讀者自行甄辨,以避免誤人子弟。