環境:
- apache-tomcat-8.5.15
- jdk1.8.0_172
- idea
建立一個maven-webapp項目:create new project
后點擊next
然后next
可以選擇默認自帶的maven,還可以修改配置默認的maven的倉庫地址使加快下載速度,或者本地安裝的apache-maven-3.5.2。
然后next
然后finish.
添加pom依賴
創建好之后的項目目錄如圖所示
打開pom.xml,添加依賴
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
<?xml version= "1.0" encoding= "utf-8" ?> <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.xuan</groupid> <artifactid>springmvc</artifactid> <version> 1.0 -snapshot</version> <packaging>war</packaging> <name>springmvc maven webapp</name> <!-- fixme change it to the project's website --> <url>http: //www.example.com</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> </properties> <dependencies> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version> 4.11 </version> <scope>test</scope> </dependency> <!--spring--> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-core</artifactid> <version> 4.3 . 5 .release</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-web</artifactid> <version> 4.3 . 5 .release</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-webmvc</artifactid> <version> 4.3 . 5 .release</version> </dependency> <!--注解--> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-test</artifactid> <version> 4.2 . 7 .release</version> </dependency> <dependency> <groupid>javax.servlet</groupid> <artifactid>servlet-api</artifactid> <version> 2.3 </version> </dependency> <!-- java.lang.classnotfoundexception: javax.servlet.jsp.jstl.core.config --> <dependency> <groupid>javax.servlet</groupid> <artifactid>jstl</artifactid> <version> 1.2 </version> </dependency> </dependencies> <build> <finalname>springmvc</finalname> <pluginmanagement><!-- lock down plugins versions to avoid using maven defaults (may be moved to parent pom) --> <plugins> <plugin> <artifactid>maven-clean-plugin</artifactid> <version> 3.0 . 0 </version> </plugin> <!-- see http: //maven.apache.org/ref/current/maven-core/default-bindings.html#plugin_bindings_for_war_packaging --> <plugin> <artifactid>maven-resources-plugin</artifactid> <version> 3.0 . 2 </version> </plugin> <plugin> <artifactid>maven-compiler-plugin</artifactid> <version> 3.7 . 0 </version> </plugin> <plugin> <artifactid>maven-surefire-plugin</artifactid> <version> 2.20 . 1 </version> </plugin> <plugin> <artifactid>maven-war-plugin</artifactid> <version> 3.2 . 0 </version> </plugin> <plugin> <artifactid>maven-install-plugin</artifactid> <version> 2.5 . 2 </version> </plugin> <plugin> <artifactid>maven-deploy-plugin</artifactid> <version> 2.8 . 2 </version> </plugin> </plugins> </pluginmanagement> </build> </project> |
建立相應的目錄
項目創建完成后,src-main下建立java目錄后,是無法在該目錄下創建新的包和java類等文件的。在idea中需要對目錄進行標注。
file->project structure:
現在還沒有創建對應的目錄,然后創建目錄后,選擇對應的標注:
- sources 一般用于標注類似 src 這種可編譯目錄。有時候我們不單單項目的 src 目錄要可編譯,還有其他一些特別的目錄也許我們也要作為可編譯的目錄,就需要對該目錄進行此標注。只有 sources 這種可編譯目錄才可以新建 java 類和包,這一點需要牢記。
- tests 一般用于標注可編譯的單元測試目錄。在規范的 maven 項目結構中,頂級目錄是 src,maven 的 src 我們是不會設置為 sources 的,而是在其子目錄 main 目錄下的 java 目錄,我們會設置為 sources。而單元測試的目錄是 src - test - java,這里的 java 目錄我們就會設置為 tests,表示該目錄是作為可編譯的單元測試目錄。一般這個和后面幾個我們都是在 maven 項目下進行配置的,但是我這里還是會先說說。從這一點我們也可以看出 intellij idea 對 maven 項目的支持是比較徹底的。resources 一般用于標注資源文件目錄。在 maven 項目下,資源目錄是單獨劃分出來的,其目錄為:src - main -resources,這里的
- resources 目錄我們就會設置為 resources,表示該目錄是作為資源目錄。資源目錄下的文件是會被編譯到輸出目錄下的。
- test resources 一般用于標注單元測試的資源文件目錄。在 maven 項目下,單元測試的資源目錄是單獨劃分出來的,其目錄為:src - test -resources,這里的 resources 目錄我們就會設置為 test resources,表示該目錄是作為單元測試的資源目錄。資源目錄下的文件是會被編譯到輸出目錄下的。
- excluded 一般用于標注排除目錄。被排除的目錄不會被 intellij idea 創建索引,相當于被 intellij idea 廢棄,該目錄下的代碼文件是不具備代碼檢查和智能提示等常規代碼功能。通過上面的介紹,我們知道對于非 maven 項目我們只要會設置 src 即可。
(引用自http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/eclipse-java-web-project-introduce.html)
標注完后,建立如下的目錄。
配置web.xml
如果用maven自動生成的web.xml,可能讀取不到springmvc返回傳入的參數值,應該要修改web.xml
直接在原來的文件上面修改:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<!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> <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet- class >org.springframework.web.servlet.dispatcherservlet</servlet- class > <load-on-startup> 1 </load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> |
新文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?xml version= "1.0" encoding= "utf-8" ?> <web-app version= "2.4" xmlns= "http://java.sun.com/xml/ns/j2ee" xmlns:xsi= "http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http: //java.sun.com/xml/ns/j2ee http: //java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>archetype created web application</display-name> <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet- class >org.springframework.web.servlet.dispatcherservlet</servlet- class > <load-on-startup> 1 </load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> |
注意要替換原來文件web-app的屬性
啟動時也會默認在/web-inf目錄下查找xxx-servlet.xml作為配置文件,xxx就是dispatcherservlet的名字,也可以手動配置路徑,現在使用默認的方式,
在web-inf目錄下面創建mvc-dispatcher-servlet.xml:
mvc-dispatcher-servlet.xml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?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" xsi:schemalocation="http: //www.springframework.org/schema/beans http: //www.springframework.org/schema/beans/spring-beans.xsd http: //www.springframework.org/schema/context http: //www.springframework.org/schema/context/spring-context.xsd http: //www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "> <context:component-scan base- package = "com.xuan.springmvc.controller" /> <mvc:annotation-driven/> <bean class = "org.springframework.web.servlet.view.internalresourceviewresolver" > <property name= "viewclass" value= "org.springframework.web.servlet.view.jstlview" /> <property name= "prefix" value= "/web-inf/views/" /> <property name= "suffix" value= ".jsp" /> </bean> </beans> |
添加views目錄: 把index.jsp拖到此目錄下面:
編輯代碼路徑/src/main/java,添加com.xuan.springmvc.controller包,增加maincontroller.java:
1
2
3
4
5
6
7
8
9
10
|
package com.xuan.springmvc.controller; import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.requestmapping; @controller public class maincontroller { @requestmapping (value = "/index" ) public string index() { return "index" ; } } |
配置tomcat服務
configure...配置tomcat路徑
綠色+號,把項目加到部署列表
輸入服務器名稱和選擇tomcat版本。
綠色+號,把項目加到部署列表
注意要選擇第二項:
最后啟動tomcat服務運行調試,顯示結果:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://www.cnblogs.com/grasp/p/9045242.html