标签:
Spring Web MVC DispatcherServlet 的请求处理的工作流程如下图所示:
(1)收到一个 HTTP 请求后, DispatcherServlet 根据HandlerMapping来选择并且调用适当的控制器 。
(2)控制器接受请求,并基于使用的 GET 或 POST 方法来调用适当的 service 方法。Service 方法将设置基于定义的业务逻辑的模型数据,并返回视图名称到 DispatcherServlet 中。
(3)DispatcherServlet 会从 ViewResolver 获取帮助,为请求检取定义视图。
(4)一旦确定视图, DispatcherServlet 将把模型数据传递给视图,最后呈现在浏览器中。
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- struts习惯使用/*,在springmvc不管用 -->
<url-pattern>*.do</url-pattern>
</servlet-mapping>
2.2 配置spring.xml文件
<!-- 一旦有扫描器的定义,mvc:annotation-driven不需要,扫描器中包含驱动-->
<context:component-scan base-package="cn.itcast.controller"/>
<!-- 前缀+ viewName +后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- webroot到某一指定的文件夹的路径 -->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!-- 视图名称的后缀 -->
<property name="suffix" value=".jsp"/>
</bean>
2.3 添加注解
添加@RequestMapping(“/xxx.do”)以此标明访问控制层的方法 @RequestMapping(“/xxxxx”)也可以来在类上声明命名空间
2.4 模型数据处理
方法的返回值可采用ModelAndView,newModelAndView(“XXX”,map);相当于把结果数据放到request
2.5 重定向
return "redirect:homenews-list.do";
return "redirect:/homenews/homenews-list.do";
2.6 拦截器的使用
<!-- 拦截器-->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**/*"/>
<bean class="com.hmaccelerate.interceptors.LoginInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
标签:
原文地址:http://www.cnblogs.com/hmaccelerate/p/5371300.html