一、创建工程
1、file→New→Project...
Maven→勾选Create from archetype→maven-archetype-webapp→Next
2、输入GroupId和ArtifactId,Next
3、填写本地的maven环境,这里可以选择自己本地的环境,也可以用idea自带的maven3.0.5。配置相应的配置文件,idea自带的maven是没有配置文件的,需要单独配置的可以在相应的目录中添加setting.xml文件。
由于maven骨架和一些jar需要去maven的仓库下载,所以创建项目的时候速度会非常慢(外国的服务器你懂得),因此我们可以直接访问 http://repo1.maven.org/maven2/archetype-catalog.xml,把这个xml下载下来放到本地的maven目录中,然后在添加一个参数archetypeCatalog=internal就可以了。
4、next 填写项目名称,finish即可。
我们得到的目录如下。
二、新建相应必要目录
A、新建必要结构目录
1、在main目录下新建目录java
2、在src目录下新建目录test
3、在test目录下新建目录java和resources
B、科普下各个目录的作用
1、Sources 一般用于标注类似 src 这种可编译目录。有时候我们不单单项目的 src 目录要可编译,还有其他一些特别的目录也许我们也要作为可编译的目录,就需要对该目录进行此标注。只有 Sources 这种可编译目录才可以新建 Java 类和包,这一点需要牢记。
2、Tests 一般用于标注可编译的单元测试目录。在规范的 maven 项目结构中,顶级目录是 src,maven 的 src 我们是不会设置为 Sources 的,而是在其子目录 main 目录下的 java 目录,我们会设置为 Sources。而单元测试的目录是 src - test - java,这里的 java 目录我们就会设置为 Tests,表示该目录是作为可编译的单元测试目录。一般这个和后面几个我们都是在 maven 项目下进行配置的,但是我这里还是会先说说。从这一点我们也可以看出 IntelliJ IDEA 对 maven 项目的支持是比较彻底的。
3、Resources 一般用于标注资源文件目录。在 maven 项目下,资源目录是单独划分出来的,其目录为:src - main -resources,这里的 resources 目录我们就会设置为 Resources,表示该目录是作为资源目录。资源目录下的文件是会被编译到输出目录下的。
4、Test Resources 一般用于标注单元测试的资源文件目录。在 maven 项目下,单元测试的资源目录是单独划分出来的,其目录为:src - test -resources,这里的 resources 目录我们就会设置为 Test Resources,表示该目录是作为单元测试的资源目录。资源目录下的文件是会被编译到输出目录下的。
5、Excluded 一般用于标注排除目录。被排除的目录不会被 IntelliJ IDEA 创建索引,相当于被 IntelliJ IDEA 废弃,该目录下的代码文件是不具备代码检查和智能提示等常规代码功能。
设置完,我们得到的工程结构如下:
C、新建其他必要目录
1、在目录main/java下,
新建包com.fei.dao ,用于数据访问;
新建包com.fei.pojo ,用于存放实体类;
新建包com.fei.controller ,用于存放控制器;
新建包com.fei.service ,用于编写业务逻辑;
2、在目录main/java下新建spring目录
3、在目录webapp/WEB-INF下新建目录statics,在statics目录下新建css,image,js目录
4、在目录webapp/WEB-INF下新建目录views
三、配置Maven的pom.xml
在项目的根目录下新建pom.xml
4.0.0
com.fei
maven-springmvc
war
1.0-SNAPSHOT
maven-springmvc Maven Webapp
http://maven.apache.org
junit
junit
3.8.1
test
org.slf4j
slf4j-log4j12
1.7.21
javax.servlet
javax.servlet-api
3.1.0
javax.servlet.jsp
jsp-api
2.2
javax.servlet
jstl
1.2
mysql
mysql-connector-java
5.1.35
org.springframework
spring-web
4.3.1.RELEASE
org.springframework
spring-webmvc
4.3.1.RELEASE
org.apache.commons
commons-lang3
3.4
commons-fileupload
commons-fileupload
1.3.1
maven-springmvc
${basedir}/src/main/java
**/*.properties
**/*.xml
${basedir}/src/main/resources
org.eclipse.jetty
jetty-maven-plugin
9.3.10.v20160621
更新完pom.xml文件后,idea应该会自动下载相应的jar包,如果没有自动下载的话,可以点击“Reimport All Maven Projects”按钮进行项目的重新载入。jar下载完成后,所有项目所需的依赖就已经添加完成了。
四、配置web.xml
maven默认生成的web.xml版本是2.3的,所以有些配置节点idea会识别不出来,因此我们重新添加一个3.0的来替代原来的web.xml。
index.jsp
springMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/spring-mvc.xml
1
true
springMVC
/
五、配置contextConfigLocation文件
在web.xml里,我们配置contextConfigLocation文件为spring目录下的spring-mvc.xml
contextConfigLocation
classpath:spring/spring-mvc.xml
首先我们在spring目录下新建spring-mvc.xml
六、配置log4j.properties(可暂时不配置)
日志文件是debug中一个必不可少的工具,因此添加了log4j日志包。配置文件如下。
#配置根Logger 后面是若干个Appender
log4j.rootLogger=DEBUG,A1,R
#log4j.rootLogger=INFO,A1,R
# ConsoleAppender 输出
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
# File 输出 一天一个文件,输出路径可以定制,一般在根路径下
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=log.txt
log4j.appender.R.MaxFileSize=500KB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
七、编写第一个controller
在controller下新建一个“HomeController”。编写如下代码。
package com.fei.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
// 注解标注此类为springmvc的controller,url映射为"/home"
@Controller
@RequestMapping("/home")
public class HomeController {
//添加一个日志器
//private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
//映射一个action
@RequestMapping("/index")
public String index(){
//输出日志文件
//logger.info("the first jsp pages");
//返回一个index.jsp这个视图
return "index";
}
}
八、在views文件夹下建立一个jsp文件,名为“index.jsp”
然后通过路径访问
http://localhost:8080/home/index
九、tomcat的servlet容器的配置
Run→Edit Configuation...,新建【Tomcat Server】→【Local】
1、切到Deployment标签,添加了 Artifact(exploded那个)
2、切回server标签
On Update action选择 Update classes and resources 事件
十、配置maven插件
maven插件的话有tomcat和jetty,两者都是servlet的容器。我这里配置的是jetty。插件已经在pom.xml中配置完成了。
新建maven配置,命名为jetty,Command line选择为jetty:run
十一、点击Run,运行。