1、说一下 spring mvc 运行流程?
1.客户端的所有请求----进入—DispatcherServelt(BaseServlet):核心控制器–
2.根据HandlerMapping-----转发请求—具体的业务控制器(具体的Servlet):
定位类(业务控制器)HandlerMapping:请求和业务控制器的映射关系:
/user/login-------->UserServlet的login()
/user/regist-------->UserServlet的regist()
/order/showOrders—>OrderServlet的showOrders()
3.通过HandlerAdapter定位具体的处理方法:
4.HandlerAdapter---->调用->HttpMessageConveter–>自动把请求参数封装为方法的相应参数,并进行自动类型转化。
5.处理完请求后,SpringMVC把绑定的数据和要跳转的视图名封装为ModelAndView–DispactherServlet
6.DispactherServlet—>调用—>ViewResovler–>把ModelAndView---->拆分–>
Model(数据)和View(页面名),同时对页面跳转路径进行加工(字符串拼接)
hello.jsp /myjsp/hello.jsp
view中只有hello,ViewResovler会把hello----加工–/myjsp/hello.jsp
7.把Model—>注入—>View
8.完成请求响应。
2、spring mvc 有哪些组件?
答:1、dispatcherServlet 前置控制器
2、handleMapping 映射控制器
3、Controller 处理器
4、ModelAndView 模型与视图
5、ViewResolver 视图解析器
3、@RequestMapping 的作用是什么?
将 http 请求映射到相应的类/方法上。
4、@Autowired 的作用是什么?
答:@Autowired 它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作,通过@Autowired 的使用来消除 set/get 方法。