环境:
- 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