撩课-Java每天5道面试题第23天
146、什么是Spring MVC ?简单介绍下你对springMVC的理解?
- Spring MVC是一个基于MVC架构的
- 用来简化web应用程序开发的应用开发框架,
- 它是Spring的一个模块,
- 无需中间整合层来整合 ,
- 它和Struts2一样都属于表现层的框架。
- 在web模型中,
- MVC是一种很流行的框架,
- 通过把Model,View,Controller分离,
- 把较为复杂的web应用分成逻辑清晰的几部分,
- 简化开发,减少出错,
- 方便组内开发人员之间的配合。
147、SpringMVC的流程?
- ()用户发送请求至前端控制器DispatcherServlet;
- () DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle;
- ()处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;
- ()DispatcherServlet通过HandlerAdapter处理器适配器调用处理器;
- ()执行处理器(Handler,也叫后端控制器);
- ()Handler执行完成返回ModelAndView;
- ()HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet;
- ()DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析;
- ()ViewResolver解析后返回具体View;
- ()DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)
- ()DispatcherServlet响应用户。
148.Springmvc的优点:
- .它是基于组件技术的。
- 全部的应用对象,无论控制器和视图,
- 还是业务对象之类的都是 java组件.
- 并且和Spring提供的其他基础结构紧密集成.
- .不依赖于Servlet API(目标虽是如此,
- 但是在实现的时候确实是依赖于Servlet的)
- .可以任意使用各种视图技术,
- 而不仅仅局限于JSP
- .支持各种请求资源的映射策略
- .它应是易于扩展的
149.Spring MVC的有哪些主要组键?
- .前端控制器 DispatcherServlet(不需要程序员开发)
- 作用:接收请求、响应结果 相当于转发器,
- 有了DispatcherServlet
- 就减少了其它组件之间的耦合度。
- .处理器映射器HandlerMapping(不需要程序员开发)
- 作用:根据请求的URL来查找Handler
- .处理器适配器HandlerAdapter
- 注意:在编写Handler的时候要按照
- HandlerAdapter要求的规则去编写,
- 这样适配器HandlerAdapter
- 才可以正确的去执行Handler。
- .处理器Handler(需要程序员开发)
- .视图解析器 ViewResolver(不需要程序员开发)
- 作用:进行视图的解析 根据视图逻辑名解析成真正的视图(view)
- .视图View(需要程序员开发jsp)
- View是一个接口,
- 它的实现类支持不同的视图类型
- (jsp,freemarker,pdf等等)
150、springMVC和struts2的区别有哪些?
- .springmvc的入口是一个servlet即前端控制器(DispatchServlet),
- 而struts2入口是一个filter过虑器(StrutsPrepareAndExecuteFilter)。
- .springmvc是基于方法开发(一个url对应一个方法),
- 请求参数传递到方法的形参,
- 可以设计为单例或多例(建议单例),
- struts2是基于类开发,
- 传递参数是通过类的属性,
- 只能设计为多例。
- .Struts采用值栈存储请求和响应的数据,
- 通过OGNL存取数据,
- springmvc通过参数解析器是将request请求内容解析,
- 并给方法形参赋值,
- 将数据和视图封装成ModelAndView对象,
- 最后又将ModelAndView中的模型数据
- 通过reques域传输到页面。
- Jsp视图解析器默认使用jstl。
撩课-Java每天5道面试题第23天的更多相关文章
- 撩课-Java每天5道面试题第13天
撩课Java+系统架构点击开始学习 96.JDBC操作数据库的步骤 ? .加载数据库驱动 .创建并获取数据库链接 .创建jdbc statement对象 .设置sql语句 .设置sql语句中的参数(使 ...
- 撩课-Java每天5道面试题第15天
撩课Java+系统架构点击开始学习 106.什么是Hibernate的并发机制?怎么去处理并发问题? a.Hibernate的Session对象是非线程安全的, 对于单个请求,单个会话, 单个的工作单 ...
- 撩课-Java每天5道面试题第10天
撩课Java+系统架构 视频 点击开始学习 81.Servlet的会话机制? HTTP 是一种无状态协议, 这意味着每次客户端检索网页时, 都要单独打开一个服务器连接, 因此服务器不会记录下 先前客户 ...
- 撩课-Java每天5道面试题第9天
撩课Java+系统架构 视频 点击开始学习 76.XML技术的作用? XML技术用于数据存储. 信息配置. 数据交换三方面. 可以将数据存储在XML中, 通过节点. 元素内容. 属性标示数据内容及关系 ...
- 撩课-Java每天5道面试题第8天
撩课Java+系统架构 视频 点击开始学习 71.jsp有哪些内置对象?作用分别是什么? Page, pageContext, request, response, session, applicat ...
- 撩课-Java每天10道面试题第7天
撩课Java+系统架构 视频 点击开始学习 61.什么是并发修改异常? 什么是并发修改异常: 当我们在遍历实现了collection接口 与iterator接口的集合时(List.Set.Map), ...
- 撩课-Java每天10道面试题第4天
撩课Java+系统架构 视频 点击开始学习 31.静态变量和实例变量的区别? 静态变量也叫类变量, 这种变量前加了static修饰符. 可以直接用类名调用, 也可以用对象调用, 而且所有对象的同一个类 ...
- 撩课-Java每天5道面试题第17天
116.说下Struts的设计模式 MVC模式: web应用程序启动时 就会加载并初始化ActionServler. 用户提交表单时, 一个配置好的ActionForm对象被创建, 并被填入表单相应的 ...
- 撩课-Java每天5道面试题第24天
151.springMVC和struts2的区别有哪些? .springmvc的入口是一个servlet即前端控制器(DispatchServlet), 而struts2入口是一个filter过虑器( ...
随机推荐
- python 发qq邮件
import smtplibfrom email.mime.text import MIMETextmsg_from = '979477675@qq.com' # 发送方邮箱passwd = 'irg ...
- 用 TensorFlow 实现 k-means 聚类代码解析
k-means 是聚类中比较简单的一种.用这个例子说一下感受一下 TensorFlow 的强大功能和语法. 一. TensorFlow 的安装 按照官网上的步骤一步一步来即可,我使用的是 virtua ...
- Python小白学习之路(二十)—【打开文件的模式二】【文件的其他操作】
打开文件的模式(二) 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码.图片文件的jgp格 ...
- 【xsy1172】 染色 dp
题目大意:现有$n$条排成一行的木板,每个木板有一个目标颜色.你每次能将一个区间内的木板分别染成它们的目标颜色,而这次染色的代价为这个区间内不同目标颜色的木板的数量的平方.问将全部木板染成目标颜色的最 ...
- 堆排序(最大堆)的理解和实现(Java)
堆的定义 堆是具有下列性质的完全二叉树:每个节点的值都大于或等于其左右孩子节点的值,称为大顶堆:或者每个节点的值都小于或等于其左右孩子的值,称为小顶堆.如下图举例: 通过堆的定义可知,根节点一定是对中 ...
- 理解JavaScript的数值型数据类型
分享一些在JavaScript中遇到的一些实用的技巧. 理解JavaScript的数值型数据类型 JavaScript的数值型数据类型只有一种:number.即不管是整数还是浮点数,JavaScrip ...
- LFR benchmark graphs 人工网络生成程序
人工网络生成程序,可在CSDN上免费下载 或者科学网这边也可以下载 参数 • n: number of vertices;• k: average degree;• maxk: maximum deg ...
- 7.xamarin.android 发布签名与控制apk大小
概述 做了xamarin android 后大家想打包一个apk,发布给其他人使用本章我们将带领大家如何打包签名一个apk. 打包 对于VS2017 或者是VS MAC来说打包一个APK非常简单. 首 ...
- jenkins自动部署tomcat
关于部署的3种思路: 远程部署(jenkins编译部署到远程服务器): 安装ssh插件 ssh插件配置 添加远程jenkins服务器节点: 本地部署(与jenkins在同一服务器): 关于maven构 ...
- mongodb-手写mongoclient加入到springmvc中
由于一个项目使用的是springmvc3.x版本, mongodb使用的为3.x版本, 所以springmvc继承的mongodb-data并不可用, 只能自己手写一个mongoclient并加入到s ...