技术spring3mvc真正入门_第1页
技术spring3mvc真正入门_第2页
技术spring3mvc真正入门_第3页
技术spring3mvc真正入门_第4页
技术spring3mvc真正入门_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、前言:Spring3MVC了。Spring3 MVC结构简单,应了那句话简单就是美,而且他的本一、前言:Spring3MVC了。Spring3 MVC结构简单,应了那句话简单就是美,而且他的本(本文使用是的Spring 3.0.5Struts2也是比较优秀的 MVC Struts2由于采用了值栈、OGNL 表达式、器、多实例action性能都很好。可以参考我写的一篇关于SpringMVC与与Servlet比较的文章 HYPERLINK http:/admin/blogs/698217 1、Spring3 MVC的学习难度小于Struts2,Struts2。2、Spring3 MVC很容易就

2、可以写出性能优秀的程序,Struts2要处处秀的程序(指 MVC 部分)3、Spring3MVC的灵活是你无法想像的,Spring的扩展性有口皆碑,Spring3MVC二类与接口:- - - HandlerAdapter- Controller- 由使用了注解,添加了erceptor 接口器erceptor 接口器 M三流程图M三流程图四、说 下来的请求,依据某某规则分发到目标 四、说 下来的请求,依据某某规则分发到目标 le/servlet-name这个 Servlet 的名字是 le, 可以有多个DispatcherServlet,是通过名字来区分的。 每一个 DispatcherServ

3、let 有自己的DispatcherServlet le 2 为 /app/* /app/user/add 2 为 /app/* /app/user/add /app 3 4 jsp五、双亲上下文的说明 值。可以使用工具类取出上下文:DispatcherServlet 是一个 Servlet, 可以同时配置多个,每个 DispatcherServlet 有一个自己的WebApplicationContext 上下文, 这个上下文继承了 根上下文 中所有东西。 保存在ServletContext 中,key 是 中,key 是 DispatcherServlet.class.getNameCON

4、TEXT中的 web MVC DispatcherServlet WebApplicationContext 中,key 是 DispatcherServlet.class.getNameCONTEXT中的 web MVC DispatcherServlet WebApplicationContext override以被设置上只有这个 servlet 实例自己使用的属性。六、springMVC-mvc.xml 配置文件片段讲(未使用默认配置文件名!- !- !- 扩展名来选择视图解释类的逻辑 !-beaneceptor!- 方案一 (二选一)!- (二选一)!-beaneceptor!- 方

5、案一 (二选一)!- (二选一) 式可以让初学都快速应用默认配置方案。 ion-driven / 会用于注入,j2ee) Autowired 提供的) ) ion-driven / 式可以让初学都快速应用默认配置方案。 ion-driven / 会自与 ionMethodHandlerAdapter 两个 bean,是 MVC为Controllers 支持,读写XML 的支持(JAXBJSON 的支持(Jackson。后面 后 面,对 写 单元测 试时, 要从 容器中与 beanerceptors/ 。ndler/ 使用默认的Servlet=/images/* location=/images

6、/ cache-period=31556926/ 匹配的URL被当做静态资源,由Springhttp到静态的文件,如 七、如何如何你的的目的:可以静态文件,不要找不到静态文件报404方案一:激活 Tomcat 的 defaultServlet 来处理静态要写DispatcherServlet 的前面, 让 ,这个就不会进了性能是最好的吧s,and默认Servlet的名字AppEngine 默认Servlet的名字Resin 默认Servlet的名字resinWebLogic 默认Servlet的名默认Servlet的名字方案二: 在 spring3.0.4以后版本提供了 的使用方法 !- 到

7、ndler 进行处理方案二: 在 spring3.0.4以后版本提供了 的使用方法 的原使 用 元 素 的到urlMap 中key为由 ndler 处理并返回,所以就支持 态资源另外需要注意的一点是,不要对 因为对icurindler 就是否则无法处理ic mvc:default-会把/* url, 到 的 urlMap 中把对静态资源的转由到ndler 处理并返回 自动的 order 属性值是的 属性值是: spring 会先执行 order 值比较小的。一个 文件时,先通Actionorder 值升序找由于最后一个 是匹/*的,所以一定会匹配上。 最后再说明一下,如何你的 八、请求如到具体

8、的 Action 中的方法?方 案 一 : 基 于 xml , 可 以 利 用 配 置 进行Url、,可以使用。 方 案 一 : 基 于 xml , 可 以 利 用 配 置 进行Url、,可以使用。 并在 action 类上使用九、Spring 中的器Spring 接口适配实现这个接口或继承此类,可以非常方便的实现自己器有以下三个Action 之前执行preHandle(HttpServletRequest 生成视图之public ndle(HttpServletRequest HttpServletResponse response, MAndView最后执行资publicpletion(H

9、ttpServletRequest HttpServletResponse response, 生成视图之public ndle(HttpServletRequest HttpServletResponse response, MAndView最后执行资publicpletion(HttpServletRequest HttpServletResponse response, ndler, Exception 分别实现预处理、后处理(调用了 Service 并返回 AndView,但未页面渲染、返回处理(已经渲染了页面preHandle 中,可以进行编码、安全在在ndle 中,有机会修改 在中

10、,可以根据 ex 是否为 null 判断是否发生了异常,进志。参数中ndler 是下一器十、如何使用器?自定义一器,要实现 erceptor 接口 publicclass 并没有总器,不能对所有的请求进行。Spring MVC 器, 是属级别的,可以有多个,每个可以有自己器当一个请求按 Order 值从小顺序执行 接口Spring MVC 器, 是属级别的,可以有多个,每个可以有自己器当一个请求按 Order 值从小顺序执行 接口的实现类哪一个先有返回,那就可以结束了,后面的 就不走了工序就完成了。就转到下一道工器会在什么时候执行呢? 一个请求交给一个 时,这先找有没有处理器来处理这个请求,如

11、何找到了,就执行拦截器,执行后,交给目标如果没有找到处理器,那么这器就不会被执行。在 spring MVC 的配置文件中配置有三种方法方案一(近似)器所会为每个 ,注入一器。总有一是可以找到处理器的,最多也只找到一个处理器,所以这个器总会被执行的。起到了器的作用。方案二, (近似) 器匹配的 URLerceptors bean就是比 方案一多了一个 URL 方案三erceptors bean就是比 方案一多了一个 URL 方案三上器 property 它 会 自 动ionMethodHandlerAdapter 这两个 bean,所以就没有机会再给它注erceptors 属性,就无法指器当可以

12、通过人工配置上面Bean,不使ion-/,就可以 erceptors 属性 注器了。其实我也不建议使用ion-/,而建议当可以通过人工配置上面Bean,不使ion-/,就可以 erceptors 属性 注器了。其实我也不建议使用ion-/,而建议手动写配置文件,来ion-/,这就控制力就强了。十一、如何实现全局的异常处理?spring MVC 的配置文件中 !- 总错误处理 property类具体可以配置哪些属性,我是通过查看源码类具体可以配置哪些属性,我是通过查看源码知道的。你也可以实现 接口,写一个自己的异常处理程序spring 的扩展性是很好的。通过可以将不同的异到不jsp 页面(通过

13、s 属性的配置同时也可以为所有的异常指定一个默认的异常提示页面( 通过defaultErrorView 属性的配置,如果所抛出的异常在 s 有对应,则 Spring 将用此默认配置显示异常信注意这里配置的异常显示界面均仅包括主文件名,至于文件路径和后缀已经在 viewResolver 中指定。如/error/error 表示显示错误的 jsp 页面%page!DOCTYPE html PUBLIC -/W3C/DTD HTML 4.01 !DOCTYPE html PUBLIC -/W3C/DTD HTML 4.01 Exceptione=其中 tribute(exceptionkey 是 e

14、xception类默认指定的,是可能通过配置文件修个值的,大家可以十二、如何把全局异常到日志中? warnLogCategory 类 的 全 限 定 名 ” 。 我 是 在ExceptionResolver 类父HandlerExceptionResolver 中找到这个属性的。查看源码后得知:如果 不为空就会使用 warnLogCategory 类 的 全 限 定 名 ” 。 我 是 在ExceptionResolver 类父HandlerExceptionResolver 中找到这个属性的。查看源码后得知:如果 不为空就会使用的日志工级别是 warn值:“ExceptionResolver

15、”类的全限定名”这个值不是随便写的为我在的配件中还要加入esolver=WARN,保证这个级别是 warn 的日志一定会,即使log4j 的日志级别是 ERROR十三、如何给 spring3 MVC 中的 Action 做JUnit 单元测试?使用了spring3MVC后,给action做单元测试也很方便,我以前从来不写单元测试的,再在不同了,方便了,所以一定要写。JUnitActionBase 类是所有 JUnit 的测试类的importimportimport;*JUnitaction* *创建时间:2011-2-2 下午publicclassJUnitActionBaseic*publi

16、cicvoidsetUp()if=null)publicclassJUnitActionBaseic*publicicvoidsetUp()if=null)=MockServletContextmsc=new=)= *param*param*throwsM *param*param*throwsM throwsException=final AndView = return;这是JUnit 测试类可以 new Request 对象,来参与测试,太方便request 这是JUnit 测试类可以 new Request 对象,来参与测试,太方便request 指的 URL,就可以请求目标 Acti

17、on import * *创建时间:2011-2-2 下午 = = / 执行URI /Assert 明一下 :由于当前最想版本的 Spring(Test) 3.0.5还不支需ContextConfiguration 的注解式context file 注入,所以还需要写个 setUp 理下,否则类似于 Tiles 的加载过程会有错误,因为没有 ServletContext。的版本应该有更好的解决方案,参见:。参考十四、转发与重定向可以通过 redirect/forward:url 方式转到另一。参考十四、转发与重定向可以通过 redirect/forward:url 方式转到另一进行连续的处可以通过redirect:url防止表单重复提交写法如下return redirect:/index.jsp;十五、处理ajax 请求1、引入下面两包,我用的是1.7.2,好像1.4.2版本以上都地址: HYPERLINK http:/w/JacksonDownload 2spring 的配置文件中要有这才能使用到 spring 内置支持的 转换如果你手工把 POJO 转成json 就可以不须要使用spring 内置支持的转换ion-driven 3、使用ResponseBody *ajax ; ;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论