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没有值栈的概念,Struts有值栈

      • SpringMVC是方法参数绑定,而Struts是属性绑定
  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里面

    • 可以在类上面加上@SessionAttributes注解,里面包含的字符串就是要放入session里面的key
  18. SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决

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

Spring MVC面试整理的更多相关文章

  1. Spring MVC面试复习整理

    Spring MVC Spring MVC 是Spring Framework 提供的 web 组件 它的实现基于 MVC 的设计模式:Model(模型层).View(视图层).Controller( ...

  2. 从一个简单案例上手Spring MVC,同时分析Spring MVC面试问题

    很多公司都会用Spring MVC,而且初级程序员在面试时,一定会被问到这方面的问题,所以这里我们来通过一个简单的案例来分析Spring MVC,事实上,我们在培训中就用这个举例,很多零基础的程序员能 ...

  3. Spring MVC知识点整理

    网上Spring MVC相关知识点的介绍已经有很多了,但是大部分文章都是介绍其中的一部分知识点. 本文希望能够向读者做一个基本整体的介绍,首先我们先来了解下Spring MVC的基础接口和组件.   ...

  4. Spring mvc 面试

    Spring工作原理及其作用 1.springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作. 2.DispatcherSer ...

  5. spring MVC 异常处理整理

    一.异常结构 1.异常由外到内如下: web服务器处理异常--->web应用里面web.xml处理异常--->Spring框架处理异常---->控制器注释处理异常--->控制器 ...

  6. Spring MVC 知识点整理

    extend:http://www.jianshu.com/p/bef0e52067d2 1. Redis 存储方式 Redis存储机制分成两种Snapshot 和 AOF.无论是那种机制,Redis ...

  7. spring mvc 注解整理(一)

    @Controller和@RestController: RestController = @ResponseBody + @Controller  所有返回都是json类型,无法跳转到jsp页面,但 ...

  8. 面试简单整理之spring、spring mvc

    90.为什么要使用 spring? 解决企业应用开发的复杂性,IOC.aop 91.解释一下什么是 aop? 面向切面编程.... 92.解释一下什么是 ioc? 控制反转.. 93.spring 有 ...

  9. Spring MVC接收参数(Map,List,JSON,Date,2个Bean)(记录一次面试惨状)

    题目Spring MVC 接收参数 MapListDate2个BeanJSON Spring MVC接收参数 -Map Spring MVC接收参数 -List Spring MVC接收参数 -dat ...

随机推荐

  1. rails命令行命令

    x.指定端口启动rails项目 ruby script/server webrick -p 3000 ------------------------------------------------- ...

  2. nodejs文件上传组件multer使用

    多图上传,发送端: var express = require('express') var rp = require('request-promise') var fs = require(&quo ...

  3. SparkGraphx计算指定节点的N度关系节点

    直接上代码: package horizon.graphx.util import java.security.InvalidParameterException import horizon.gra ...

  4. HDU 1757 矩阵求第n的递推式

    A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  5. UVA 562(01背包)

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=s ...

  6. sql:Mysql create view,function,procedure

    create database Liber; use Liber; #顯示數据庫 20150210 Geovin Du 涂聚文 SHOW DATABASES; drop table BookKindL ...

  7. 新安装的Apache和php,测试可以解析phpinfo,但是无法打开drupal网站

    没有去掉php.ini中mysql相关的一些扩展的注释

  8. css中小知识点总结

    rgba:即rgb+a, a为图片透明度,a范围是0~1,越小就表示越透明 :hover 即鼠标悬停时改变样式,不仅仅能用在a元素上. <form>标签表示向浏览器提交表单,一般会包裹着输 ...

  9. C++学习笔记(8)----C++类的大小

    C++类的大小 (i) 如下代码: #include<iostream> using namespace std; class CBase { }; class CDerive :publ ...

  10. Android Editable

    在android的sdk中有讲,“This is the interface for text whose content and markup can be changed (as opposed ...