搜索文章:

首页  |  Java技术  |  Asp.net  |  Asp编程  |  VC/C++  |  Delphi  |  VB编程

WLS 6.0测试中的JNDI 和Web应用

本文包含测试中的两个专题:Java名字和目录接口以及Web应用。在我们开始之前,先补充一下我在上个月忘记提到的一件事:另外一个研究材料也很有益处,且与这些主题在内容上有很多重复之处,那就是用于J2EE测试的Sun Web Component Developer 。通过研究WLS在这方面的测试,您同时也就研究了Web Component Developer的测试。

现在,我假定你们中的大部分人都是很有经验的J2EE开发人员了,很多材料我只是一带而过,仅仅指出测试中的重要方面。在本文的结尾部分,我也提供了习题集帮助各种水平的读者复习和准备测试。下面,让我们开始吧。

Java名字和目录接口

测试题中,直接涵盖JNDI的内容不太多,但是使用JNDI很重要,因此要给予重视。主要的是要关注查找对象时InitialContext的配置以及了解java:comp的命名规则。

配置InitialContext时,需要用到一个Environment(或者说是HashTable)对象对InitalContext进行初始化。Environment包含若干参数用于对InitialContext对象的配置。这些参数的名字、常量以及缺省值显示在表一中。

 

除了WebLogic Server JNDI所用的一般的命名规则外,J2EE规范对存储在JNDI树上的对象也定义了标准的命名规则。有关标准命名规则的详细情况可以参考:http://java.sun.com/products/jndi/tutorial/beyond/misc/policy.html。表二对需要了解的重要名字作了总结。

这多多少少就是您在测试时需要知道的有关JNDI的知识。我建议您还是尽量掌握好JNDI,因为某些测试题的代码要用到它。

表一



表二



Web应用

我对其中一个比较简单的专题已经讨论过了。下面要讨论的内容会稍微比较复杂。Web应用是BEA WebLogic Server 6.0测试的重点题目之一。彻底了解Web应用对通过测试至关重要。除了Enterprise JavaBean(EJB)部分测试的题目外,这是测试中覆盖面最广泛的题目,因此对这一部分一定要仔细研究。为了简化说明,我将Web应用分为三个部分:servlet,Java Server Page(JSP)和部署。

在准备HTTP servlet部分时,要确保知道创建HTTP servlet的具备方法。应该对servlet的方法、用法以及调用时机非常了解,表三列出了对理解测试来说是很重要的方法。

还要确保对于HttpServletRequest类及其方法非常熟悉。如:getParameter(),从request对象中提取参数。此外,应关注HttpServletResponse类及其方法。如:setContentType(),用于通知客户端(浏览器)回送的数据类型。

HttpSession类记录着与用户的会话情况。通过HttpServlet中的getSession()方法调用。可以利用putValue()向HttpSession中存入对象,或者利用getValue()方法从HttpSession中提取对象。

WebLogic Server 将有关servlet容器的信息保存在ServletContext对象之中。您可以通过ServletConfig对象的getServletContext()方法得到ServletContext对象,ServletConfig对象是通过servlet的init()方法传送的。此外,利用getAttribute()和setAttribute()方法还可以在ServletContext对象内存储适用于Web应用范围的数据。需要注意的是,与存储在HttpSession对象中的数据不同,Web应用中的所有用户都可以使用存储在ServletContext内的数据。

 

表三



JAVA SERVLET PAGES

Web应用的下一个子项是JSP。要确保了解创建JSP的基本方法以及WebLogic是如何将页面转换为servlet的。需要非常熟悉在创建页面过程中JSP标记的用法(参看表四)。下面,我将对每个标记进行讨论,您一定要知道它们。

 

表四



SCRIPTLET

Scriptlet是一段Java代码,在生成servlet时放在service()方法之中。Scriptlet中的代码可以访问嵌入式对象(参看表五)。

表五



声明(DECLARATION)

声明与scriptlet非常相似,但其代码在生成servlet时放在类一级。因此您可以利用声明定义方法或者声明类一级变量。由于代码有可能被很多用户访问,从线程安全的角度考虑应使用同步。声明同scriptlet一样能够访问嵌入式对象(参看表五)。

表达式(EXPRESSION)

关于表达式的内容不太多,需要了解的是表达式将单个Java表达式的结果返回给客户端。另一点需要知道的是表达式求出的值是字符串(String)。

表五



指令(DIRECTIVE)

指令是发给JSP编译器的指示,影响到页面的编辑效果。有关指令的重要事项就是它们只影响页面的编辑效果,不影响页面的执行。表六是指令的列表,下面将对它们分别讨论。

 

表六



PAGE 指令

表七将page指令的部分值做了总结。

表七

 



INCLUDE 指令

Include指令将一个文件的内容包含进JSP页面中。将include指令与include动作(参看后面)区分开非常重要。

标记符库(TAGLIB)指令

