MVC核心思想:业务数据的抽取同业务数据的呈现相分离
Model-View-Controller{
一种架构模式,程序分层、分工合作
一种思考方式
}
Spring MVC流程架构图:
Spring MVC架构模型
详细流程走向
Controller使用:
例子
@Controller
@RequestMapping(value = “一级路径”)
Public class TestController {
//绑定请求参数到id
@RequestMapping(value = “二级路径”)
Public String test1(@ParamValue(“id”) Integer id,
Model model){
Return “test”;
}
//绑定路径参数到变量、RestFul格式
@RequestMapping(value = “二级路径/{id}”)
Public String test2(@PathValue integer id,Model model){
Return “test”;
}
//表单绑定在方法中
@RequestMapping(value = “二级路径”,method =
RequestMethod.POST)
Public String test2(@ModelAttribute Course course{
Return “test”;
}
}
拦截器
是指通过统一拦截从浏览器发送到服务器的请求来完成功能的增强
使用场景:解决共性问题(乱码问题、权限验证问题)
拦截器基本工作原理:
过滤器和拦截器相似,区别:
{
Filter依赖于Servlet,基于回调函数,过滤范围大
拦截器Interceptor依赖于框架容器,基于反射机制,只过滤请求
}
拦截器实现:
1. 编写拦截器类实现HandlerInterceptor接口
2. 将拦截器注册到SpringMVC中
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/jsps/test"/>
<bean id="filter" class="com.imooc.interfacetor.FirstInteceptor" />
</mvc:interceptor>
</mvc:interceptors>
3. 配置拦截器拦截规则
拦截器方法:
1. preHandle方法,在请求被处理前进行调用
2. postHandle方法,在请求被处理之后进行调用
3. afterCompletion方法,在请求结束之后进行调用
执行顺序图: