裸泳的猪

沾沾自喜其实最可悲

0%

springMVC框架总述

什么是MVC

  • M代表模型(Model)
    模型其实就是数据,dao,bean
  • V代表视图(View)
    网页,jsp等用来展示数据的模型
  • C代表Controller
    把不同的数据展示在不同的视图上,处理请求的分发,Servlet扮演的就是这样的角色
    MVC

SpringMVC的流程

  1. 用户发送请求至前端控制器DispatcherServlet;

  2. DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handler;

  3. 处理器映射器根据请求url找到具体的处理器Handler,生成处理器对象及处理器拦截器(如果有则生成),一并返回给DispatcherServlet;

  4. DispatcherServlet 调用 HandlerAdapter处理器适配器,请求执行Handler;

  5. HandlerAdapter 经过适配调用 具体处理器进行处理业务逻辑;

  6. Handler执行完成返回ModelAndView;

  7. HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet;

  8. DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析;

  9. ViewResolver解析后返回具体View;

  10. DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)

  11. DispatcherServlet响应用户。

SpringMVC常用的注解有哪些?

@RequestMapping:用于处理请求 url 映射的注解,可用于类或方法上。用于类上,则表示类中的所有响应请求的方法都是以该地址作为父路径。

@RequestBody:注解实现接收http请求的json数据,将json转换为java对象。

@ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户。

SpingMvc中的控制器的注解一般用哪个?有没有别的注解可以替代?

答:一般用@Controller注解,也可以使用@RestController,@RestController注解相当于@ResponseBody + @Controller,表示是表现层,除此之外,一般不用别的注解代替。

SpringMvc里面拦截器是怎么写的:

有两种写法,一种是实现HandlerInterceptor接口,另外一种是继承适配器类,接着在接口方法当中,实现处理逻辑;然后在SpringMvc的配置文件中配置拦截器即可:

1
2
3
4
5
6
7
8
9
10
11
12
<!-- 配置SpringMvc的拦截器 -->
<mvc:interceptors>
<!-- 配置一个拦截器的Bean就可以了 默认是对所有请求都拦截 -->
<bean id="myInterceptor" class="com.zwp.action.MyHandlerInterceptor"></bean>

<!-- 只针对部分请求拦截 -->
<mvc:interceptor>
<mvc:mapping path="/modelMap.do" />
<bean class="com.zwp.action.MyHandlerInterceptorAdapter" />
</mvc:interceptor>
</mvc:interceptors>

Servlet生命周期

Servlet生命周期分为三个阶段:初始化阶段、响应客户请求阶段、终止阶段

  1. 创建Servlet对象,通过服务器反射机制创建Servlet对象,第一次请求时才会创建。(默认

  2. 调用Servlet对象的init()方法,初始化Servlet的信息,init()方法只会在创建后被调用一次(初始化阶段

  3. 响应请求,调用service()或者是doGet(),doPost()方法来处理请求,这些方法是运行的在多线程状态下的。(响应客户请求阶段

  4. 在长时间没有被调用或者是服务器关闭时,会调用destroy()方法来销毁Servlet对象。(终止阶段

-------------本文结束感谢您的阅读-------------