- 浏览: 140114 次
- 性别:
- 来自: 天津
文章分类
最新评论
-
liuxiang00435057:
不知道,你有这个的实现不,能发给我参考下吗,liuxiang0 ...
RBAC模型的通用权限管理系统的设计(数据模型)的扩展 -
步青龙:
这个批量上传确定可以用吗?我这怎么不行呢,官方的Demo也不行 ...
KindEditor 4.1 发布,开源HTML编辑器
此文章转自 http://www.blogjava.net/danxy2008/articles/29083.html
衡量一个 MVC 框架模式,主要通过三种 web 模式,本人认为 springMVC 是一个很好的 MVC
模式,对模式的支持如下:
( 1 )派遣器模式
Spring 有一个统一集中的派遣器 org.springFramework.Web.Servlet.DispatcherServlet,
一般在 web.XML 中把所有的页面请求都发送到该派遣器:
<servlet>
<servlet-name>countries</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>countries</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
( 2 )控制器模式
派遣器收到请求后 , 把不同的页面派遣到不同的控制器进行处理:
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/home.htm">countriesController</prop>
<prop key="/notfound.htm">errorsController</prop>
</props>
</property>
</bean>
Spring 有两种 MAPPING 的机制 , 默认为 BeanNameUrlHandlerMapping, 我们这里采用的是
SimpleUrlHandlerMapping.
( 3 )拦截器模式
在控制器处理前 , 我们可以将其拦截 , 进行一些特殊或通用处理 ; 拦截器可以选用 Spring 已经实现的或我们自己实现的:
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref local="localeChangeInterceptor"/>
<ref local="themeChangeInterceptor"/>
<ref local="copyInterceptor"/>
</list>
</property>
</bean>
详细介绍:
① 分发器: Dispatcherservlet
整个 spring 应用只需要一个分发器
<servlet>
<servlet-name>springapp</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 映射的类型 -->
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
处理器映射
一般对应文件 servlet-name-servlet.xml, 譬如 springapp-servlet.xml
BeanNameUrlHandlerMapping
一般使用 SimpleUrlHandlerMapping
<!--Request Mapping -->
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings">
<props>
<prop key="login.do">LoginController</prop>
<prop key="login.html">LoginController</prop>
</props>
</property>
</bean>
② 控制器
控制器的基础接口 Controller ,包含方法
ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response)
throws Exception;
一般使用 return new ModelAndView( “” ); 也可以使用 response.sendRedirect( “” ).;
AbstractController 控制器继承 Controller 类,增加譬如缓存、 minetype 等功能,处理多个动作,可以使用 MultiActionController
但如果要表单和数据对象的交互,我们就使用命令控制器
一般使用 AbstractCommandController 带参的形式,把相关的功能放在一个 controller
譬如用户的添加、修改、删除,就可以采用 usemanage.do?msg=add/modify/delete 的形式
SimpleFormController 更为具体,但继承它实现的 OnSubmit 的方法,不好用,譬如不能后退或者用于超链接等方式的地址直接响应。
③ 处理器映射拦截器
拦截器接口定义了三个方法,一个在处理器执行前被调用,一个在处理器执行后被调用,还有一个在整个请求完成后调用。譬如在在上午 9 点到下午 6 点重定向某个页面,
在 handlerMapping 那个 bean 里面加入
<property name=”interceptors”>
<list>
<ref bean=”officeHourIntercptor”>
</list>
</property>
然后一个处理 Bean
<bean id=” officeHourIntercptor” class=” TimeBaseIntercptor”>
<property name=”openTime”> <value>9</value> </property>
<property name=”closeTime”> <value>18</value> </property>
</bean>
④ 视图与解析器
Spring 框架控制器返回的是 ModelAndView ,对于一般的 JSP 和 Servlet, 一般使用 InternalResourceViewResolver ,继承于 UrlBaseViewResovler
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass">
<value>org.springframework.web.servlet.view.JstlView</value>
</property>
</bean>
当一个 web 中使用不同类型的视图技术,使用 ResourceBandleViewResolver
⑤ 使用本地化信息
Spring 框架大部分支持国际化,像 web 框架一样,自动解析客户端信息
但我们可以自己手动获取客户端信息,并做需要的参数设计来改变属性
一般使用 LocalChangeInterceptor 修改本地化信息,这个像拦截器一样使用
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName"><value>siteLanguage</value></property>
</bean>
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.CookieLocaleResolver"/>
发表评论
-
Spring参考手册 mvc:resources
2012-05-23 16:47 1403This tag allows static resource ... -
再析在spring框架中解决多数据源的问题
2012-05-15 00:48 853转自:http://www.iteye.c ... -
Spring mvc aop to get request and response
2012-05-15 00:04 2530@Aspect public class ... -
Spring线程安全
2012-05-14 16:00 1048Spring管理的对象基本都应该是无状态的 ,spring ... -
spring3.X mvc 应用Session属性的策略
2012-05-14 14:00 1102喜好读书,就便是把生活生计中寂寞的辰光换成重大享受的时刻。本文 ... -
使用 Spring 2.5 基于注解驱动的 Spring MVC
2012-05-14 10:19 694转自:https://www.ibm.com/de ... -
HibernateDaoSupport的getSession()与HibernateTemplate的差别
2012-05-11 13:43 885在 Spring+Hibernate的集成环境里,如果DA ... -
Srping MVC 入门 @ResponseBody & @RequestBody
2012-05-11 09:33 906转自:http://www.cnblogs.com/zhaoy ... -
Spring 3.x MVC 入门1
2012-05-11 09:26 859文章转自http://www.cnblogs.com/zh ... -
AOP的代理区分 (Java动态代理和CGLIB代理)
2012-05-03 16:00 917第一种代理即Java的动态代理方式上一篇已经分析,在这里不 ... -
Spring AOP 概念理解及@AspectJ支持
2012-05-03 15:23 1606Spring AOP 概念理解及@AspectJ ...
相关推荐
SpringMVC框架学习指南学习入门的好教材
SpringMVC框架学习指南.doc
软件工程SpringMVC框架学习,项目实践 课程设计
让你从零基础基础学习springMVC的技术,并且告诉你如何搭建一个springMVC的架构
NULL 博文链接:https://learnmore.iteye.com/blog/1204327
初学springMVC框架
springmvc框架的简单应用,供初学者用来学习。里面的基础知识只是最初版本。
springmvc框架实例,自己学习时写的,注释很多,springmvc的基本功能都有,包括:路径映射,视图解析,拦截器,异常处理等,不过先要有spring的基础哦
关于SpringMVC的基础知识点总结,SpringMVC参数绑定6种方式,使用不同的方式跳转页面,后台处理json格式的数据,SpringMVC框架简介,SpringMVC的入门案例等
springmvc框架基础知识学习笔记
本资源是springmvc框架学习的一个例子,上传便于自己和大家参考。
搭建springMVC简单框架,适合初学者了解学习springmvc
虽然是springmvc框架的系统学习,但涉及了spring框架,因为springmvc本身就是spring框架的延伸,无缝连接。学习项目是一个轻量级的超市管理系统,涉及spring+springmvc+jdbc+maven管理框架,也把SSM框架涉及的大部分...
学习springMVC框架搭建的可以看一看。
SpringMVC框架搭建所需要jar包,经测试运行成功,比较全面。
springmvc框架的web项目,学习用途,项目细节有些小瑕疵,可以作为学生学习java web框架的好东西
springmvc框架学习资料,讲解的很好,我是扫描版,看着非常清晰。欢迎下载。
SpringMvc实现移动接口开发,使用RestFul的url风格的接口开发,实现语言java,该Demo只是一个简单的项目例子,便于学习理解,该项目数据库sql有误读者自己创建:数据库(student_manage),表名(student),字段(id,...
适用于Java后台开发SpringMVC框架使用者,包括注解的使用、配置文件配置参考和SSM框架整合内容