点击蓝字

关注我们

最近面试时,每家公司的必问题,今日作此分享,如有更好的解决方案或者存在错误,还请指正。

Q1

什么是 SpringMvc?

SpringMvc 是 spring 的一个模块,基于 MVC 的一个框架,无需中间整合层来整合。

Q2

普查对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 响应用户。

Q3

Spring MVC 的优点?

  1. 它是基于组件技术的.全部的应用对象,无论控制器和视图,还是业务对象之类的都是 java 组件.并且和 Spring 提供的其他基础结构紧密集成.

  2. 不依赖于 Servlet API(目标虽是如此,但是在实现的时候确实是依赖于 Servlet 的

  3. 可以任意使用各种视图技术,而不仅仅局限于 JSP

  4. 支持各种请求资源的映射策略

  5. 它应是易于扩展的

Q4

SpringMVC 工作原理?

  1. 客户端发送请求到 DispatcherServlet

  2. DispatcherServlet 查询 handlerMapping 找到处理请求的 Controller

  3. Controller 调用业务逻辑后,返回 ModelAndView

  4. DispatcherServlet 查询 ModelAndView,找到指定视图

  5. 视图将结果返回到客户端

Q5

怎么样把某个请求映射到特定的方法上面?

直接在方法上面加上注解@RequestMapping,并且在这个注解里面写上要拦截的路径

Q6

SpringMVC 怎么样设定重定向和转发的?(如何理解重定向和转发)

在返回值前面加"forward:"就可以让结果转发,譬如"forward:user.do?name=method4" 在 返回值前面加"redirect:"就可以让返回值重定向,譬如"redirect:http://www.baidu.com"

Q7

简单介绍下 springMVC 和 struts2 的区别有哪些?

  1. springmvc 的入口是一个 servlet 即前端控制器,而 struts2 入口是一个 filter 过虑器。

  2. springmvc 是基于方法开发,请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2 是基于类开发,传递参数是通过类的属性,只能设 计为多例。

  3. Struts 采用值栈存储请求和响应的数据,通过 OGNL 存取数据,springmvc 通过参数解 析器是将 request 请求内容解析,并给方法形参赋值,将数据和视图封装成 ModelAndView 对象,最后又将 ModelAndView 中的模型数据通过 reques 域传输到页面。Jsp 视图解析器默 认使用 jstl。

Q8

什么是 Spring 的 MVC 框架?

Spring 配备构建 Web 应用的全功能 MVC 框架。Spring 可以很便捷地和其他 MVC Spring 配备构建 Web 应用的全功能 MVC 框架。Spring 可以很便捷地和其他 MVC 框架集成,如 Struts,Spring 的 MVC 框架用控制反转把业务对象和控制逻辑清晰 地隔离。它也允许以声明的方式把请求参数和业务对象绑定

Q9

SpringMvc 里面拦截器是怎么写的?

有两种写法,一种是实现接口,另外一种是继承适配器类,然后在 SpringMvc 的配置文件中 配置拦截器即可:

<mvc:interceptors>    <bean id="myInterceptor" class="com.et.action.MyHandlerInterceptor">bean>    <mvc:interceptor>  <mvc:mapping path="/modelMap.do" />  <bean class="com.et.action.MyHandlerInterceptorAdapter" />  mvc:interceptor>mvc:interceptors>

Q10

@RequestMapping 注解用在类上面有什么作用?

是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所 有响应请求的方法都是以该地址作为父路径

往期推荐

数据库相关问题面试小结

今日随笔-oracle小记(一)

今日随笔——oracle小记(二)

扫码关注我们

微信号|dx_amber

程序媛懂你的心

springmvc如何使用视图解析器_SpringMVC相关面试题相关推荐

  1. springmvc如何使用视图解析器_SpringMVC的工作原理

    SpringMVC的工作原理图: SpringMVC流程 1. 用户发送请求至前端控制器DispatcherServlet. 2. DispatcherServlet收到请求调用HandlerMapp ...

  2. springmvc如何使用视图解析器_SpringMVC工作原理

    SpringMVC工作原理图: SpringMVC流程 1. 用户发送请求至前端控制器DispatcherServlet. 2. DispatcherServlet收到请求调用HandlerMappi ...

  3. springmvc多个视图解析器管理跳转资源

    springmvc多个视图解析器管理跳转资源 项目结构 第一步:将所有资源交由springmvc管理 <servlet><servlet-name>springmvc</ ...

  4. java 视图解析器_SpringMVC——视图和视图解析器

    请求处理方法执行完成后,最终返回一个 ModelAndView对象.对于那些返回 String,View 或 ModeMap 等类型的处理方法,Spring MVC 也会在内部将它们装配成一个Mode ...

  5. jsp springmvc 视图解析器_springMVC配置jsp/html视图解析器

    1.maven项目引入freemark相关jar包 freemaker是以个模板引擎,可以根据提供的数据和创建好的模板,去自动的创建html静态页面.所以在返回html视图时可以用这个引擎结合数据生成 ...

  6. jsp springmvc 视图解析器_Springmvc中多视图解析器解析问题

    最近被问到过几次关于springmvc多视图解析器解析的问题:总结一下. 1.问题: 假设我有两个jsp: WEB-INF/html/a.jsp WEB-INF/report/b.jsp 且我配置了视 ...

  7. jsp springmvc 视图解析器_SpringMVC学习笔记

    Springmvc springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合. springmvc是一个基于mvc的web框架. 基本概念和执行过程 ...

  8. springmvc视图解析器_SpringMVC视图及REST风格

    什么是视图解析器? springMVC用于处理视图最重要的两个接口是ViewResolver和View. ViewResolver的主要作用是把一个逻辑上的视图名称解析成一个真的的视图,而Spring ...

  9. jsp springmvc 视图解析器_SpringMVC工作原理

    SpringMVC的工作原理图: SpringMVC流程 1. 用户发送请求至前端控制器DispatcherServlet. 2. DispatcherServlet收到请求调用HandlerMapp ...

最新文章

  1. 微信第 1 行代码曝光,简陋到让你怀疑人生!
  2. cocos2d-x 打包成so文件之后,假设出现错误,能够使用ndk-stack来查看里面的异常...
  3. Nginx深入详解之模块化体系结构
  4. python递归查询并列出目录
  5. clojure with postgres
  6. APP、智能设备、平台账号等信息系统,实现无密码登录的可行性方案。
  7. CSS3 圆角 border-radius属性
  8. UI设计灵感|如何将数据摆放得整整齐齐?
  9. html语言的前景,HTML5语言的优势有哪些?2021年还有前景么?
  10. 系统动力学软件vensim学习之lookup
  11. LibreELEC 10.0.2发布
  12. matlab如何画tanx图像,MATLAB画出sinx cosx tanx 图像
  13. 【正点原子FPGA连载】 第二十三章 EEPROM读写测试实验-摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
  14. 七大江河水系--海河
  15. 安卓手机兼职教程,下载应用试玩,每天2小时50块
  16. 联想R720使用kali安装NVIDIA显卡驱动
  17. 基于HTML5 Canvas实现黑白滤镜
  18. 计算机与代数---如何计算sqrt---方法和实现
  19. php编译安装, 编译安装nginx, yum安装nginx, nginx虚拟主机,默认虚拟主机
  20. GSM与PHS空中接口有什么相同?

热门文章

  1. 用反汇编理解指向指针的指针
  2. LibreOJ #6001. 「网络流 24 题」太空飞行计划 最大权闭合图
  3. 【3-16】数据库基本编程语句,存储过程,触发器
  4. ios模拟器键盘不弹出
  5. WPF中MVVM模式(简略介绍)
  6. PowerDesigner初体验
  7. [导入]视频游戏开发系列课程(8):开始创造游戏的“精灵”的行为.zip(14.93 MB)
  8. 检验密码强度的JS类(from thin's blog)
  9. 解决pip2安装不成功的问题
  10. MinGW找不到Gcc的解决方法