Spring MVC面试整理

  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里面
    • 可以在类上面加上@SessionAttributes注解,里面包含的字符串就是要放入session里面的key
  18. SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决
    • 是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的,解决方案是在控制器里面不能写字段
时间: 2024-10-09 17:53:21

Spring MVC面试整理的相关文章

Spring MVC基础知识整理?View与Controller数据交互

概述 Spring MVC是由View—Controller—Model组成,其中View和Controller的数据交互,成为了关注的核心点.MVC中,我们将View中的数据传递到Controller,可以采用POST或者Get,传递相应的参数.Controller通过绑定来,匹配前台传递的参数.后台Controller也可以将值传递到前台页面. View值传递Controller 绑定传值的常用方式有如下 @RequestParam,绑定单个请求数据,可以是URL中的数据,表单提交的数据或上

Spring、Spring MVC、Struts2、、优缺点整理(转)

Spring 及其优点 大部分项目都少不了spring的身影,为什么大家对他如此青睐,而且对他的追捧丝毫没有减退之势呢 Spring是什么: Spring是一个轻量级的DI和AOP容器框架. 说它轻量级有一大部分原因是相对与EJB的(虽然本人从没有接触过EJB的应用),重要的是,Spring是非侵入式的,基于spring开发的应用一般不依赖于spring的类.   DI:称作依赖注入(Dependency Injection),和控制反转一个概念,具体的讲,当一个角色需要另外一个角色协助的时候,

Spring MVC 整理

配置文件: <context:component-scan/>:扫描指定的包中的类上的注解注册为JavaBean容器中的Bean <mvc:annotation-driven />:自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的.(是一种简写形式,完全可以手动配置) <mvc:interceptors/> 

Spring MVC基础知识整理?Spring+SpringMVC+Hibernate整合操作数据库

概述 Hibernate是一款优秀的ORM框架,能够连接并操作数据库,包括保存和修改数据.Spring MVC是Java的web框架,能够将Hibernate集成进去,完成数据的CRUD.Hibernate使用方便,配置响应的XML文件即可.由于spring3.x,基于asm的某些特征,而这些asm还没有用jdk8编译,所以采用Spring 3+JDK8就会报错,提示错误信息( java.lang.IllegalArgumentException),具体解决方案有:1.Spring 3+JDK7

Spring MVC基础知识整理?国际化和异常处理

概述 Spring框架为WEB项目提供了国际化以及异常处理机制.所谓的国际化也就是不同国籍,显示不同国籍的语言与符号.异常处理,也就是能够捕获WEB项目下的所有异常信息,并能处理记录这些异常信息机制. 国际化 Spring对国际化的语言采用配置的方式存储到配置文件中,在springservletconfig.xml文件,添加下面语句: <bean id="messageSource" class="org.springframework.context.support.

Struts2和Spring MVC 区别 今天面试被问到了

虽然说没有系统的学习过Spring MVC框架, 但是工作这么长时间, 基本上在WEB层使用的都是Spring MVC, 自己觉得Struts2也是一个不错的WEB层框架, 这两种框架至今自己还未有比较, 今天闲着没事干, 从网上找了一些资料, 再加上平时使用Spring MVC的感触来总结一下. Spring MVC PK Struts2 我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置.spring3 mvc可以认为已经100%零配置了(除了配置spring mvc

Spring MVC 相关资料整理

来源于:http://www.cnblogs.com/ylhssn/p/4062757.html 1.概述 Spring MVC是一种基于Java实现MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行解耦,基于请求-响应模型帮助我们简化日常web系统的开发. Spring MVC框架就是一种MVC框架.其前端控制器是DispatcherServlet主要用于控制流程:应用控制器为Handler Mapping-处理器映射器进行处理器管理和View Res

笔记之_Java整理Spring MVC

springMVC原理讲解地址:http://www.cnblogs.com/dragonfei/p/6148625.html Ionic2和angularjs2和angularjs和nosql菜鸟教程一起是做手机的 https://www.bilibili.com/video/av8614724/index_10.html是ionic2公开课地址 FreeCMS DeDeCMS风信网,数据库表结构 DEDECMS简单建站 Filter和Interceptor的区别 Filter是基于函数回调的

Java面试之Spring/Spring MVC

90. 为什么要使用 spring? spring 提供 ioc 技术,容器会帮你管理依赖的对象,从而不需要自己创建和管理依赖对象了,更轻松的实现了程序的解耦. spring 提供了事务支持,使得事务操作变的更加方便. spring 提供了面向切片编程,这样可以更方便的处理某一类的问题. 更方便的框架集成,spring 可以很方便的集成其他框架,比如 MyBatis.hibernate 等. aop 是面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术. 简单来说就是统