JavaWeb从入门到精通(视频实战版)
上QQ阅读APP看书,第一时间看更新

6.10 常见面试题分析

1. 根据你的理解,简述EL所包含的隐含对象

答:EL表达式中包含11个隐含对象,它们分别为:

1)PageContext:表示此JSP的PageContext。

2)pageScope:取得Page范围的属性名称所对应的值。

3)requestScope:取得Request范围的属性名称所对应的值。

4)sessionScope:取得session范围的属性名称所对应的值。

5)applicationScope:取得Application范围的属性名称所对应的值。

6)param:如同ServletRequest.getParameter(String name)。回传String类型的值。

7)paramValues:如同ServletRequest.getParameterValues(String name)。回传String[]类型的值。

8)header:如同ServletRequest.getHeader(String name)。回传String类型的值。

9)headerValues:如同ServletRequest.getHeaders(String name)。回传String[]类型的值。

10)Cookie:如同HttpServletRequest.getCookies()。

11)initParam:如同ServletContext、getInitParameter(String name)。回传String类型的值。

2. 在具体开发Struts2框架应用时,经常会用到哪些数据标签

答:在具体开发中,经常会遇到如下的数据标签,它们分别为:

1)property标签:该标签也许是Struts2中最常用的标签了,它实现的功能也是很简单的—输出OGNL表达式的值。

2)set标签:该标签赋予变量一个特定范围内的值。当希望给一个变量赋一个复杂的表达式,每次访问该变量而不是复杂的表达式时用到。其在两种情况下非常有用:复杂的表达式很耗时(性能提升)或者很难理解(代码可读性提高)。

3)push标签:虽然set标签可以在action context中放置数据,而push标签则可以将对象的引用压入值栈中。如果围绕某单个对象做大量操作,则是相当有用的。可以将对象压入值栈之后直接对其进行操作,而不需要在每个与对象管理的表达式之前加上对象名字。

4)bean标签:实例化一个符合JavaBeans规范的class,标签体内可以包含几个Param元素,用于调用setter方法给此class的属性赋值。如果指定了id属性,则该实例将会放到值栈中。bean标签的参数如表6.14所示。

5)action标签:通过指定命名空间和action名称,该标签允许在JSP页面直接调用action标签体用来渲染action执行结果,除非设定了executeResult参数为true,否则在struts.xml中为该action指定的Result Processor不会执行,这个值默认是false。