2010年4月30日(新公司入职,第四周星期五)

1、Struts2:OGNL本质作用?

http://www.javaeye.com/wiki/struts2/1353-ognl-catalyst-for-data-operation-in-struts2#1602

 由于数据在不同世界中的表现形式不同而造成的:

(1. 数据在页面上是一个扁平的,全都一视同仁的成为字符串在页面上展现出来。

(2. 数据在Java世界中以对象树形式存在。

此时,如果数据在页面和Java世界中互相流转传递,就会显得不匹配。所以也就引出了几个需要解决的问题:
(1. 当数据从View层传递到Controller层时,我们应该保证一个扁平而分散在各处的数据集合能以一定的规则设置到Java世界中的对象树中去。同时,能够聪明的进行由字符串类型到Java中各个类型的转化。
(2. 当数据从Controller层传递到View层时,我们应该保证在View层能够以某些简易的规则对对象树进行访问。同时,在一定程度上控制对象树中的数据的显示格式。

同样的问题会发生在Java世界与数据库世界中,面对这种对象与关系模型的不匹配,我们采用的解决方法是使用ORM框架,例如Hibernate,iBatis等等。那么现在,在Web层同样也发生了不匹配,所以我们也需要使用一些工具来帮助我们解决问题。

为了解决数据从View层传递到Controller层时的不匹配性,Struts2采纳了XWork的OGNL方案。 

2、OGNL三要素?

(1. 表达式(Expression) 规定此次OGNL操作到底要干什么

(2. 根对象(Root Object)指定到底“对谁干”

(3. 上下文环境(Context)规定OGNL的操作“在哪里干”

3、OGNL的投影(projection) 和选择(selection)?

OGNL支持类似数据库中的投影(projection) 和选择(selection)。
投影就是选出集合中每个元素的相同属性组成新的集合,类似于关系数据库的字段操作。投影操作语法为 collection.{XXX},其中XXX 是这个集合中每个元素的公共属性。
例如:group.userList.{username}将获得某个group中的所有user的name的列表。

选择就是过滤满足selection 条件的集合元素,类似于关系数据库的纪录操作。选择操作的语法为:collection.{X YYY},其中X 是一个选择操作符,后面则是选择用的逻辑表达式。而选择操作符有三种:
? 选择满足条件的所有元素
^ 选择满足条件的第一个元素
$ 选择满足条件的最后一个元素
例如:group.userList.{? #this.name != null}将获得某个group中user的name不为空的user的列表。

4、xml文件解析:如何将文件结果读入内存?java API中的解析?

5、编译原理:如何将java编译为机器语言的?计算机组成原理?java解释器、虚拟机原理?

6、Java语言源文件编译生成的字节码和机器码有什么区别?

JVM把字节码根据不同的操作系统来转换成机器码后再在本操作系统上运行。

 7、问三儿同学:java嵌入式如何进入该行?前景?(先看QQ通话记录)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值