第一步:Maven项目的创建【手动创建Maven项目而没有使用Maven的自动构建web项目】
使用Maven模板自动构建web项目图如下,这里不细讲:
手动创建Maven Web项目流程如下:
1.1 File->New->Project 出现下图:
1.2 然后点击next,出现下图
由GroupId、ArtifactId、Version三个元素直接确定了唯一的一个Maven模块
填写相应的GroupId、ArtifactId
注意,上面的三个属性会出现在Maven的pom.xml文件中
1.3 点击next,出现如下所示的图片
这里的Project name(上面)和Module name(下面)根据上一步的ArtifactId默认生成,这里自己可以随意修改的。这里的项目名称和模块名称是一样的,也可以不一样。
1.4 点击finish,出现如下图所示界面:
中间显示的是pom.xml文件,可以看见之前所选择的GroupId、ArtifactId和Version都出现在pom.xml文件中,右下角这个小标签提示Maven projects need to be imported(Maven项目需要导入),可以点击下面的Import Changes选项,导入所发生的变化,以后的Maven项目的pom.xml文件发生变化时,右下角都会提醒,自己可以选择性的导入相应的变化。
第二步:构建基于Maven和SpringMVC的Web项目目录结构
2.1 在上面点击finish后的Web项目目录结构如下图所示:
1.2 现在对上面的Web项目目录结构做相应的更改,得到如下所示的项目目录结构
第三步:一些必须的准备工作
3.1 File->Project Stricture设置(在整个软件界面的上方也能看到Project Structure前面的图标,点击进去,同样设置),如下图:
3.2 先进行Project的设置,这里最重要的就是Project SDK的设置,其他的默认就可以了。下面的Project compiler output指示了项目编译后,生成的相应文件都放在哪!所以编译后整个目录结构是会多一个out文件夹的。
3.2 现在进行Modules的设置
3.2.1 可以看到Modules有三个重要标签,Source标签已经显示出来了,这里不用设置,默认就好,如下如所示:
3.2.2 再来看Path标签,重要的Compile output标签,选着第二项,可以发现,项目编译后的classes文件都放在target目录下,所以后面的目录结构也新增了一个target文件夹。
3.2.3 设置Dependecies标签,这里很重要
(1) 导入依赖JAR包,点击右边的+,然后选择第一个选项Jars or Directories
方框1:里面的jar包路径,选择自己jar包所在的位置就好
方框2:选择相应的jar包,然后点击OK导入
导入后的结果如下所示:
这里的导入的Jar包是作为外部库(External Librarise)存在的,可以在Web项目目录结构中看到:
(2) 这里先新增一个web结构,开发web项目必须要添加此配置,主要是对Web.xml和Web根目录做一个配置,否则最后项目运行时,会出现404错误
新增前:
新增后:
新增后以及配置前:
这里要根据你实际的Web项目目录来进行路径设置:
实际Web项目目录结构如下:
配置后的结果如下:
路径设置好后:
会发现相应的图标发生了变化,主要是web.xml和文件夹webapp:
配置前:
配置后:
到目前为止,Modules部分就全都配置好了,不过可以看到上面的图里面有一个警告:Web Facet resources are not included in an artifact,这里我们在Artifact设置部分(下面)来解决;
3.3 Artifact部分设置: 这里设置的主要是看最后我们的项目是以怎么一种形式发布,web项目的发布一般选择war包的形式进行发布,不需要直接发布源代码。
配置前,可以发现中间部分什么都没有:
点击+,进行配置:
选择From Modules:
点击OK:
到此为止,Project Structure就全部设置好了
第四步,代码、配置文件整理
4.1 控制器Controller相关代码,这里是基于XML配置的方式,控制器的实现需要实现Controller接口
1 package com.wangfei.firstspringmvc.controller; 2 3 4 import org.springframework.web.servlet.ModelAndView; 5 import org.springframework.web.servlet.mvc.Controller; 6 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 10 public class IndexController implements Controller{ 11 12 public IndexController(){ 13 14 } 15 16 17 public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { 18 19 ModelAndView mv = new ModelAndView("index.jsp"); 20 mv.addObject("message","Hello Spring MVC"); 21 22 return mv; 23 } 24 }