電腦系統:windows 10
本機java相關的環境 : jdk 1.8 ,tomcat 8.5 ,maven 3.5.4 ,idea2017
下面,打開idea,開始新建項目
打開idea,file-new-project

勾上創建模板的選項,選擇maven-archetype-webapp

點擊next
填寫groupid 和artifactId ,這里說明一下,groupId一般是自己機構的名稱,artifactId可以看作是項目的名稱。填好后點擊next

maven環境的一些選項,如下圖

點擊next
選擇項目名字以及項目存放的位置

選擇好后點擊finish
根據我們選擇的maven-archetype-webapp模板,會生成一下目錄結構

在webapp的同級目錄新建兩個文件夾,java(用來放源代碼),resources(用來放資源配置文件)

如上圖,對着java文件夾點擊鼠標右鍵,將它標記為sources root 即源代碼的根目錄
將resources文件夾標記為resources root
點擊右上角的三角形,如下圖,點擊edit..

添加tomcat 服務器


選擇deployment

點擊ok,點擊右上角的運行,成功運行則會出現hello word 歡迎頁面


現在,一個普通的web環境就已經搭建好了,現在我們要加入 spring,spring mvc配置
將spring的相關依賴添加到pom.xml中,讓maven去遠程倉庫中下載相關jar包
參考依賴如下:
<!--測試-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--日志-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
</dependency>
<!--J2EE-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--mysql驅動包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
</dependency>
<!--springframework-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>com.github.stefanbirkner</groupId>
<artifactId>system-rules</artifactId>
<version>1.16.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.9</version>
</dependency>
<!--其他需要的包-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<!--添加java對象注解轉json支持-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.5</version>
</dependency>
Spring jar包依賴下載好以后,接下來添加spring的配置文件



點擊ok,可以看到多了兩個配置文件

Web.xml中也會增加一些配置

到現在,我們的spring,spring mvc就已經配置好了
測試一下 dispatcher servlet轉發請求
增加TestController類,和一個test.jsp文件,目錄結構如圖

dispatcher-servlet.xml 配置如下
<?xmlversion="1.0"encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!--使用注解的包,包括子集--> <context:component-scanbase-package="com.sicau.controller"/> <!--跨域訪問,不需要的可以不加--> <mvc:cors> <mvc:mappingpath="/**/**" allowed-origins="*" allowed-methods="POST,GET,OPTIONS,DELETE,PUT" allowed-headers="Content-Type,Access-Control-Allow-Headers,Authorization,X-Requested-With" allow-credentials="true"/> </mvc:cors> <!--默認注解支持--> <mvc:annotation-driven> <mvc:message-converters> <beanclass="org.springframework.http.converter.StringHttpMessageConverter"> <propertyname="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <beanclass="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <propertyname="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <value>text/plain;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven> <!--結果視圖解析器--> <beanid="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <propertyname="prefix"value="/"/> <propertyname="suffix"value=".jsp"/> </bean> </beans>
Test.jsp中的代碼如圖

運行程序,瀏覽器輸入http://localhost:8080/toTest.form,成功跳轉到test頁面

控制台打印出“進入toTest方法”字樣

由於web.xml自動生成的是servlet 2.3版本的配置,而我們項目中需要用servlet 3.0的一些東西。所以需要改一下web.xml servlet版本

更改的地方代碼如下:
<web-appversion="3.0"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
檢查是否生效
返回test頁面的同時,返回一個數據,name

在test.jsp頁面中 ,使用el表達式訪問name數據

el表達式需要servlet 3.0支持,所以可以用來測試
運行服務器,瀏覽器訪問如下圖,可以正確顯示name的數據則沒有問題

