Struts2常见面试点
01. 三层和MVC的区别
http://blog.csdn.net/csh624366188/article/details/7183872
http://www.cnblogs.com/zdxster/p/5305155.html
http://www.cnblogs.com/rainbow70626/p/4967478.html
三层是三层,MVC是MVC,它们毫无关系的。
三层是从整个应用程序架构的角度来分的三层(如果程序需要,还可以分多层)。
三层是为了解决整个应用程序中各个业务操作过程中不同阶段的代码封装的问题,为了使程序员更加专注的处理某阶段的业务逻辑。
比如将数据库操作代码封装到一层中,提供一些方法根据参数直接返回用户需要的相应数据,这样在处理具体的业务逻辑的时候,就不用关心数据的存储问题了。
MVC是在应用程序(BS结构)的视图层划分出来的不同功能的几个模块。
MVC主要是为了解决应用程序用户界面的样式替换问题,把展示数据的 HTML 页面尽可能的和业务代码分离。MVC把纯净的界面展示逻辑(用户界面)独立到一些文件中(Views),把一些和用户交互的程序逻辑(Controller)单独放在一些文件中,在 Views 和 Controller 中传递数据使用一些专门封装数据的实体对象,这些对象,统称为Models。
只所以说MVC和三层毫无关系,是因为它们二者使用范围不同:三层可以应用于任何语言、任何技术的应用程序;而MVC只是为了解决BS应用程序视图层各部分的耦合关系。它们互不冲突,可以同时存在,也可根据情况使用其中一种。
02.struts2的核心控制器!
http://blog.sina.com.cn/s/blog_6ac4c6cb010190ml.html
http://www.cnblogs.com/wangjianbg/p/3555857.html
http://blog.chinaunix.net/uid-7374279-id-4344061.html
struts2是集成了struts1和xwork技术!
struts2的三种实现方式:
001.自定义一个类,书写一个execute(),返回值是String类型,即可!
002.实现Action接口
有五个默认值,和一个execute()
SUCCESS=“success”
ERROR=“error”
INPUT="input"
NONE="none"
LOGIN="login"
003.继承ActionSupport类
struts-default.xml文件!
定义了我们需要的
result-type (返回类型)
interceptor (拦截器)
interceptor-stack (拦截器栈)
default-class-ref (默认执行的action类)
default.properties
设置了 struts2的一些基本配置!
struts.xml文件,我们书写的!
03.struts2执行流程
http://www.cnblogs.com/xtdxs/p/6489275.html
1 服务开启,配置文件初始化
2 用户访问login请求
3 进入web.xml文件中我们配置的核心控制器(filter)
4 核心过滤器中有一个FilterDispatcher,FilterDispatcher调用AcionMapping,来决定是否调用某个Action!
5 ActionMapping根据实际情况,交给ActionProxy!
6 ActionProxy通过Configuration Manager调用框架的配置文件!
7 ActionProxy会创建一个ActionInvocation的实例!
8 先去执行配置的各种123456拦截器
9 执行LoginAction
10 执行654321拦截器!
04.拦截器和过滤器的区别
相同点:
不同点:
http://www.cnblogs.com/joyang/p/4973435.html
http://blog.csdn.net/vincent_yuan1991/article/details/52830648
http://blog.csdn.net/xiaoliuliu2050/article/details/51222446
05.参数的传递 OGNL ****************
动态方法的调用
通配符的使用
06.struts2默认后缀
struts.action.extension=action,,
07.全局结果
<action name="*_* mehotd={2}">
<result name="error">/error.jsp</result>
<exception-mapping result="error" exception="java.sql.SQLException"/>
</action>
08.高内聚低耦合!
09. xml验证
国际化
转换器 2014-01-01 struts2
2014/01/01 Spring mvc
10. 拦截器 和过滤器的区别
拦截器不能单独执行! 必须依赖于 拦截器栈!~
拦截器栈
三层和 mvc
11.轻量级框架和 重量级的区别
ejb jpa
12. OGNL el
page
request
session
application
attr
valueStack
01.是一个接口,封装Ognl!
它的实现类是OgnlValueStack
02. 它贯穿Action的生命周期!每一个action都有自己的valueStack对象!
03.struts2把valueStack对象放在了struts.valueStack的request作用域中!
list<Object>
list<Map<String,Object>>
13. | & 位 0101010
Struts2常见面试点的更多相关文章
- SpringMVC常见面试题总结(超详细回答)
SpringMVC常见面试题总结(超详细回答) 1.什么是Spring MVC ?简单介绍下你对springMVC的理解? Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的 ...
- Spring 常见面试题总结 | JavaGuide
首发于 JavaGuide 在线网站:Spring 常见面试题总结 最近在对 JavaGuide 的内容进行重构完善,同步一下最新更新,希望能够帮助你. Spring 基础 什么是 Spring 框架 ...
- java常见面试题及答案 1-10(基础篇)
java常见面试题及答案 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程.Java 源文件被 ...
- Web开发的常见面试题HTML和HTML5等
作为一名前端开发人员,HTML,HTML5以及网站优化都是必须掌握的技术,下面列举一下HTML, HTML5, 网站优化等常见的面试题: HTML常见面试题: 1. 什么是Semantic HTML( ...
- 常见面试题之ListView的复用及如何优化
经常有人问我,作为刚毕业的要去面试,关于安卓开发的问题,技术面试官会经常问哪些问题呢?我想来想去不能一股脑的全写出来,我准备把这些问题单独拿出来写,并详细的分析一下,这样对于初学者是最有帮助的.这次的 ...
- iOS常见面试题汇总
iOS常见面试题汇总 1. 什么是 ARC? (ARC 是为了解决什么问题而诞生的?) ARC 是 Automatic Reference Counting 的缩写, 即自动引用计数. 这是苹果在 i ...
- JDBC常见面试题
以下我是归纳的JDBC知识点图: 图上的知识点都可以在我其他的文章内找到相应内容. JDBC常见面试题 JDBC操作数据库的步骤 ? JDBC操作数据库的步骤 ? 注册数据库驱动. 建立数据库连接. ...
- Mybatis常见面试题
Mybatis常见面试题 #{}和${}的区别是什么? #{}和${}的区别是什么? 在Mybatis中,有两种占位符 #{}解析传递进来的参数数据 ${}对传递进来的参数原样拼接在SQL中 #{}是 ...
- JavaSE:数据类型之间的转换(附常见面试题)
数据类型之间的转换 分为以下几种情况: 1)低级到高级的自动类型转换: 2)高级到低级的强制类型转换(会导致溢出或丢失精度): 3)基本类型向类类型转换: 4)基本类型向字符串的转换: 5)类类型向字 ...
随机推荐
- bzoj 5056: OI游戏
5056: OI游戏 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 204 Solved: 162[Submit][Status][Discuss] D ...
- VirtualBox 扩展虚拟硬盘容量
转载:VirtualBox 扩展虚拟硬盘容量 如果使用的是ubuntu主机加xp虚拟机,扩容后,xp还无法识别扩大后的硬盘部分,可以在xp下使用“分区助手”进行处理,即将扩大的空间分给C盘.
- LCD设备驱动程序
LCD是Liquid Crystal Display的简称,也就是经常所说的液晶显示器 LCD能够支持彩色图像的显示和视频的播放,是一种非常重要的输出设备 Framebuffer 是Linux系统 ...
- Codis的安装
其他环境准备: 安装JDK,安装Zookeeper 1.创建codis账户 useradd codis passwd codis 2.解压codis3.1.3-go1.7.4-linux.tar.gz ...
- Redis 在 Java 中的使用
转:http://blog.csdn.net/jiangtao_st/article/details/8256610 一.下载jar包 https://github.com/xetorthio/jed ...
- c#课程设计---猜猜看游戏
1:游戏要求 1. 随机显示 一个名字 与 若干张相片(如3张).选择正确的相片. 2. 记录老师对每一个学生的认识概率P.并依据认识概率,确定"猜猜看"游戏中学生出现的频率. 认 ...
- 微信开源组件WCDB漫谈及Demo
代码地址如下:http://www.demodashi.com/demo/12422.html 前言 移动端的数据库选型一直是一个难题,直到前段时间看到了WeMobileDev(微信前端团队)放出了第 ...
- Android日期对话框NumberPicker的使用方法教程
NumberPicker是Android3.0之后引入的一个控件.NumberPicker 是用于选择一组提前定义好数字的控件.比方时间hour的选择仅仅有0-23有效,则能够通过setMinValu ...
- android xml布局文件中tools:layout的作用
摘要 用最新版本的adt 创建一个基于master/detail flow 模版的app的时候,生成的 activity_item_list.xml 文件中有一个tools:layout属性: fra ...
- Linux下MySQL定时按日期备份数据
一.使用mysql内置命令 mysqldump Usage: mysqldump [OPTIONS] database [tables] mysqldump [OPTIONS] --databases ...