J2EE 一

更新时间:2024-01-15 16:27:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

J2EE 一

一、 选择题,共30题,每题2分,总共60分

1. J2EE中,对于ServletRequest接口的获取请求参数的方法的描述,正确的是( )。

(选择一项)

A) getParameter方法只用于接收POST请求参数,接收GET 请求参数需要使用getQueryString方法

B) 如果一个参数key有多个值,那么getParameter(key)方法会返回空字符串 If you use

this method with a multivalued parameter, the value returned is equal to the first value in the array returned by getParameterValues.

C) 如果一个参数key有多个值,那么getParameterValues(key)方法会返回一个包含所有

值 的字符串数组

D) getParameter方法返回Object对象,使用前要强制类型转换:如String

str=(String)request.getParameter(key) java.lang.String

2. J2EE中,关于JSP文件中的page指令在JSP文件中出现的位置和次数,正确的是( )。

A) page指令可以在JSP中的任何地方,以任何顺序出现

B) 一个JSP文件只有一个个page指令 C) 一个JSP文件只能有一个page指令

D) 在整个JSP文件中,虽然可以有多个page指令,但是任何属性/值对只能出现一次

3. J2EE中,在web.xml中,有如下代码:

30

以下描述,正确的是( )。

A) 定义了默认的会话超时时长,时长为30秒 mins

B) 可以使用HttpSession类的getMaxInactiveInterval()方法把该值取出来 seconds if a negative time indicates session should never timeout. C) 定义了默认的会话超时时长,时长为30小时

D) 可以使用Session类的getMaxInactiveInterval()方法把该值取出来

4. 在J2EE中,当用户在浏览器中输入:http://localhost:8080/myWebApp/start/,就会调用

student这个Servlet,可以在Web.xml中( )配置。 A)

