• 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会根据该视图的配置信息,显示该视图.

      

      

      

        

    不要说话
  • 相关阅读:
    gmoj 5439. 【NOIP2017提高A组集训10.31】Calculate
    gmoj 6859. 【2020.11.14提高组模拟】无尽之前 (game)
    CSP2020 函数调用(call)
    gmoj 6841. 【2020.11.5提高组模拟】淘淘蓝蓝之树 林
    gmoj 6839. 【2020.11.5提高组模拟】淘淘蓝蓝喜欢 01串
    6843. 【2020.11.02提高组模拟】移形换影
    gmoj 6844. 【2020.11.02提高组模拟】旅途和生活
    gmoj 6845. 【2020.11.02提高组模拟】梯度弥散
    Codeforces1445C.Division
    Codeforces1445D. Divide and Sum
  • 原文地址:https://www.cnblogs.com/sxudk/p/4447822.html
Copyright © 2020-2023  润新知