撩课-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过虑器( ...
随机推荐
- fedora 国内源
wget http://mirrors.163.com/.help/fedora-163.repowget http://mirrors.163.com/.help/fedora-updates-16 ...
- centos6.2 下安装并配置hadoop1.0.4(32位安装)
一,环境准备 1. 集群内所有电脑需要设置防火墙,下面以master为例说明: 切换到root用户下,执行setup指令:
- 日志分析与splunk浅谈
难易程度:★★★ 阅读点:linux;python;web安全;日志分析; 文章作者:xiaoye 文章来源:i春秋 关键字:网络渗透技术 前言 linux下的日志分析对企业来说非常重要,对我们分析p ...
- position:absolute;宽度自适应
http://blog.csdn.net/isaisai/article/details/45640515 设置left:0,right:0
- Flask从入门到精通之MySQL数据库操作
前面的章节中我们已经学习了如何建立模型和关系,接下来我们学习如何使用模型的最好方法是在Python shell 中实际操作.并将介绍最常用的数据库操作. 一.创建表 首先,我们要让Flask-SQLA ...
- Dockerfile指令详解下
VOLUME 定义匿名卷 VOLUME指令的格式为: VOLUME [,...] VOLUME 之前我们说过,容器运行时应该尽量保持容器存储层不发生写操作,对于数据库类需要保存动态数据的应用,其数据库 ...
- 详解linux下的串口通讯开发
串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用.常用的串口是RS-232-C接口(又称EIA RS-232-C)它是在1970年由美国电子工业协会(EIA)联合贝尔系统.调制解调 ...
- AQS源码泛读,梳理设计流程(jdk8)
一.AQS介绍 AQS(AbstractQueuedSynchronizer)抽象队列同步器,属于多线程编程的基本工具:JDK对其定义得很详细,并提供了多种常用的工具类(重入锁,读写锁,信号量,Cyc ...
- git aliases
单独的 alias git config --global alias.co checkout git config --global alias.br branch git config --glo ...
- iOS 代码混淆的简单使用
1.工具下载 http://stevenygard.com/projects/class-dump/ 选择dmg安装包 2.打开终端输入:open/usr/local/bin 3. 4.修改权限在 ...