软件工具准备:
(1) JDK: jdk-8u92-windows-i586.exe (jdk1.8.0_92)
(2) Eclipse:eclipse-jee-luna-SR2-win32.zip
(3) Tomcat: apache-tomcat-7.0.70-windows-x86.zip
(4) Spring-framework: spring-framework-4.3.2.RELEASE-dist.zip
(5)依赖jar包:
1) Spring4.3.2下的jar包
2) commons-logging-1.2.jar;jstl-1.1.2.jar;standard-1.1.2.jar三个依赖jar包
说明:
1)JDK官网下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2)Eclipse官网下载地址:
http://www.eclipse.org/downloads/eclipse-packages/
3)Tomcat官网下载地址:
http://tomcat.apache.org/
4)Spring-framework官网下载地址:
http://projects.spring.io/spring-framework/
5)commons-logging.jar官方下载地址:
http://commons.apache.org/proper/commons-logging/download_logging.cgi
6)jstl-1.1.2.jar和standard-1.1.2.jar官方下载地址:
http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
2 项目开发过程
2.1 在Eclipse中创建一个web项目
一直点击“Next”按钮,直到出现下图:
将上述红色框中选中,就会在WebContent下直接生成一个web.xml的配置文件,否则就需要我们手动新建一个web.xml文件。最后点击“Finish”按钮
说明:
至此创建了一个动态的web工程,取名为springMVCDemo;
上图紫色框中是我本机配置的Tomcat服务器(可根据自己配置的来选择)
至此,我们看到新建好的动态web工程项目框架如下所示:
2.2 添加依赖jar包
(1)解压缩spring-framework-4.3.2.RELEASE-dist.zip,将\ libs目录下的所有jar包拷贝到项目的\WEB-INF\lib下
(2) commons-logging-1.2.jar;jstl-1.1.2.jar;standard-1.1.2.jar三个依赖jar包也拷贝到项目的\WEB-INF\lib下
2.3 配置WEB-INF目录下的web.xml文件
在web.xml文件中,我们主要配置的是前端控制器DispatcherServlet,配置如下:
注意:
(1) 紫色框为默认生成的,我们只需要配置红色框中的内容
(2) 在红色框中,我们声明了一个Servlet(即DispatcherServlet前端控制器)来接收所有类型的用户请求
(3) 1:表示启动容器时初始化该Servlet;
(4) < url-pattern >.do:表示哪些请求交给Spring Web MVC处理,“.do”是用来定义默认Servlet映射的。也可以如“*.html”表示拦截所有以html为扩展名的请求。
至此,用户请求已交给Spring Web MVC框架来处理,因此我们需要配置Spring的配置文件,默认的DispatcherServlet会加载WEB-INF/ Servlet_Name-servlet.xml配置文件。对应本例即为WEB-INF/springMVCDemo-servlet.xml。
2.4 配置WEB-INF目录下的springMVCDemo-servlet.xml文件
在这里,我们看到项目的WEB-INF目录下没有springMVCDemo.xml文件,这个是需要我们自己创建的。
说明:
上图中的蓝色框是默认生成的,即在项目springMVCDemo的WebContent目录下的WEB-INF目录下新建了一个名为springMVCDemo-servlet.xml文件。
注意:
这里的springMVCDemo-servlet.xml前面部分(springMVCDemo)一定要与web.xml文件中标签对springMVCDemo一致。
新建完springMVCDemo-servlet.xml文件后,我们对其配置如下:
说明:
(1) InternalResourceViewResolver:用于支持Servlet、JSP视图解析
(2) prefix和suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),比如传过来的逻辑视图名为hello,则该jsp视图页面应该存放在“/WEB-INF/jsp/hello.jsp”
(3) 视图解析器用于把在控制器中handler的结构解析为实际的物理视图,这个要配合controller类来解析,详见下面。
2.5 在src目录下新建一个Controller
首先,在src目录下新建一个package,取名为springMVCDemo.web.controller
接着,在springMVCDemo.web.controller下新建一个HelloWorldController类,如下:
说明:
上述紫色框中是默认生成的,红色框中是我们新建的java类的名称
HelloWorldController.java中的实现方法如下:
注意:
当我们写下如上代码时,我们发现有提示错误如下:
(1)The import org.springframework cannot be resolved
这是我遇到的一个最大的问题,为什么我已经导入了spring-framework的jar包,可是为什么还会报错呢???
通过不断的找度娘,终于找到了问题的答案。那就是spring-framework的jar包时一开始就导入了,而HelloWorldController是后来创建的,两者没有建立关联,解决方法是,重启一下Eclipse软件。
(2)The method handleRequest(HttpServletRequest, HttpServletResponse) of type HelloWordController must override or implement a supertype method
解决方法:让HelloWorldCOntroller继承自Controller
最终HelloWorldController.java的实现如下:
2.6 回到springMVCDemo-servlet.xml文件
当我们实现了Controller配置之后,我们需要将其添加到springMVCDemo-servlet.xml文件中,实现如下:
2.7 在WebContent目录下新建一个index.jsp文件
index.jsp实现如下:
2.8 部署到Tomcat服务器并运行
此时,我们看到项目下方的Servers中服务器Tomcat v7.0已经变味了启动状态(Started, Synchronized),同时我们的项目springMVCDemo也已经部署到了Tomcat服务器中(红色标记处),并且是[Synchronized]状态了。
同时Eclipse的显示框浏览器中,显示出了我们想要看到的欢迎字样,如下:
如果,此时我们在浏览器中输入URL:http://localhost:8080/springMVCDemo/, 则也会出现上述欢迎界面,如下: