146、什么是Spring MVC ?简单介绍下你对springMVC的理解?

  1. Spring MVC是一个基于MVC架构的
  2. 用来简化web应用程序开发的应用开发框架,
  3. 它是Spring的一个模块,
  4. 无需中间整合层来整合
  5. 它和Struts2一样都属于表现层的框架。
  6. web模型中,
  7. MVC是一种很流行的框架,
  8. 通过把ModelViewController分离,
  9. 把较为复杂的web应用分成逻辑清晰的几部分,
  10. 简化开发,减少出错,
  11. 方便组内开发人员之间的配合。

147、SpringMVC的流程?

  1. ()用户发送请求至前端控制器DispatcherServlet
  2. () DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle
  3. ()处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet
  4. ()DispatcherServlet通过HandlerAdapter处理器适配器调用处理器;
  5. ()执行处理器(Handler,也叫后端控制器);
  6. ()Handler执行完成返回ModelAndView
  7. ()HandlerAdapterHandler执行结果ModelAndView返回给DispatcherServlet
  8. ()DispatcherServletModelAndView传给ViewResolver视图解析器进行解析;
  9. ()ViewResolver解析后返回具体View
  10. ()DispatcherServletView进行渲染视图(即将模型数据填充至视图中)
  11. ()DispatcherServlet响应用户。

148.Springmvc的优点:

  1. .它是基于组件技术的。
  2. 全部的应用对象,无论控制器和视图,
  3. 还是业务对象之类的都是 java组件.
  4. 并且和Spring提供的其他基础结构紧密集成.
  5.  
  6. .不依赖于Servlet API(目标虽是如此,
  7. 但是在实现的时候确实是依赖于Servlet的)
  8.  
  9. .可以任意使用各种视图技术,
  10. 而不仅仅局限于JSP
  11.  
  12. .支持各种请求资源的映射策略
  13.  
  14. .它应是易于扩展的

149.Spring MVC的有哪些主要组键?

  1. .前端控制器 DispatcherServlet(不需要程序员开发)
  2.  
  3. 作用:接收请求、响应结果 相当于转发器,
  4. 有了DispatcherServlet
  5. 就减少了其它组件之间的耦合度。
  6.  
  7. .处理器映射器HandlerMapping(不需要程序员开发)
  8.  
  9. 作用:根据请求的URL来查找Handler
  10.  
  11. .处理器适配器HandlerAdapter
  12.  
  13. 注意:在编写Handler的时候要按照
  14. HandlerAdapter要求的规则去编写,
  15. 这样适配器HandlerAdapter
  16. 才可以正确的去执行Handler
  17.  
  18. .处理器Handler(需要程序员开发)
  19.  
  20. .视图解析器 ViewResolver(不需要程序员开发)
  21.  
  22. 作用:进行视图的解析 根据视图逻辑名解析成真正的视图(view
  23.  
  24. .视图View(需要程序员开发jsp
  25.  
  26. View是一个接口,
  27. 它的实现类支持不同的视图类型
  28. jspfreemarkerpdf等等)

150、springMVC和struts2的区别有哪些?

  1. .springmvc的入口是一个servlet即前端控制器(DispatchServlet),
  2. struts2入口是一个filter过虑器(StrutsPrepareAndExecuteFilter)。
  3.  
  4. .springmvc是基于方法开发(一个url对应一个方法),
  5. 请求参数传递到方法的形参,
  6. 可以设计为单例或多例(建议单例),
  7. struts2是基于类开发,
  8. 传递参数是通过类的属性,
  9. 只能设计为多例。
  10.  
  11. .Struts采用值栈存储请求和响应的数据,
  12. 通过OGNL存取数据,
  13. springmvc通过参数解析器是将request请求内容解析,
  14. 并给方法形参赋值,
  15. 将数据和视图封装成ModelAndView对象,
  16. 最后又将ModelAndView中的模型数据
  17. 通过reques域传输到页面。
  18. Jsp视图解析器默认使用jstl

撩课-Java每天5道面试题第23天的更多相关文章

  1. 撩课-Java每天5道面试题第13天

    撩课Java+系统架构点击开始学习 96.JDBC操作数据库的步骤 ? .加载数据库驱动 .创建并获取数据库链接 .创建jdbc statement对象 .设置sql语句 .设置sql语句中的参数(使 ...

  2. 撩课-Java每天5道面试题第15天

    撩课Java+系统架构点击开始学习 106.什么是Hibernate的并发机制?怎么去处理并发问题? a.Hibernate的Session对象是非线程安全的, 对于单个请求,单个会话, 单个的工作单 ...

  3. 撩课-Java每天5道面试题第10天

    撩课Java+系统架构 视频 点击开始学习 81.Servlet的会话机制? HTTP 是一种无状态协议, 这意味着每次客户端检索网页时, 都要单独打开一个服务器连接, 因此服务器不会记录下 先前客户 ...

  4. 撩课-Java每天5道面试题第9天

    撩课Java+系统架构 视频 点击开始学习 76.XML技术的作用? XML技术用于数据存储. 信息配置. 数据交换三方面. 可以将数据存储在XML中, 通过节点. 元素内容. 属性标示数据内容及关系 ...

  5. 撩课-Java每天5道面试题第8天

    撩课Java+系统架构 视频 点击开始学习 71.jsp有哪些内置对象?作用分别是什么? Page, pageContext, request, response, session, applicat ...

  6. 撩课-Java每天10道面试题第7天

    撩课Java+系统架构 视频 点击开始学习 61.什么是并发修改异常? 什么是并发修改异常: 当我们在遍历实现了collection接口 与iterator接口的集合时(List.Set.Map), ...

  7. 撩课-Java每天10道面试题第4天

    撩课Java+系统架构 视频 点击开始学习 31.静态变量和实例变量的区别? 静态变量也叫类变量, 这种变量前加了static修饰符. 可以直接用类名调用, 也可以用对象调用, 而且所有对象的同一个类 ...

  8. 撩课-Java每天5道面试题第17天

    116.说下Struts的设计模式 MVC模式: web应用程序启动时 就会加载并初始化ActionServler. 用户提交表单时, 一个配置好的ActionForm对象被创建, 并被填入表单相应的 ...

  9. 撩课-Java每天5道面试题第24天

    151.springMVC和struts2的区别有哪些? .springmvc的入口是一个servlet即前端控制器(DispatchServlet), 而struts2入口是一个filter过虑器( ...

随机推荐

  1. python 发qq邮件

    import smtplibfrom email.mime.text import MIMETextmsg_from = '979477675@qq.com' # 发送方邮箱passwd = 'irg ...

  2. 用 TensorFlow 实现 k-means 聚类代码解析

    k-means 是聚类中比较简单的一种.用这个例子说一下感受一下 TensorFlow 的强大功能和语法. 一. TensorFlow 的安装 按照官网上的步骤一步一步来即可,我使用的是 virtua ...

  3. Python小白学习之路(二十)—【打开文件的模式二】【文件的其他操作】

    打开文件的模式(二) 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码.图片文件的jgp格 ...

  4. 【xsy1172】 染色 dp

    题目大意:现有$n$条排成一行的木板,每个木板有一个目标颜色.你每次能将一个区间内的木板分别染成它们的目标颜色,而这次染色的代价为这个区间内不同目标颜色的木板的数量的平方.问将全部木板染成目标颜色的最 ...

  5. 堆排序(最大堆)的理解和实现(Java)

    堆的定义 堆是具有下列性质的完全二叉树:每个节点的值都大于或等于其左右孩子节点的值,称为大顶堆:或者每个节点的值都小于或等于其左右孩子的值,称为小顶堆.如下图举例: 通过堆的定义可知,根节点一定是对中 ...

  6. 理解JavaScript的数值型数据类型

    分享一些在JavaScript中遇到的一些实用的技巧. 理解JavaScript的数值型数据类型 JavaScript的数值型数据类型只有一种:number.即不管是整数还是浮点数,JavaScrip ...

  7. LFR benchmark graphs 人工网络生成程序

    人工网络生成程序,可在CSDN上免费下载 或者科学网这边也可以下载 参数 • n: number of vertices;• k: average degree;• maxk: maximum deg ...

  8. 7.xamarin.android 发布签名与控制apk大小

    概述 做了xamarin android 后大家想打包一个apk,发布给其他人使用本章我们将带领大家如何打包签名一个apk. 打包 对于VS2017 或者是VS MAC来说打包一个APK非常简单. 首 ...

  9. jenkins自动部署tomcat

    关于部署的3种思路: 远程部署(jenkins编译部署到远程服务器): 安装ssh插件 ssh插件配置 添加远程jenkins服务器节点: 本地部署(与jenkins在同一服务器): 关于maven构 ...

  10. mongodb-手写mongoclient加入到springmvc中

    由于一个项目使用的是springmvc3.x版本, mongodb使用的为3.x版本, 所以springmvc继承的mongodb-data并不可用, 只能自己手写一个mongoclient并加入到s ...