新闻正文

Spring 学习点滴,《Spring in Action》笔记(五)

来源:JAVA天堂  Spring  2007-6-17 00:43:08 网友评论 0 条 字体:[ ] ~我要投稿!
71. Spring 的 MVC 和 Struts 的 MVC 基本一致
    Spring 的控制流程是:请求->DispatcherServlet->从 HandlerMapping 中查询到处理该请求的 Controller-> Controller 的 handleRequest 方法调用业务方法,最后返回 ModelAndView (ModelAndView告诉了 DispatcherServlet 转向到哪个视图)
    Struts 的控制流程是:请求->ActionServlet->从 ActionMapping 中查询到处理该请求的 Controller (Action类)->Action 的execute 方法调用业务方法,最后返回 ActionForward (ActionForward告诉了 ActionServlet 该转向到哪个视图)
72. Spring 的 DispatcherServlet 和 Struts 的 ActionServlet 的配置方式是一样的,都是作为一个自启动的 Servlet 配置到 web.xml 中。Spring 的 url-pattern 的配置惯例是 *.htm,而 Struts 通常是配置成 *.do 或 *.action,它暴露了 web 使用的技术。
73. Spring 中配置了
 
    <servlet-mapping>
        
<servlet-name>unmi</servlet-name>
        
<url-pattern>*.html</url-pattern>
    
</servlet-mapping>

后,在初始化相应的 DispatcherServlet 时会自动加载 unmi-servlet.xml 文件,它是一个普通的 Spring Bean 配置文件,也是由 WebApplicationContext 加载。其他的 Bean 配置文件需要像通常的做法由 ContextLoaderListener 或 ContextLoaderServlet 来加载。
 73. Struts 1.2? 后开始可以在 struts-cnfig.xml 中给 Action 注入简单属性,而 Spring 配置 controll 时可以注入所有类型属性
74. 在 unmi-servlet.xml 中配置的下面这段代码,Spring 将对请求 URL 是 "/home.html" 结尾的分派给 HomeController 处理,DispatcherServlet 使用的默认处理器映射是 BeanNameUrlHandlerMapping
 
<bean name="/home.html" class="com.unmi.HomeController">

    
<property name="greeting"><value>Welcome to Spring Training</value></property>
</bean>

75. Spring 最简单的视图解析器是 InternalResourceViewResoler,如在 unmi-servlet.xml 有下配置
 
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResoler">
   
<property name="prefix"><value>/WEB-INF/jsp/</value></proeprty>
   
<property name="surfix"><value>.jsp/</value></proeprty>
</bean>

那么,当 HomeController 中 返回 return new ModelAndView("home"); 时将会解析成由视图 /WEB-INF/jsp/home.jsp 来展示
76. 有三种类型的请求映射控制器,实现的是 HandlerMapping 接口
    BeanNameUrlHandlerMapping -- 根据控制器的名字将控制器映射到 URL
    SimpleUrlHandlerMapping -- 用上下文配置文件中定义的属性集合将控制器映射到 URL
    CommonsPathMapHandlerMapping -- 使用控制器代码中的元数据将控制器映射到 URL
    DispatcherServlet 缺省映射处理器是 BeanNameUrlHandlerMapping,它将表现层 URL 和控制器名字绑定起来了, Spring 不建议使用这个映射处理器,建议用 SimpleUrlHandlerMapping。可是我觉得用 BeanNameUrlHandlerMapping 挺方便的啊
77. 使用 SimpleUrlHandlerMapping 的配置,需要将系统中用到的 URL 一一逻列出来
 
<bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    
<property name="mappings">
        
<props>
            
<prop key="/listCourse.html">listCoursesController</prop>
            
<prop key="/register.htm">registerStudentController</prop>
        
</props>
    
</peroperty>
</bean>

78. 使用 CommonsPathMapHandlerMapping 需要为 Controller 类注解上 PathMap 属性为一个 URL
79. 可用同时配置多映射处理器,通过配置它们实现的 Ordered 接口的 order 属性,DispatcherServlet 按顺序采用哪个映射处理器(责任链模式)
80. Spring 提供了丰富的控制器层次,方便根据实际需求选择实现或继承那一种控制器

收藏到ViVi   收藏此页到365Key
上一篇:java中的applet技术介绍
下一篇:将JAVA编译为EXE的几种方法
用户名:新注册) 密码: 匿名评论 [所有评论]
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
本栏搜索
  • Google
   网站首页 -  网站地图 -  技术学习 -  网站投稿 -  帮助中心
Copyright 2003-2008 www.javah.net All Rights Reserved
2008 如果你喜欢本站 请收藏本站 并推荐给你的朋友一起分享