springmvc必要掌握的面试题
程序员文章站
2022-07-11 11:40:45
...
springmvc必要掌握的面试题
1.springmvc的工作原理?
客户端发送请求到DispatcherServlet
DispatcherServlet查询handlerMapping找到处理请求的Controller
Controller调用业务逻辑后,返回ModelAndView
DispatcherServlet查询ModelAndView,找到指定视图
视图将结果返回到客户端
2.springmvc的执行流程?
1、 用户发送请求至前端控制器DispatcherServlet。
2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
4、 DispatcherServlet调用HandlerAdapter处理器适配器。
5、 HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
6、 Controller执行完成返回ModelAndView。
7、 HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。
8、 DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
9、 ViewReslover解析后返回具体View。
10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
11、 DispatcherServlet响应用户。
3.springmvc设置重定向和转发?
在返回值前面加"forward:“就可以让结果转发
在返回值前面加"redirect:“就可以让返回值重定向
- Springmvc 如何做异常处理 ?
可以将异常抛给Spring框架,由Spring框架来处理;自定义实现spring的全局异常解析器HandlerExceptionResolver,在异常处理器中添视图页面即可。
5.springmvc常用注解:
@Controller 声明spring的一个Bean,DispatchServlet() 会自动扫描此注解的类,并将Web请求映射到注解@RequestMapping的方法上
@RequestMapping 注解是用来映射Web请求(访问路径和参数),处理类和方法
@ResponseBody 支持将返回值放在response体内,而不是返回页面,
@PathVariable 用来接收路径参数。
@RestController 是一个组合注解 开发一个和页面交互数据控制的时候使用此注解 相等于(@Controller和@ResponseBody两个注解)
@Controller和@RestController的区别:
@Controller类中的方法可以直接通过返回String跳转到jsp、ftl、html等模版页面。在方法上加@ResponseBody注解,也可以返回实体对象。 @RestController类中的所有方法只能返回String、Object、Json等实体对象,不能跳转到模版页面。 @RestController相当于@ResponseBody + @Controller。
@RestController中的方法如果想跳转页面,则需要用ModelAndView进行封装:
@RestController public class UserController {
@RequestMapping(value = "/index",method = RequestMethod.GET)
public String toIndex(){
ModelAndView mv = new ModelAndView("index");
return mv;
}
}
- Springmvc 中系统如何分层 ?
表现层(UI):数据的展现,操作页面,请求转发。
业务层(服务层):封装业务处理逻辑
持久层(数据访问层):封装数据访问逻辑
上一篇: 实战演练 飞盘射击 要点汇总
下一篇: 13.事件(3)