SpringMVC
1
SpringMVC
- 简介:
SpringMVC是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于SpringFramework的后续产品,已经融合在Spring Web Flow中
SpringMVC已经成为目前主流的MVC框架之一,并且随着Spring3.0的发布,全面超越Struts2,成为最优秀的MVC框架.他通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口.同时它还支持RESTful编程风格的请求.
一般请求过程:


<!-- 配置SpringMVC的前端控制器-->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 配置映射地址-->
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
@Controller
public class UserController {
@RequestMapping("/quick")
public String save(){
System.out.println("UserController save running....");
//跳转的视图
return "success.jsp";
}
}
注意: spring-mvc.xml 要开组件扫描!!
(32条消息) 解决SpringMVC报404错误_weixin_46085086的博客-CSDN博客_springmvc报404

SpringMVC 执行流程:

- 用户发送请求至前端控制器
DispatcherServlet DispatcherServlet受到请求调用HandlerMapping处理器映射器- 处理器映射器找到具体的处理器(可以根据xml配置,注解进行查找),生成处理器对象及处理器拦截器(如果有则生成),一并返回给
DispatcherServlet DispatcherServlet调用HandlerAdapter处理器适配器HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器).Controller执行返回ModelAndViewHandlerAdapter将 Controller 执行结果ModelAndView返回给DispatcherServletDispatcherServlet将ModelAndView传给ViewReslover视图解析器ViewReslover解析后 返回具体 ViewDispatcherServlet根据 View 进行渲染视图(即将模型数据填充至视图中).DispatcherServlet响应用户
SpringMVC 注解解析
@RequestMapping
- 作用:用于建立请求URL和处理请求方法之间的对应关系
- 位置:
- 类上,请求URL的第一级访问目录.此处不写的话,相对于访问应用的根目录.
- 方法上,请求URL的第二级访问目录,与类上的使用
@RequestMapping标注的一级目录一起组成访问的虚拟路径
@Controller
// 类上 http://localhost:port/xxx/quick
@RequestMapping("/xxx")
public class UserController {
//方法上 请求地址 http://localhost:port/quick
@RequestMapping("/quick")
public String save(){
System.out.println("UserController save running....");
//跳转的视图
//默认 forward: 可以改成 redirect:
return "/success.jsp";
}
}
- 参数:
- value: 用于指定请求的URL.它和
path属性的左右是一样的 - method: 用于指定请求的方式 默认是
Get方法 - params: 用于指定限制请求参数的条件.它支持简单的表达式.要求请求参数的
key和value必须和配置的一毛一样- params={"accountName"},表示请求参数必须有accountName
- params={"money!100"},表示请求参数中money不能是100
- value: 用于指定请求的URL.它和
@RequestMapping(value="/xxx",method=RequestMethod.POST,params={"username"})
SpringMVC的xml配置解析
<!--配置内部资源视图解析器-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
要点:
SpringMVC相关组件
- 前端控制器
DispatcherServlet - 处理器映射器
HandlerMapping - 处理器适配器
HandlerAdapter - 处理器
Handler - 视图解析器
View Resolver - 视图
View
SpringMVC的注解和配置
- 请求映射注解:
@RequestMapping - 视图解析器配置:
- REDIRECT_URL_PREFIX="redirect:"
- FORWARD_URL_PREFIX="forward:"
- prefix="";
- suffix="";