Java框架之SpringMVC
Spring MVC系列教材 (一)- 教程
必读: 基于框架的程序要成功运行,对于JAR包的版本,配置文件的正确性有着苛刻的要求,任何一个地方出错了,都会导致框架程序运行失败。 如果你是第一次学习本框架,务必严格按照教程的指导,完全模仿操作,直到成功看到运行效果。 第一次成功之后,信心,思路都会有较好的铺垫,然后再根据自己的疑惑,在“成功”的代码上做原本想做的改动和调整,这样可以大大节约学习的时间,提高效率,切勿一来就擅自改动,给自己的学习制造障碍
步骤1:先运行,看到效果,再学习
步骤2:模仿和排错
步骤3:创建项目springmvc
步骤4:导入jar包
步骤5:web.xml
步骤6:创建springmvc-servlet.xml
步骤7:控制类 IndexController
步骤8:准备index.jsp
步骤9:部署在tomcat中,重启测试
步骤10:原理图
步骤11:完整的项目下载
步骤12:练习
步骤2:模仿和排错
步骤3:创建项目springmvc
步骤4:导入jar包
步骤5:web.xml
步骤6:创建springmvc-servlet.xml
步骤7:控制类 IndexController
步骤8:准备index.jsp
步骤9:部署在tomcat中,重启测试
步骤10:原理图
步骤11:完整的项目下载
步骤12:练习
步骤 1 : 先运行,看到效果,再学习
Spring MVC需要做不少步骤,任何一步做漏了,做错了,都有可能失败,这样会影响学习的信心,并且误以为本教程是走不通的。
所以先下载下载区(https://how2j.cn/p/5329)的可运行项目 springmvc.rar,解压后导入到eclipse中,启动Tomcat,观察是否正常运行。确定可以运行,确定教程是可以跑得起来的,再学习下面的内容。
导入到Eclipse中并运行的办法请参考:导入动态Web项目到Eclipse中
部署成功之后,测试地址,应该看到如图所示的效果
注: 这是动态项目格式,不支持独立Tomcat方式部署
所以先下载下载区(https://how2j.cn/p/5329)的可运行项目 springmvc.rar,解压后导入到eclipse中,启动Tomcat,观察是否正常运行。确定可以运行,确定教程是可以跑得起来的,再学习下面的内容。
导入到Eclipse中并运行的办法请参考:导入动态Web项目到Eclipse中
部署成功之后,测试地址,应该看到如图所示的效果
http: //127.0.0.1:8080/springmvc/index |
注: 这是动态项目格式,不支持独立Tomcat方式部署
步骤 2 : 模仿和排错
在确保可运行项目能够正确无误地运行之后,再严格照着教程的步骤,对代码模仿一遍。
模仿过程难免代码有出入,导致无法得到期望的运行结果,此时此刻通过比较正确答案 ( 可运行项目 ) 和自己的代码,来定位问题所在。
采用这种方式,学习有效果,排错有效率,可以较为明显地提升学习速度,跨过学习路上的各个槛。
推荐使用diffmerge软件,进行文件夹比较。把你自己做的项目文件夹,和我的可运行项目文件夹进行比较。
这个软件很牛逼的,可以知道文件夹里哪两个文件不对,并且很明显地标记出来
这里提供了绿色安装和使用教程:diffmerge 下载和使用教程
模仿过程难免代码有出入,导致无法得到期望的运行结果,此时此刻通过比较正确答案 ( 可运行项目 ) 和自己的代码,来定位问题所在。
采用这种方式,学习有效果,排错有效率,可以较为明显地提升学习速度,跨过学习路上的各个槛。
推荐使用diffmerge软件,进行文件夹比较。把你自己做的项目文件夹,和我的可运行项目文件夹进行比较。
这个软件很牛逼的,可以知道文件夹里哪两个文件不对,并且很明显地标记出来
这里提供了绿色安装和使用教程:diffmerge 下载和使用教程
步骤 3 : 创建项目springmvc
在eclipse中新建项目springmvc,使用dynamic web project的方式。 不熟悉这种方式的同学,请参考 使用Dynamic Web Project的方式开发J2EE应用
步骤 4 : 导入jar包
下载下载区(点击进入)的lib.rar, 解压后复制到 e:/project/springmvc/WebContent/WEB-INF/lib目录下
步骤 5 : web.xml
在WEB-INF目录下创建 web.xml
配置Spring MVC的入口 DispatcherServlet,把所有的请求都提交到该Servlet
注意:<servlet-name>springmvc</servlet-name>
springmvc这个名字在下一步会用到
配置Spring MVC的入口 DispatcherServlet,把所有的请求都提交到该Servlet
注意:<servlet-name>springmvc</servlet-name>
springmvc这个名字在下一步会用到
<? 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"> < servlet > < servlet-name >springmvc</ servlet-name > < servlet-class > org.springframework.web.servlet.DispatcherServlet </ servlet-class > < load-on-startup >1</ load-on-startup > </ servlet > < servlet-mapping > < servlet-name >springmvc</ servlet-name > < url-pattern >/</ url-pattern > </ servlet-mapping > </ web-app > |
步骤 6 : 创建springmvc-servlet.xml
在WEB-INF目录下创建 springmvc-servlet.xml
springmvc-servlet.xml 与上一步中的
springmvc对应
这是Spring MVC的 映射配置文件
表示访问路径/index会交给id=indexController的bean处理
id=indexController的bean配置为类:IndexController
springmvc-servlet.xml 与上一步中的
<servlet-name>springmvc</servlet-name> |
springmvc对应
这是Spring MVC的 映射配置文件
表示访问路径/index会交给id=indexController的bean处理
id=indexController的bean配置为类:IndexController
<? xml version = "1.0" encoding = "UTF-8" ?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> < beans > < bean id = "simpleUrlHandlerMapping" class = "org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" > < property name = "mappings" > < props > < prop key = "/index" >indexController</ prop > </ props > </ property > </ bean > < bean id = "indexController" class = "controller.IndexController" ></ bean > </ beans > |
步骤 7 : 控制类 IndexController
控制类 IndexController实现接口Controller ,提供方法handleRequest处理请求
SpringMVC通过 ModelAndView 对象把模型和视图结合在一起
表示视图是index.jsp
模型数据是 message,内容是 “Hello Spring MVC”
SpringMVC通过 ModelAndView 对象把模型和视图结合在一起
ModelAndView mav = new ModelAndView( "index.jsp" ); mav.addObject( "message" , "Hello Spring MVC" ); |
表示视图是index.jsp
模型数据是 message,内容是 “Hello Spring MVC”
package controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; public class IndexController implements Controller { public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav = new ModelAndView( "index.jsp" ); mav.addObject( "message" , "Hello Spring MVC" ); return mav; } } |
步骤 8 : 准备index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false"%> < h1 >${message}</ h1 > |
步骤 9 : 部署在tomcat中,重启测试
部署在Tomcat中,重启tomcat,然后访问地址,观察效果
部署办法请参考 通过Eclipse启动Tomcat-Run On Server
http: //127.0.0.1:8080/springmvc/index |
部署办法请参考 通过Eclipse启动Tomcat-Run On Server
步骤 10 : 原理图
1. 用户访问 /index
2. 根据web.xml中的配置 所有的访问都会经过DispatcherServlet
3. 根据 根据配置文件springmvc-servlet.xml ,访问路径/index
会进入IndexController类
4. 在IndexController中指定跳转到页面index.jsp,并传递message数据
5. 在index.jsp中显示message信息
2. 根据web.xml中的配置 所有的访问都会经过DispatcherServlet
3. 根据 根据配置文件springmvc-servlet.xml ,访问路径/index
会进入IndexController类
4. 在IndexController中指定跳转到页面index.jsp,并传递message数据
5. 在index.jsp中显示message信息
步骤 11 : 完整的项目下载
一般说来,根据步骤一步一步的做过来,就可以运行看到结果了。
如果实在看不到结果,多半是因为中间某个步骤不够仔细,大小写错误,多了个下划线等等细微的错误。
如果是这样,还可以在右侧下载完整的项目保证一定可以走通
如果实在看不到结果,多半是因为中间某个步骤不够仔细,大小写错误,多了个下划线等等细微的错误。
如果是这样,还可以在右侧下载完整的项目保证一定可以走通
步骤 12 : 练习
本例实现了访问路径/index,服务端跳转到index.jsp的效果
练习:访问路径/hello 服务端跳转到hello.jsp
练习:访问路径/hello 服务端跳转到hello.jsp
更多SpringMVC学习内容:https://how2j.cn/k/springmvc/springmvc-springmvc/615.html?p=144217