标记符库指令指定标记库的位置和用法。WebLogic Server 6.0的测试中涉及标记符库的内容不太多,不过如果您也想参加J2EE 的Sun Web Component Developer测试的话,需要多花点时间复习它们。

动作(ACTION)

通常,动作是对标记符库的引用,但为通过测试起见,最好知道由JSP提供的标准动作集(参看表八)。

表八



USEBEAN 动作

UseBean动作用于访问JavaBean对象。通过这种方法使用或创建实体Java Bean(Entity Java Bean)是不正确的。如果所引用的JavaBean不存在,则JSP会创建一个。UseBean动作也指定了JavaBean适用的范围(参看表九)。

如果想编程调用不同范围内的bean,可通过相应对象的getAttribute(id)方法。

表九

 



INCLUDE 动作

需要记住include动作与include指令是不同的。Include动作将处理委托给另一个页面,初始页面接收请求,然后调用被包含的页面完成某些功能,再将结果回送客户端。

FORWARD 动作

与inclulde动作很相似,forward也将处理委托给另外一个页面。不过,forward是由初始页面接收请求,再将请求转发给下一个页面。“转发链”中的最后一个页面将结果回送给客户端。


部署

我们就快要完成Web的应用部分了,这里最后要讨论的主题是部署。Web应用的部署是各种信息的混合包。

首先,您需要了解Web应用的目录结构以及每个目录的作用(参看表十)。

测试中关于部署描述符的内容相当多,但大都是与EJB相关的。不过,您也应该对servlet和JSP页面的描述符相当了解。它们放在web.xml文件中。列表一和列表二展示了有关servlet和JSP部署描述符的例子。

Web.xml会和部署信息一起定义某些安全属性,这些安全属性规定了WebLogic Server管理Web应用安全性的方法(参看表十一)。

最后一点虽然与部署关系不大,但提出来很有好处:您应该知道WebLogic Server提供了若干servlet用于处理输入的请求(参看表十二)。


表十

 



表十一



表十二



复习

我已经许诺要给你们准备一个小测试。答案附在测试题末后。我建议您马上做这些测验题并检查自己的答案。通过这种方法,您就能够知道您在实际测试中的情况。下一次,我们将讨论JDBC和EJB。祝学习愉快!


1. InitialContext Environment的什么参数会影响InitialContext的创建?

a) weblogic.jndi.WLInitialContextFactory

b) java.naming.factory.initial

c) java.naming.provider.url

d) java.naming.security.principal

2. 从JNDI树中提取对象时,您会调用InitialContext的什么方法?

a) lookup()

b) find()

c) bind()

d) get()

3. 哪一个servlet允许在同一个类路径下执行另外的servlet?

a) FileServlet

b) JspServlet

c) ServletServlet

d) CgiServlet

4. 在向浏览器回送内容之前应该调用哪一个响应方法?

a) setMIMEType()

b) setContentType()

c) setResponse()

d) setContent()

5. Servlet应该使用哪一个类来存储属于Web应用范围的属性?

a) AppContext

b) ServerScope

c) SessionContext

d) ServletContext

6. 哪一个JSP标记包含运行时执行的JSP页面?

a) <%@include file="somepage.jsp"%>
b) <jsp:include page="somepage.jsp">
c) <jsp:forward page="somepage.jsp">
d) None of the above

7. 如果一个JSP页面将isErrorPage指令设置为true(真),下面哪一个陈述是正确的?

a) An intrinsic exception object is defined

b) All exceptions raised by any page in the Web application are redirected to this page

c) This page is displayed when the generateError() method is called

d) All of the above

8. 选择一个正确的方法从JSP页面调用EJB:

a) Utilize a standard JSP directive

b) EJB Creation code in scriptlet

c) action

d) All of the above

9. 哪一个部署描述符包含url-pattern能够将servlet或者JSP映射到一个URL?

a) <servlet>
b) <servlet-name>
c) <servlet-mapping>
d) <servlet-url-pattern>

10. 哪一个Web应用目录存放部署描述符文件weblogic.xml?

a) The Web application root

b) META-INF

c) WEB-INF

d) There is no deployment descriptor file named weblogic.xml.

 

答案:



Listing 1: Servlet deployment descriptor

<servlet>

<servlet-name >ServeltA</servlet-name>

<servlet-class>Aservlet</servlet-class>

</servlet >

 

<servlet-mapping>

<servlet-name >servletA</servlet-name>

<url-patern>/serv/</url-pattern>

</servlet-mapping>

Listing 2: JSP deployment descriptor

<servlet>

<servlet-name>JSPFileA</servlet-name>

<jsp-file>AJSPFile.jsp</jsp-file>

</servlet>

 

<servlet-mapping>

<servlet-name>JSPFileA<servlet-name>

<url-pattern>/jsp/</url-pattern>

</servelt-mapping>


  
相关文章:
© 2006   www.java-asp.net