/start/* student B)

student /start/*

C)

student student

student /start/* D)

st

student

student /start/*

5. J2EE中,ServletResponse的( )方法可以返回在应答中写入二进制数据的对象,( )方法

可以返回应答中发送字符文本的对象.

A B

getOutputStream( )和getWriter( )方法

To send binary data in a MIME body response, use the ServletOutputStream returned by getOutputStream(). To send character data, use the PrintWriter object returned by getWriter(). To mix binary and text data, for example, to create a multipart response, use a ServletOutputStream and manage the character sections manually C D

getWriter( )和getOutputStream( )方法 getInputStream( ) 和getPrint( ) 方法

6. 在J2EE中,在web.xml有如下代码段:

webmaster

myaddress@ mycompany.com

在Servlet中( )把webmaster的值:myaddress@mycompany.com取出来。 A) 使用RequestDispatcher的getInitParameter( “webmaster”)方法 B) 使用ServletContext的getInitParameter( “webmaster”)方法 C) All web.xml

D) 使用ServletConfig的getInitParameter( “webmaster”)方法

7、在JAVAEE中,以下的page指令设置了使用的脚本语言是Java,且导入java.rmi.*和java.util.*包,正确的是( )

A、<%@page language=\B、 <%@page language=\C、<%@page language=\

D、<%@page language=\

8、在J2EE实现企业级应用开发中,( )是描述标记库的XML文档

A、TLD文件 B、DTD文件 C、WAR文件 D、EAR文件

9、在J2EE中,重定向到另一个页面,以下( )语句是正确的 A、request.sendRedirect(\B、request.sendRedirect()

C、response.sendRedirect(\D、response.sendRedirect()

10、在JAVAEE中,在JSP中想要使用user包中的User类,则以下写法正确的是( A、

D、

11.J2EE 中,( )类的( )方法用于创建对话。 A HttpServletRequest、getSession B HttpServletResponse、newSession

C

HtttpSession、newInstance

D HttpSession、getSession

12.给定一个 Servlet 的doGet方法中的代码片段,如下: request.setAttribute(“name”,”zhang”); response.sendRedirect(“http://localhost:8080/servlet/MyServlt”)

那么在 MyServlet 中可以使用( )方法把属性 name的值取出来。 A. String str=request.getAttribute(“name”);

B. String str=(String)request.getAttribute(“name”); C. Object str=request.getAttribute(“name”); D. 无法取出来

13.编写Servlet 的doPost方法时,需要抛出异常为( )。 A.ServletException, IOException B.ServletException, RemoteException C.HttpServletException, IOException D.HttpServletException, RemoteException

14.以下( )可用于检索session属性userid的值。 A.session. getAttribute (“userid”); B.session. setAttribute (“userid”); C.request. getParameter (“userid”); D.request. getAttribute (“userid”);

。 )

15.在J2EE中,以下对RequestDispatcher描述正确的是( )。

A.Jsp中有个隐含的对象diapatcher,它的类型是RequestDispatcher

B.ServletConfig有一个方法:getRequestDispatcher可以返回RequestDipatcher对象 C.RequestDipatcher 有一个方法:forward可以把请求继续传递给别的Servlet或者JSP界面

D.JSP中有个隐含的默认对象request,它的类型是RequestDipatcher

16.在WEB应用程序的目录结构中,在WEB-INF文件夹外的文件为( )。 A.jsp文件 B.class文件 C.jar文件 D.web.xml文件

17. 给定一个Servlet程序的代码片段,如下:( )

Public void doPost(HttpServletRequest request,HttpServletResponse response) throws

ServletException,IOException {

request.getSession().getAttribute(“A”); }

假定第二行返回的对象引用不是null,那么这个对象存储在( )范围中。 A. page B. C. D.

session request

application

18.给定一个Servlet的代码片段如下: ( ) Public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ ______

out.println(“hi kitty!”); out.close(); }

运行次Servlet时输出如下: hi kitty!

则应在此Servlet下划线处填充如下代码。

A.PrintWriter out = response.getWriter(); B.PrintWriter out = request.getWriter();

C.OutputStream out = response.getOutputStream(); D.OutputStream out = request.getWriter();

19.在J2EE中,对于Httpservlet类的描述,错误的是( ).

A.我们自己编写的Servlet继承了Httpservlet类,一定需覆盖doPost或者doGet

B.HttpServlet类扩展了GenericServlet类,实现了GenericServlet类的抽象方法 C.HttpServlet类中处理客户请求和响应时所使用的两个接口是:HttpServletRequest和HttpServletResponse.

D.我们自己编写的servlet继承了Httpservlet类,一般只需要覆盖doPost方法,不必覆盖servive()方法,因为一个service()方法会调用doPost或者doGet方法

20.给定某Servlet程序的片段如下,用户在浏览器地址栏中键盘键入正确的请求URL并回车后,在控制台上显示的结果是( ).

public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException ,IOException {

System.out.println(\

}

public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException ,IOException {

System.out.println(\ } A B

get post

C get post D post Get

21.在J2EE中,重定向到另一个页面,以下( )语句是正确的。

A B C D

request . sendRedirect(“http : // www . jb -aptech . com . cn”); request . sendRedirect();

response . sendRedirect(“Http : // www . jb – aptech . com . cn”); response . sendRedirect();

22.J2EE中,Servlet API 为使用Cookie,提供了( )类。

A B C D

Javax.servlet.http.Cookie

Javax.servlet.http.HttpCookie Javax.servlet. Cookie

Javax.servlet.http. HttpCookie

23、JAVAEE中,HttpSession接口位于( )包中。 A、javax.servlet.session

B、javax.servlet

C、javax.servlet.http D、javax.servlet.http.session

24.在JSP中,test . jsp文件如下,试图运行时,将发生( )。 <% String str = null; %> str is <%= str%>

A 转译期有误

B 编译Servlet源码时发生错误 C 执行编译后的Servlet时发生错误 D 运行后,浏览器上显示:str is null

25.从HTTP请求中,获得请求参数,应该调用( )。

A request对象的getAttribute()方法 B

C D

request对象的getParameter()方法 session对象的getAttribute()方法 session对象的getParameter()方法

26.在一个Filter中,处理filter业务的是( )方法。

A dealFilter (ServletRequest request,ServletResponse response,FilterChain chain)

B C

dealFilter (ServletRequest request,ServletResponse response)

doFilter (ServletRequest request,ServletResponse response, FilterChain

chain)

D doFilter (ServletRequest request,ServletResponse response)

27.在J2EE中,给定某Servlet的代码如下,编译运行该文件,以下陈述正确的是( )。 Public class Servlet1 extends HttpServlet{ Public void init() throws ServletException{ }

}

Public void service(HttpServletRequest request,HttpServletResponse response) Throws ServletException,IOException{ } A B

编译该文件时会提示缺少doGet()或者dopost()方法,编译不能够成功通过

编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到PrintWriter out = response.getWriter(); Out.println(“hello!”);

输出文字:hello!

C 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中看不到任何输出的文字

D 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到运行期错误信息

28.Servlet 可以在以下( )三个不同的作用域存储数据。

A 请求、会话和上下文

B 响应、会话和上下文

C 请求、响应和会话 D 请求、响应和上下文

29 J2EE中,Servlet API 为使用Cookie,提供了( )类。

30.在JSP页面中,保存数据的范围由小到大依次是 ( )

A pageContext,request,application,session B pageContext,application,session,request C pageContext,request,session,application D pageContext,session,request,application

A B C D

Javax.servlet.http.Cookie

Javax.servlet.http.HttpCookie Javax.servlet. Cookie

Javax.servlet.http. HttpCookie

二、 简答题,共6题,每题5分,总共30分。

1. 说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法

2、简述synchronized和java.util.concurrent.locks.Lock的异同 ?

3、EJB的几种类型

4、列举出五个j2ee常用的设计模式?说明工厂模式

5、 EJB的角色和三个对象

6、JSP和Servlet有哪些相同点和不同点,它们之间的联系是什么?

三、 编程题,共10分。按要求写出程序实现的代码。

根据图片编写JSP程序,

<%@ page contentType=\<%@ page language=\

答案 选择:

1 C 11 A 21 C 简答:

2 D 12 D 22 A 3 B 13 A 23 C 4 C 14 A 24 D 5 A 15 C 25 B 6 B 16 A 26 C 7 A 17 B 27 B 8 A 18 A 28 A 9 C 19 A 29 A 10 A 20 A 30 C 1、Session Facade Pattern:使用SessionBean访问EntityBean

Message Facade Pattern:实现异步调用

EJB Command Pattern:使用Command JavaBeans取代SessionBean,实现轻量级访问 Data Transfer Object Factory:通过DTO Factory简化EntityBean数据提供特性 Generic Attribute Access:通过AttibuteAccess接口简化EntityBean数据提供特性 Business Interface:通过远程(本地)接口和Bean类实现相同接口规范业务逻辑一致性

EJB架构的设计好坏将直接影响系统的性能、可扩展性、可维护性、组件可重用性及开发效率。项目越复杂,项目队伍越庞大则越能体现良好设计的重要性。 。

2、主要相同点:Lock能完成synchronized所实现的所有功能

主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。

3、会话(Session)Bean ,实体(Entity)Bean 消息驱动的(Message Driven)Bean 会话Bean又可分为有状态(Stateful)和无状态(Stateless)两种

实体Bean可分为Bean管理的持续性(BMP)和容器管理的持续性(CMP)两种 4、Factory(工厂模式), Builder(建造模式), Factory Method(工厂方法模式),

Prototype(原始模型模式),Singleton(单例模式), Facade(门面模式), Adapter(适配器模式), Bridge(桥梁模式), Composite(合成模式), Decorator(装饰模式), Flyweight(享元模式), Proxy(代理模式), Command(命令模式), Interpreter(解释器模式), Visitor(访问者模式), Iterator(迭代子模式), Mediator(调停者模式), Memento(备忘录模式), Observer(观察者模式), State(状态模式), Strategy(策略模式), Template Method(模板方法模式), Chain Of Responsibleity(责任链模式) 工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。

5、一个完整的基于EJB的分布式计算结构由六个角色组成,这六个角色可以由不同的

开发商提供,每个角色所作的工作必须遵循Sun公司提供的EJB规范,以保证彼此之间的兼容性。这六个角色分别是EJB组件开发者(Enterprise Bean Provider) 、应用组合者(Application Assembler)、部署者(Deployer)、EJB 服务器提供者(EJB Server Provider)、EJB 容器提供者(EJB Container Provider)、系统管理员(System Administrator)

三个对象是Remote(Local)接口、Home(LocalHome)接口,Bean类。

6、JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。

JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。

编程

多选型列表框

多选型列表框




<%= request.getParameter(\ 的职业是

<%

//取得job控制项的输出值, 输出值为一字串矩阵

String jobAry[] = request.getParameterValues(\//取得矩阵的长度

int jobArylen = java.lang.reflect.Array.getLength(jobAry);

//利用for循环将jobAry矩阵中的元素取出, 并利用if判断语句进行比对 for(int i = 0; i < jobArylen; i++) { }

%>

<%

//利用if语句比对jobAry字串矩阵中的值 if (jobAry[i].equals(\ out.println(\学生\

else if (jobAry[i].equals(\ out.println(\教师\ else if (jobAry[i].equals(\ out.println(\程序员\ else if (jobAry[i].equals(\ out.println(\医生\else if (jobAry[i].equals(\ out.println(\技术员\ %>

(序号: <%= jobAry[i] %> )
<%

多选型列表框



<%= request.getParameter(\ 的职业是

<%

//取得job控制项的输出值, 输出值为一字串矩阵

String jobAry[] = request.getParameterValues(\//取得矩阵的长度

int jobArylen = java.lang.reflect.Array.getLength(jobAry);

//利用for循环将jobAry矩阵中的元素取出, 并利用if判断语句进行比对 for(int i = 0; i < jobArylen; i++) { }

%>

<%

//利用if语句比对jobAry字串矩阵中的值 if (jobAry[i].equals(\ out.println(\学生\

else if (jobAry[i].equals(\ out.println(\教师\ else if (jobAry[i].equals(\ out.println(\程序员\ else if (jobAry[i].equals(\ out.println(\医生\else if (jobAry[i].equals(\ out.println(\技术员\ %>

(序号: <%= jobAry[i] %> )
<%

本文来源:https://www.bwwdw.com/article/zgio.html

Top