当前位置:文档之家› j2ee考试题2

j2ee考试题2

一、填空题
发布到服务器上的组件除包含自身实现的代码文件外,还要包含一(XML)部署描述文件。
Java EE技术框架可分为三部分:组件技术、(服务技术)、通信技术。
Servlet 最大的用途是通过(动态响应)客户机请求来扩展服务器功能。
表单数据的提交方法有两种,(Post)方法和Get方法。
(Filter)拦截请求和响应,以便查看、提取正在客户机和服务器之间交换数据。 (Listener)实现了Servlet的事件驱动。
JSP页面的脚本元素用来嵌入(java)代码。
JSP动作组件是一些(XML)语法格式的标记,被用来控制Web容器的行为。 JSP供提供九种内置对象,(request)对象代表的是来自客户端的请求。
JSP 标准标记库是一个实现( Web )应用程序中常用功能的定制标记库集。
java.sql.Statement对象代表一条发送到数据库执行的SQL语句。有(三)种Statement 对象。
Servlets可以使用(MIME)类型来向浏览器传送非 HTML 文件。
Enterprise Bean 是在(多)台机器上跨几个地址空间运行的组件。
JavaBean 是(一)台机器上同一个地址空间中运行的组件。
在标记描述TLD文件中Required 定义为(true)代表为必须。
二、单项选择题
1、表单数据的提交方法有两种, ()方法使得数据由标准的输入设备读入。
A.Get B. Post C.Read D.Input
2、在表单提交的数据中,如果变量的值有多个,这时应调用( )方法,
A. getParameterValues() B. getParameter() C. getParameterNames()
D. getAttribute()
3、Servlet的事件驱动由()实现。
A. Filter B. Listener C . Response D. Request
4、标记名称由两部分组成,( )用来区分不同标记库.
A. 后缀 B. 前缀 C.JSP D. bean
5、客户机对Servlet的请求和Servlet对客户端的响应,都是通过( )来实现的。
A、EJB B、XML C、API D、Web服务器
6、获取数据库连接的方法是 ()。
A、Connection() B、getConnection() C、Con D、getContent()
7、常用的接收邮件的协议是 ()
A、SMTP B、POP3 C、IMAP D、MIME
8、()用来获取一个已被创建的JavaBean组件的属性值。
A、 B、
C、 D.
9、要对体内容进行操作的标记,必须继承的接口是()。
A. javax.Servlet.jsp.tagext. Tag B.javax.Servlet.jsp.tagext.BodyTag
C. javax.Servlet.jsp. Tag D. 三个都必须
10、core标记库主要的标记有( )
A、通用标记;流程控制标记;URL标记
B、选择标记;循环标记
C、sql标记;xml标记;FN标记
D、以上都是
11、在WAR文件中,web.xml放在哪个目录中 ()
A. WEB-INF B. APP-INF
C. META-INF D. WEB-INF\lib
12、ejb环境变量如何调用名为ejbC的ejb ()
A. initCtx.lookup("java:comp/env/ejb/ejbC")
B. initCtx.lookup("java:comp/ejb/ejbC")
C. initCtx.lookup("ja

va:comp/ejbC")
D. initCtx.lookup("java:comp/env/ejbC")
13、Servlet获得初始化参数的对象是()
A、Request B、Response
C、ServletConfig D、ServletContext
14、Servlet间完成协作,需要用到( )完成请求指派
A、Requestdispatcher B、Responsedispatcher
C、Servletdispatcher D、includedispatcher
15、JSP脚本中设有变量a,输出a正确的表达式是()
A、<%=a;%> B、<%=a%>
C、<% =a;%> D、<%a%>
16、JSP从HTML表单中获得用户输入的正确语句为 ()
A、Request.getParameter(“ID”) B、Reponse.getParameter(“ID”)
C、Request.getAttribute(“ID”) D、Reponse.getAttribute(“ID”)
17、能执行带参数的SQL语句的对象是 ()
A、Statement B、 Preparedstatement
C、CallStatement D、以上三个都可以
18、常用的上传邮件的协议是 ()
A、SMTP B、POP3
C、IMAP D、MIME
19、标记处理器集成Tag接口,必须实现的接口方法是 ()
A、doStartTag() B、doEndTag()
C、以上都是
三、正误判断:
JSP页面的成分“指令”用来从整体上控制Servlet结构。√
JSP页面的成分“动作”用来引入现有的组件来控制Web容器的行为。√
Servlet可从命令行启动的,也可由包含Java虚拟机的Web服务器进行加载运行。X 客户机对Servlet的请求和Servlet对客户端的响应,都是通过Web服务器来实现的。√
表单数据的提交方法有两种,若采用Get方法,则数据由标准的输入设备读入。X
Servlets 可以使用 MIME 类型来向浏览器传送非 HTML 文件。√
JSP最终会被转换成标准的XML文档。X
include指令可用于向JSP页面内某处嵌入HTML文件、JSP文件或其他文本文件。√ include动作组件把指定文件插入正在生成的页面。√
可以通过“out” 对象直接向客户端写一个由程序动态生成HTML文件。√
JSP是一种实现普通静态HTML和动态HTML混合编码的技术。√
JavaBean 是进程内组件。√
Enterprise Bean 是进程间组件。√
EJB组件是一种分布式对象,EJB被实例化后,其它地址空间中的应用程序也访问它。√
JSP 标准标记库是一个实现Web应用程序中常用功能的定制标记库集。√
四、简单回答
1.简述Servlet工作原理。
Servlet工作原理:Servlet运行在Web服务器上的Web容器里。Web容器负责管理Servlet。它装入并初始化Servlet,管理Servlet的多个实例,并充当请求调度器,将客户端的请求传递到Servlet,并将Servlet的响应返回给客户端。Web容器在 Servlet 的使用期限结束时终结该 Servlet。服务器关闭时,Web容器会从内存中卸载和除去 Servlet。
2.Servlet 与 Applet的异同.
相似之处:
(1)它们不是独立的应用程序,没有main()方法。
(2)它们不是由用户调用,而是由另外一个应用程序(容器)调用。
(3)它们都有一个生存周期,包含init()和destroy()方

法。
不同之处:
(1)Applet运行在客户端,具有丰富的图形界面。
(2)Servlet运行在服务器端,没有图形界面。
3.EJB怎样和容器交互,其组件有哪几种类型?
n EJB通过以下三种机制与容器交互
① 回调方法:回调方法是EJB组件实现的,通过部署标记或在部署文件中声明的特定方法,当容器要执行创建EJB实例,结束事务等操作时,它将调用这些方法来通知该EJB组件。
② EJBContext:每个EJB都会得到一个 EJBContext对象,它是对容器的直接引用,通过它可以获取环境信息。
③ Java命名和目录接口(JNDI):这是java平台的标准扩展,用于访问命名系统,如LDAP、NetWare、文件系统等。
n EJB组件可分为三种主要类型:
① 会话Bean:代表检索或存储数据以满足用户请求这样的操作;
② 实体Bean:代表一种数据集,可以访问这些数据集来满足用户请求;
③ 消息驱动Bean:相当于一个实现了某些业务逻辑的异步消息接收者。
4.什么是JDBC技术?
① JDBC是一组API,定义了用来访问数据源的标准Java类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源。
② JDBC对数据库的访问具有平台无关性。
③ JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题。
④ JDBC的目标是使应用程序开发人员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。
5、企业级应用程序一般选择三层体系结构。请问为什么?
答:应为三层体系结构区别于二层体系结构具有如下优点:
(1)安全性高,(2)易于维护,(3)快速响应,(4)系统扩展灵活
6、Java EE的核型编程思想是:组件—容器。请您简单描述组件和容器,二者的关系,及此思想的优点。
答:组件:Java EE的基本软件单元。容器:组件运行的环境。
容器为组件提供必需的底层基础功能(服务),组件通过调用容器提供的标准服务来与外界交互。
在分布式组件的开发过程中,完全可以不考虑复杂多变的分布式计算环境,而专注于业务逻辑的实现,这样可大大提高组件开发的效率,降低开发企业级应用程序的难度。
7、SERVLET保持会话的方法有那三种?
答:使用Cookie进行会话跟踪
使用URL重写跟踪会话
使用HttpSession对象跟踪会话
8、servlet和JSP的异同.
相似:
(1)两者都是基于Java的技术,所以都继承了Java的所有特性(跨平台、多线程等 ),都可以使用Java强大的API。
(2)两者工作方式相似:JSP代码先被JSP容器转换为Servlet代码再编译为类。
(3)两者在J2EE

体系结构中的工作层次相同,都负责与客户端的连接。
不同:
(1)编程方式不同。Servlets是一些运行于Web服务器端的Java小程序;而JSP是脚本,编写起来更简单容易。
(2)应用目的不同。Servlet主要用于从客户端接收请求信息,而JSP主要负责将服务器端信息传送到客户端。
9、forward 和redirect的区别.
答:forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。
五、程序题
主要内容:
参见(p218程序8-2)创建数据库的连接、语句对象、结果集对象,查询语句、结果集的应用。
参见(p62程序3-20,21)如何利用表单form提交数据。在servlet中如何获取表单提供的数据。
参见(p28程序3-2)关于servlet的配置信息的说明。
六、 EJB3.0是Java EE的重头戏之一,但是有人我们不用Ejb也能做出很好的企业级应用?比如采用JSP+java Bean或则采用Jsp+servlet+java Bean的模式。针对该观点请回答如下问题6-10
1、 请您评价此观点?分析为什么?
2、 MVC的各个部分都有那些技术来实现?如何实现?
3、 企业bean,有哪些?在企业级应用中主要有什么作用?
4、 满足什么条件的普通java类才是一个java Bean? JSP和java Bean结合的三个标记是什么?
5、 Entity Manager API可以用来实现实体Bean生命周期管理、实体Bean的查找定位以及与数据库同步操作等。请画出实体Bean的生命周期状态图及其转换过程,并简单每种状态和转移的意义。
1、
答:此观点不准确。EJB3.0是java在吸收spring,hibernate等先进框架技术,并结合ejb2.0的缺点推出的一种全新的企业级组件技术,其中采用POJO+注释的模式大大简化了EJB的开发。可以说EJB3.0是企业级分布式架构的一种当然的选择。当然针对对分布式要求不是太高的中小企业级应用,选用上述模式也能完成任务。
2、
答:MVC是Model-View-Controller的简写。"Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), View" 是应用的表示面(由JSP页面产生),"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用
3、
实体bean:完成持久化。会话bean:完成业务处理。消息bean:处理异步消息。 4、
答:
(1)对于数据类型“protype”的每个可

读属性,Bean 必须有下面签名的一个方法: public proptype getProperty() { }
(2)对于数据类型“protype”的每个可写属性,Bean 必须有下面签名的一个方法: public setProperty(proptype x) { }

(3)定义一个不带任何参数的构造函数。



5、
答:
New:已经创建了实体Bean的实例,但尚未与持久化上下文进行关联,更未实现与数据库中的信息的映射。
Managed:实体bean已经与持久化上下文进行关联。实现与数据库中的信息映射。 Detached:实体Bean实现数据中的信息映射,但不再与持久化上下文进行关联。 Removed:实体bean对应的数据库中的数据已被删除。
程序4-15:forward.jsp(p98)
<%@page contentType="text/html;charset=GB2312"%>


forward



当前推荐图书清单:
<% double i=Math.random();
if(i>0.5)
{
%>

<--报告语法错:“Expecting "jsp:param" standard action with "name" and "value" attributes” 需要"jsp:param"动作组件-->

<%
}
else
{
%>


<%
}
%>


第11/15页
程序4-24:jspFuction.jsp(104)
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.util.*" %>




客户使用的协议是:
<% String protocol=request.getProtocol();
out.println(protocol);
%>

获取接受客户提交信息的页面:
<% String path=request.getServletPath();
out.println(path);
%>

接受客户提交信息的长度:
<% int length=request.getContentLength();
out.println(length);
%>

客户提交信息的方式:
<% String method=request.getMethod();
out.println(method);
%>

获取HTTP头文件中User-Agent的值::
<% String header1=request.getHeader("User-Agent");
out.println(header1);
%>

获取HTTP头文件中accept的值:
第12/15页
<% String header2=request.getHeader("accept");
out.println(header2);
%>

获取HTTP头文件中Host的值:
<% String header3=request.getHeader("Host");
out.println(header3);
%>

获取HTTP头文件中accept-encoding的值:
<% String header4=request.getHeader("accept-encoding");
out.println(header4);
%>

获取客户的IP地址:
<% String IP=request.getRemoteAddr();
out.println(IP);
%>

获取客户机的名称:
<% String clientName=request.getRemoteHost();
out.println(clientName);
%>

获取服务器的名称:
<% String serverName=request.getServerName();
out.println(serverName);
%>

获取服务器的端口号:
<% int serverPort=request.getServerPort();
out.println(serverPort);
%>

获取客户端提交的所有参数的名字:
第13/15页
<% Enumeration enumX=request.getParameterNames();
while(enumX.hasMoreElements())
{String s=(String)enumX.nextElement();
out.println(s);
}

%>

获取头名字的一个枚举:
<% Enumeration enum_headed=request.getHeaderNames();
while(enum_headed.hasMoreElements())
{String s=(String)enum_headed.nextElement();
out.println(s);
}
%>

获取头文件中指定头名字的全部值的一个枚举:
<% Enumeration enum_headedValues=request.getHeaders("cookie"); while(enum_headedValues.hasMoreElements())
{String s=(String)enum_headedValues.nextElement(); out.println(s);
}
%>





程序4-26:getParam.jsp(p107)
%--确定本页面中的字符类型--%>
第14/15页
<%@ page contentType="text/html;charset=GB2312" %>
<%--确定请求和响应对象中的字符类型,在本程序中下面的第二行可以不要--%> <% request.setCharacterEncoding("gb2312");
response.setContentType("text/html;charset=GB2312");
%>

examp

你好,
<%! String Name;%>
<%
Name=request.getParameter("UserName");
String stars=new String("你喜欢的歌星有:");
String[] paramValues = request.getParameterValues("checkbox1");
for(int i=0;i%>
<%=Name%>


<%=stars%>



相关主题
文本预览
相关文档 最新文档