先整理出一批面试笔试面试题。后续将继续更新,如果本文中出现问题,请及时与蛐蛐联系,蛐蛐马上继续修改,后续也会同步更新。
什么是SpringMVC?
SpringMVC是Spring的一个模块
简单介绍下SpringMVC和Struts2的区别?
- SpringMVC的入口是一个servlet,而struts2入口是一个filter。
- SpringMVC一个url对应一个方法,传递参数通过形参;Struts2是基于类开发,传递参数是通过类的属性。
SpringMVC中的控制器的注解一般用哪个?
一般用@Conntroller注解
@RequestMapping注解有什么作用?
是一个用来处理请求地址映射的注解
SpringMVC的优点
- 可以使用各种视图技术,而不仅仅局限于JSP
- 支持各种请求资源的映射策略
- 它应是易于扩展的
SpringMVC的控制器是不是单例模式,如果是,有什么问题?
是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的
SpringMVC怎么样设定重定向和转发的?
- 在返回值前面加"forward:"可以让结果转发
- 在返回值前面加"redirect:"可以让结果重定向。
SpringMVC中有个类把视图和数据都合并的一起的,叫什么?
ModelAndView
什么叫RBAC?如何设计表?
- 基于角色的访问访问控制的一个思想,一种数据库设计思想.在具有权限的项目中应该如何去设计数据库模型。
- 角色表、用户表、菜单表、用户角色关联表、角色菜单关联表
拦截器执行顺序:假设先配置A后配置B拦截器
A.preHandle--> B.preHandler-->控制器-->B.postHandler--> A.posthandle-->JSP -->B.aftercompletion--> A afterCompletion
SpringMVC有哪些常用注解
- @Controller
- 标记的类就是一个SpringMVC Controller 对象
- @RequestMapping
- 用来处理请求地址映射的注解
@RequestMapping(value = "/testUrl", method = RequestMethod.GET)
public String testUrl( String value) {
System.out.println("testUrl:" + value);
return null;
}
上面@RequestMapping(value = "/testUrl", method = RequestMethod.GET)
可以改为@PostMapping(value = "/testUrl")
- @Autowired
- 做bean的注入时使用
- @RequestParam
- @RequestParam用于将请求参数区数据映射到功能处理方法的参数上
@RequestMapping(value = "/testUrl", method = RequestMethod.GET)
public String testUrl(@RequestParam("value") String value) {
System.out.println("testUrl:" + value);
return null;
}
- @ResponseBody
- 该注解用于将Controller的方法返回的对象
SpringMVC运行原理
当用户发送请求后被DispatcherSevlet进行分发,然后转交给HandlerMapping进行验证格式是否合法,如果不合法报异常,如果合法向下传递交给HandlerAdapter准备调用某个Controller,Controller在进入之前一般都需要执行HandlerInterceptor拦截器的preHandle()方法,判断是否可以调用Controller.如果可以调用才能进入Controller,当Controller执行完成后再次进入拦截的postHandle验证传递内容是否合法,如果合法交给ViewResovler视图解析器调用具体的View视图资源.调用成功后再次进入拦截器的afterCompletion做最后验证,如果一切正确,响应给客户端.
网友评论