码迷,mamicode.com
首页 > 编程语言 > 详细

Spring MVC面试整理

时间:2017-11-15 00:25:28      阅读:16      评论:0      收藏:0      [点我收藏+]

标签:action   eth   ppi   传递数据   路径名   规则   hand   参数绑定   对象   

  1. Spring MVC执行过程

    1. 客户端的请求提交到dispatcherServlet

    2. DispatcherServlet查询一个或者多个handlermapping ,找请求的Controller

    3. DispatcherServlet将请求提交给Controller, Controller调用完毕后返回modelAndView

    4. DispatcherServlet查询一个或多个对应的前端控制器,将modelAndView传递给指定的前端控制器

    5. 将渲染完的视图返回给客户端

  2. SpringMVC的Controller为单例的尽量不要设置属性,而是在方法中

  3. @RequestMapping注解用在类上面代表该类方法的父路径

  4. SpringMVC与Struts2的主要区别

    • SpringMVC的前端控制器为一个Servlet 而Struts为Filter

    • SpringMVC的Controller为单例,而Struts2的Action为多例

    • SpringMVC是通过将request中的内容解析为形参,将相应和页面封装为Modelandview对象,struts2是采用值栈来存储请求和相应

  5. SpringMVC的拦截器

    • 类实现接口HandlerInterceptor,实现方法,方法分别对应方法执行前 , 执行后 , 页面渲染后

    • 然后在配置文件中配置拦截器

    • 多个拦截器一起执行的时候preHandler按照配置的顺序执行,剩下的两个拦截器都要在preHandler返回为True时才能执行.

    • postHandler和afterCompletion按照配置顺序的逆序调用

  6. json

    • @ResponseBody 输出json

    • @requestbody 接受json 转化为pojo

  7. 上传文件

    • 前端规则

    • 在配置文件中配置多媒体

    • 在Controller中用MultipartFile来接受文件

  8. 三大组件和核心

    • 核心 : DispatcherServlet(前端控制器)

    • 三大组件 :

    • ViewResolver : 视图解析器()

    • HandlerMapping : 处理器映射器组件(查找路径名对应的Handler)

    • HandlerAdapter : 处理器适配器组件(执行Handler)

  9. 主要的注解

    • @requestmapping() // 方法的访问路径value,method=post 限制请求的方式为get/post

    • @Controller

    • @ResponseBody

    • @RequestBody

    • @

  10. 拦截规则

    • /* 拦截所有,包括jsp

    • / 拦截除了jsp以外的资源

  11. Controller的返回值

    • ModelAndView : 返回视图和参数

    • Model : 在方法中传递Model,返回值为String , 直接return 视图

    • Void : 什么也不反回

  12. 重定向和请求转发

    • 在路径前面添加关键字 return ‘redirect:/item/itemlist.action‘ return ‘forward:/item/itemlist.action‘
  13. 参数绑定

    • public ModelAndView toEdit(Integer id,HttpServletRequest request,HttpServletResponse response,HttpSession session)
  14. 异常处理

    • 继承HandlerExceptionResolver 实现对应的方法,对错误进行处理

    • springmvc配置<bean class="com.lyh.exception.CustomerException"></bean>

  15. 拦截提交参数中包含"type=test"字符串

    • 可以在@RequestMapping注解里面加上params="type=test"
  16. SpringMvc用什么对象从后台向前台传递数据的

    • 通过ModelMap对象,可以在这个对象里面用put方法,把对象加到里面,前台就可以通过el表达式拿到
  17. 怎么样把ModelMap里面的数据放入Session里面

  18. SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决

    • 是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的,解决方案是在控制器里面不能写字段

Spring MVC面试整理

标签:action   eth   ppi   传递数据   路径名   规则   hand   参数绑定   对象   

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!