SpringMVC学习指南.docx

上传人:自*** 文档编号:126248983 上传时间:2020-03-23 格式:DOCX 页数:20 大小:213.93KB
返回 下载 相关 举报
SpringMVC学习指南.docx_第1页
第1页 / 共20页
SpringMVC学习指南.docx_第2页
第2页 / 共20页
SpringMVC学习指南.docx_第3页
第3页 / 共20页
SpringMVC学习指南.docx_第4页
第4页 / 共20页
SpringMVC学习指南.docx_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《SpringMVC学习指南.docx》由会员分享,可在线阅读,更多相关《SpringMVC学习指南.docx(20页珍藏版)》请在金锄头文库上搜索。

1、Spring MVC学习指南以下这个学习案例是我最近学习Spring MVC时跟从一本书上的示例,原文中的示例代码有一些小错误,不过我在调试的过程中已经给予了修正,如还有其它错误,还请各位批评指正。对于现有较成熟的Model-View-Control(MVC)框架而言,其解决的主要问题无外乎下面几部分:1 将Web页面中的输入元素封装为一个(请求)数据对象。2 根据请求的不同,调度相应的逻辑处理单元,并将(请求)数据对象作为参数传入。3 逻辑处理单元完成运算后,返回一个结果数据对象。4 将结果数据对象中的数据与预先设计的表现层相融合并展现给用户。各个MVC 实现固然存在差异,但其中的关键流程大

2、致如上。结合一个实例,我们来看看这几个关键流程在Spring MVC框架中的处理手法。下面的实例,实现了一个常见的用户登录逻辑,即用户通过用户名和密码登录,系统对用户名和密码进行检测,如果正确,则在页面上显示几条通知信息。如果登录失败,则返回失败界面。(示例中,表示层以JSP2.0实现。)出于简洁考虑,这里的“用户名/密码”检测以及通知信息的生成均在代码中以硬编码实现。首先来看登录界面:对应的index.html:登录用户名:密 码 :很简单的一个登录界面,其中包含了一个用以输入用户名密码的form,针对此form的提交将被发送到login.doMVC 关键流程的第一步,即收集页面输入参数,并

3、转换为请求数据对象。这个静态页面提供了一个基本的输入界面,下面这些输入的数据将被发送至何处,将如何被转换为请求数据对象?现在来看接下来发发生的事情:当用户输入用户名密码提交之后,此请求被递交给Web 服务器处理,上面我们设定form提交目标为login.do,那么Web服务器将如何处理这个请求?显然,标准Http 协议中,并没有以.do 为后缀的服务资源,这是我们自己定义的一种请求匹配模式。此模式在web.xml中设定: Dispatcherorg.springframework.web.servlet.DispatcherServletcontextConfigLocation/WEB-IN

4、F/Config.xml Dispatcher*.do Servlet定义这里我们定义了请求分发Servlet,即:org.springframework.web.servlet.DispatcherServletDispatcherServlet 是Spring MVC 中负责请_求调度的核心引擎,所有的请求将由此Servlet 根据配置分发至各个逻辑处理单元。其内部同时也维护了一个ApplicationContext实例。我们在节点中配置了名为“contextConfigLocation”的Servlet参数,此参数指定了Spring配置文件的位置“/WEB-INF/Config.xml”

5、。如果忽略此设定,则默认为“/WEB-INF/-servlet.xml”,其中以Servlet 名替换(在当前环境下,默认值也就是“/WEB-INF/Dispatcher-servlet.xml)。 请求映射我们将所有以.do结尾的请求交给Spring MVC进行处理。当然,也可以设为其他值,如.action、.action等。通过以上设定,Web 服务器将把登录界面提交的请求转交给Dispatcher 处理,Dispatcher将提取请求(HttpServletRequest)中的输入数据,分发给对应的处理单元,各单元处理完毕后,将输出页面返回给Web服务器,再由Web服务器返回给用户浏览器

6、。Dispatcher 根据什么分发这些请求?显然,我们还需要一个配置文件加以设定。这也就是上面提及的Config.xml,此文件包含了所有的“请求/处理单元”关系映射设定,以及返回时表现层的一些属性设置。 org.springframework.web.servlet.view.JstlView /WEB-INF/view/ .jspLoginAction net.xiaxin.action.LoginInfo loginfailmain Resolver设定Resolver将把输出结果与输出界面相融合,为表现层提供呈现资源。 View Resolver的viewClass参数这里我们使用J

7、SP页面作为输出,因此,设定为:org.springframework.web.servlet.view.JstlView其余可选的viewClass还有: org.springframework.web.servlet.view.freemarker.FreeMarkerView(用于基于FreeMarker模板的表现层实现) org.springframework.web.servlet.view.velocity.VelocityView(用于基于velocity模板的表现层实现)等。 View Resolver的prefix和suffix参数指定了表现层资源的前缀和后缀,运行时,Spr

8、ing 将为指定的表现层资源自动追加前缀和后缀,以形成一个完整的资源路径。另参见 “请求/处理单元”关系映射可以看到,这里我们将“/login.do”请求映射到处理单元LoginAction。节点下可以有多个映射关系存在,目前我们只定义了一个。 LoginAction定义这里定义了逻辑处理单元LoginAction 的具体实现,这里,LoginAction 的实现类为net.xiaxin.action.LoginAction。 LoginAction的请求数据对象commandClass 参数源于LoginAction 的基类BaseCommandController,BaseCommandC

9、ontrolle 包含了请求数据封装和验证方法( BaseCommandController.bindAndValidate ) , 它将根据传入的HttpServletRequest构造请求数据对象。这里我们指定commandClass 为net.xiaxin.action.LoginInfo,这是一个非常简单的Java Bean,它封装了登录请求所需的数据内容:public class LoginInfo private String username;private String password;public String getPassword() return password;public void setPassword(String password) this.password = password;public String getUsername() return username;public void setUsername(String username) this.username =

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号