Spring MVC学习笔记(二) 视图解析器 web请求六个阶段

  

  2015-04-22   14:11:15

  "解析视图"  "spring-mvc.xml配置"

  return "返回的视图名"; 

  http://www.ibm.com/developerworks/cn/java/j-lo-springview/  开发 Spring 自定义视图和视图解析器(很好的一篇文章)

  看一下完整的配置:

  

 <bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/">
        </property>
        <property name="suffix" value=".jsp">
        </property>
    </bean>

  InternalResourceViewResolver  内部资源视图解析器;

  prefix 前缀;  suffix  后缀;

  @Controller处理器方法,返回的"视图名" ~~~~~~~~~  return "text";那么我们访问的就是:    /WEB-INF/jsp/text.jsp

 

  spring mvc处理过程,一个web请求所需经理的六个阶段:

  1. 请求会被Spring MVC的 前端请求分发起(Dispatcher) 拦截.该拦截器是一个Servlet,需要在web.xml中配置,所有符合 配置的URL样式的访问请求,将都会被该拦截器拦截.Spring提供了默认的分发器org.springframework.web.servlet.DispatcherServlet,您也可以根据需要决定是否需要定制自己的分发器.
     1 <servlet>
     2     <servlet-name>springmvc</servlet-name>
     3     <servlet-class>
     4         org.springframework.web.servlet.DispatcherServlet
     5     </servlet-class>
     6     <init-param>
     7         <param-name>contextConfigLocation</param-name>
     8         <param-value>classpath:spring-mvc.xml</param-value>
     9     </init-param>
    10     <load-on-startup>1</load-on-startup>
    11 </servlet>
    12 <servlet-mapping>
    13     <servlet-name>springmvc</servlet-name>
    14     <url-pattern>*.form</url-pattern>
    15 </servlet-mapping>
  2. 在接受到web访问请求后,"分发器"会根据开发人员在"spring配置文件------spring-mvc.xml"或"代码中的注解(Annotation)----------@Controller",来查找合适的控制器.
    1 spring-mvc.xml
          <mvc:interceptors> 2   <!--第一个拦截器--> 3   <mvc:interceptor> 4    <mvc:mapping path="/spring/*"/> 5   <mvc:exclude-mapping path="/login/*"/> 6   <bean class="com.tarena.interceptor.SomeInterceptor"/> 7 </mvc:interceptor>
    1 1 @Controller
    2 2 @RequestMapping("/spring")
    3 3 public class HelloController{
    4 4     @RequestMapping("/hello.form")
    5 5     public String execute() throws Exception {
    6 6         System.out.println("执行HelloController");
    7 7         return "hello";
    8 8     }
    9 9 }

     

  3. 分发器在查找到合适的控制器后,将请求交给该控制器处理(基本都是 类方法) .
  4. 通常,控制器(处理方法)  会调用相应"服务类"来处理业务逻辑,在将请求处理后,"控制器"需返回处理后的"结果数据模型"(Model),以及下一个需要显示的"视图名" .

  5. 在"控制器"处理结束返回模型和试图名之后,Spring会依次调用Spring容器所注册的"视图解析器",来查找符合条件的视图 .
  6. 在获得Spring视图后,Spring会根据该视图的配置信息,显示该视图.

  

  

  

    

posted on 2015-04-22 16:13  易猜  阅读(281)  评论(0编辑  收藏  举报

导航