web测试题

WEB测试题

第一部分
Posted 九月 15th, 2007 by goodlove选择填空题:全部为多选题,只有全部正确才能得分。

JDBC部分:

1. 典型的JDBC程序按( DBECFA)顺序编写。

A. 释放资源

B. 获得与数据库的物理连接

C. 执行SQL命令

D. 注册JDBC Driver

E. 创建不同类型的Statement

F. 如果有结果集, 处理结果集

2. JDBC驱动程序的种类有____C___。

A. 两种 B. 三种 C. 四种 D. 五种

3. Oracle驱动程序类是oracle.jdbc.driver.OracleDriver, 通过类装载器(ClassLoader)加载的程序语句是__Class.forName (_"oracle.jdbc.driver.OracleDriver")___;实例化驱动程序后用DriverManager注册的程序语句是 DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver())__;在命令行指定系统属性的注册方式是
java -Djdbc.driver=oracle.jdbc.driver.OracleDriver。

4. 执行同构的SQL,用___C___; 执行异构的SQL, 用____B____;调用存储进程或函数用____A____。

A. CallableStatement B. Statement C. PreparedStatement

5. JDBC接口Connection中创建Statement的方法是_createStatement_____;创建 PreparedStatement的方法是___prepare Statememt()_____;创建CallableStatement的方法是__prepare Call()______。

6. 接口Statement中定义的execute方法的返回类型是__C______, 代表的含义是___E_____;
executeQuery方法返回的类型是____A____; executeUpdate返回的类型是___B_____, 代表的含义是___D____。

A. ResultSet B. int C. boolean

D. 受影响的记录数量 E. 有无ResultSet返回

7. 以下是类图和对应的表,类中所有属性的类型是String类型写出建表的sql脚本

create table customer(
firstname varchar2(20),
lastname varchar2(20),
customerold varchar2(20) primary key,
soulation varchar2(20));

8. JDBC编程的异常类型分为____A____和____C____。

A. SQLException B. SQLError C. SQLWarning

D. SQLFatal E. SQLTruncation

9. 添上空缺的代码,实现程序对事务的控制:

String dburl = “jdbc:oracle:thin:@192.168.1.200:1521:BRIUPDB”;

Connection con = = DriverManager.getConnection(dburl, “briup”, “briup”);

con.setAutoCommit(false);

10. 在接口Connection中定义了方法setTransactinIsolation, 它使用一些常量作为参数指定控制数据库并发操作的隔离级别,设置隔离层次_____E___只解决了dirty reads; 设置隔离层次___D_____只可以做到repeatable reads; 设置隔离层次____C____可以解决phantom reads。

A. TRANSACTION_NONE

B. TRANSACTION_READ_UNCOMMITED

C. TRANSACTION_SERIALIZABLE

D. TRANSACTION_REPEATABLE_READ

E. TRANSACTION_READ_COMMITED

11. 如果要限制某个查询语句返回的最多的记录数,可以通过调用Statement的方法____C____来实现。

A. setFetchSize B. setMaxFieldSize C. setMaxRows

12. 在JDBC 2.0里定义了新的特性,如ResultSet里的Cursor可以自由移动,并且是可以更新的,这要求我

们在创建Statement时用一些常量参数来 指定。在ResultSet里定义的常量有TYPE_SCROLL_INSENSITIVE, TYPES_CROLL_SENSITIVE, CONCUR_READ_ONLY, CONCUR_UPDATABLE。请填空完善下面的代码,创建一个可更新的,对其他并行修改敏感的ResultSet:

String dburl = “jdbc:oracle:oci:@192.168.1.200:1521:BRIUPDB”;

Connection con = DriverManager.getConnection(dburl, “briup”, “briup”);

Statement stm = con.createStatement(___ResultSet.TYPE_SCROLL_SENSITIVE_____, ResultSet.CONCUR_UPDSTSBLE________);

ResultSet rs = stm.executeQuery(“select studentid, name from student”);

13. 以下哪些是定义在ResultSet中用于Cursor定位的方法:ABCEF

A. next() B. beforeFirst() C. afterLast()

D. isBeforeFirst() E. absolute(int) F. relative(int)

14. 从12题获得了一个ResultSet rs, 请填空完善下面代码通过rs插入一条新记录:

rs.moveToinsertRow();

rs.updateString(1, “s040140”);

rs.updateString(2, “George Zhu”);

rs.insertRow();

15. 接口RowSet继承了接口___B_____。可以调用RowSet中的方法___C_____来填充其数据区。

A. Statement B. ResultSet C. update D. populate

16. DataSource是___B_____类型,可以调用DataSource的方法___D_____获得数据库连接。

A. Delegate B. Factory C. connect D. getConnection

JAVA WEB部分:

1. 基于HTTP协议的Servlet通常继承___C_____, 也可以继承____B____。这些类型都实现了接口_____A___。

A. javax.servlet.Servlet B. javax.servlet.GenericServlet

C. javax.servlet.http.HttpServlet

2. 我们实现的基于HTTP协议的Servlet的服务方法签名正确的有____BC___________________。

A. public void doGet(ServletRequest req, ServletResponse res) throws IOException, ServletException

B. public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException

C. public void service(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException

D. public void service(ServletRequest req, ServletResponse res) throws IOException, ServletException

3. 在Servlet中要输出内容,使用HttpServletResponse的方法___D_____设置内容,对于文本类型调用方法___K_____ 获得一个____L____的输出流, 对于二进制类型调用___F_____获得____J____的输出流。调用HttpServletRequest的方法____I____解析有名参 数,调用___E_____获得一个___A_____的输入流。在Servlet中也可以调用____B____和____C____的方法 ____G____获得___H_____, 将请求的处理权交给一个新的资源。

A. ServletInputStream B. ServletContext C. HttpServletRequest

D. setContentType E. getInputStream F. getOutputStream

G. getRequestDispatcher H. RequestDispatcher I. getParameter

J. ServletOutputStream K. getWriter L. PrintWriter

4. 控制一个Servlet的生命周期的方法有___C_____, ____B____和___A_____。其中___C_____在所有的请求到来之前调用,____A

____在撤消应用或关闭web container时调用。Servlet通常只有一个实例,被所有的访问者共享,因此要注意资源的同步。

A. destroy B. service C. init

5. 以下是部署在主机https://www.360docs.net/doc/9f8807783.html, 80口上的web应用webdev的部署描述文件web.xml的一部分:



accountServlet

com.briup.account.AccountServlet

interestRate

0.012

accountServlet

/account/*



一个客户在浏览器的地址栏输入了如下URL:

https://www.360docs.net/doc/9f8807783.html,/webdev/account/deposit?accno=1212&amt=1000

调用____E____或___G_____的方法___F___可以获得初始参数interestRate的值。在accountServlet 中调用HttpServletRequest的getRequestURI返回___H_____, 调用getQueryString返回____B____,调用getContextPath返回____A____, 调用getServletPath返回____C____,调用getPathInfo返回____D____。

A. /webdev B. accno=1212&amt=1000 C. /account

D. /deposit E. Servletconfig F. getInitParameter

G. HttpServlet H. /webdev/account/deposit

6. 以下是部署在主机https://www.360docs.net/doc/9f8807783.html, 80口上的web应用webdev的部署描述文件web.xml的一部分:



jdbc/accountdb

javax.sql.DataSource

Container

Shareable



完善以下代码,在AccountServlet的init方法中得到DataSource.

package com.briup.account;

import javax.naming.*;

import javax.sql.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class AccountServlet extends __Httpservlet______{

private DataSource ds;

public void init() throws ServletException{



try{

Context ctx = __new Initailcontext()______;

ds = _(DataSource)ctx.lookup("java:com/env/jdbc/accountdb")_______;

}catch(NamingException ne){…}

}

}

7. 在Java Web开发中,跟踪客户状态的手段可通过___B_____和____F____; 增加一个新的cookie, 调用___E_____的____C____方法;要在服务器端查询cookie, ___A_____的_____D___方法。Session的类型是____H____, 获得session的途径是调用___A_____的方法_____G___。

A. HttpServletRequest B. Session C. addCookie

D. getCookies E. HttpServletResponse F. Cookie

G. getSession H. HttpSession

8. 将session与浏览器联系起来的手段有Cookie和URL rewriting, 所用Cookie变量却省为____B____, URL rewriting的却省参数是____A____。URL rewriting通过调用HttpServletResponse的____D____重写重定向资源,调用___C_____重写一般资源。

A. jsessionid B. JSESSIONID C. encodeURL

D. encodeRedirectURL

9. Java Web应用中往往通过设置不同作用域的属性来达到通讯的目的。如果某个对象只在同一请求中共享,通过调用___B_____的setAttribute方 法设置属性, 也可通过____C____事件侦听器实现;如果在不同的请求中传递某一客户的状态,调用___A______的setAttribute方法设置属性, 也可通过____F____事件侦听器实现;如果某个对象被所有的访问者共享,把这个对象设置为___D_______的属性即可

,也可通过 ____E____事件侦听器实现。

A. HttpSession B. HttpServletRequest C. ServletRequestListener

D. ServletContext E. ServletContextListener F. HttpSessionListener

10. Filter必须实现接口____I____, 它只有一个实例,控制生命周期的方法是____F____,___G_____和___H_____; 在提供服务之前被调用方法的参数类型是____J____;服务方法的参数类型是____B____,____C____和____A____。如果要截 取请求,我们会提供__E______类型的封装类;如果截取应答,我们会提供_____D___类型的封装类,截取应答的标志是在调用 ____A____类型对象的____G____方法后继续有代码处理应答。

A. FilterChain B. ServletRequest C.ServletResponse

D.HttpServletResponseWrapper E. HttpServletRequestWrapper

F. init G. doFilter H. destroy

I. Filter J. FilterConfig

11. 以下JSP代码属于directive的有__BG_K;属于表达式(expression)的有__AH______;属于申明 (declaration)的有____F____;属于脚本程序(scripleting)的有___EJ_____;属于action的有 ___CID_____。

A. <%=12%>

B. <%@include file=”header.html”%>

C.

D.

E. <% int i = 10; %>

F. <%! int i = 10; %>

G. < %@taglib uri=”https://www.360docs.net/doc/9f8807783.html,/jstl/core” prefix=”c”%>

H. <%=new java.util.Date()%>

I.
J. <% response.sendRedirect(“https://www.360docs.net/doc/9f8807783.html,”); %>
K. <%@page contentType=”text/html; charset=gb2312”%>

12. 在directive page中,____B____属性可反复出现, ____AC____属性的却省值为true, ____E____属性的值指向处理异常的页面,___D_____表示激活EL。

A. autoFlush B. import C. session

D.isELIgnored=false E. errorPage

13. 有一个JavaBean com.briup.Student, 在JSP中用action在session作用域里创建一个对象hellen的语句是_______________________。

14. 在JSP中用action对13题的hellen对象的name属性赋值”Hellen”的语句是________________________,等 价于脚本___<%hellen.setName("Hellen");%>__________________。

15. 以下___ABCD_____是JSP中正确的注释:

A. <%--comments--%> B. <% //comments %>

C. D. <%! /* comments */ %>

16. 以下__A_B_____是错误的:

A. <%! int i = 10; int j = 10; i += j; %>

B. <% int getHash(String str) { return str.hashCode(); } %>

C. <%! class A { void print(){System.out.println(“in A”);}} %>

17. 在JSP中有很多隐含变量,request的类型是___C_____, response的类型是___I____, page的类型是___E_____, pageContext的类型是___B____, session的类型是___D_____, application的类型是___G_____, config的类型是___F_____, out的类型是____H____, exception的类型是___A_____。

A. https://www.360docs.net/doc/9f8807783.html,ng.Throwable B. javax.servlet.jsp.PageContext

C.javax.servlet.http.HttpServletRequest

D. javax.servlet.http.HttpSession

E. javax.servelet.jsp.JspPage F. javax.servlet.ServletConfig

G. javax.servlet.ServletContext H. javax.servlet.jsp.JspWriter

I.javax.servlet.http.HttpServletResponse


18. JSP在处理客户请求前会被编译成servlet, JSP中declaration中定义的变量和方法在运行时成为对应servlet的__B______变量和方法; scripting会成为服务方法__C______的语句。JSP的生命周期受到___A_____,____C____和___D_____的控制。

A. jspInit B. member C. _jspService D. jspDestroy

19. 在web应用webdev的WEB-INF的目录下有一个标签库描述文件sample.tld, 其内容部分如下:

hello

com.briup.tags.HelloTag

empty

user

true

false

https://www.360docs.net/doc/9f8807783.html,ng.String

在hello.jsp中要使用标签hello, 因此必须先引入该标签库,语句是_
<%@ taglib uri="/WEB-INF/sample.tld" prefix="s" />_______________。要用hello标签在页面上给”world“打招呼的语句是________________。

20. 在web应用webdev的WEB-INF/tags目录下放置了一些标签文件,用前缀”me”引入这些标签到一个jsp的 directive taglib的表达式是__
<%@ taglib tagdir="/WEB-INF/tags" prefix="me" />______________。

21. 一个没有body的标签其tag handler要实现接口___C_____;如果某个标签有body, 但标签不与body交互,tag handler要实现接口___E_____, 如果要与body交互,tag handler要实现接口__D_____。通常前两种情况的tag handler会继承____A____, 最后一种情况tag handler会继承___B_____。

A. javax.servlet.jsp.tagext.TagSupport

B. javax.servlet.jsp.tagext.BodyTagSupport

C. javax.servlet.jsp.tagext.Tag

D. javax.servlet.jsp.tagext.BodyTag

E. javax.servlet.jsp.tagext.IterationTag

22. 在EL中以下___B_____可以获得requestURI:

A. ${requestScope.request.requestURI}

B. ${pageContext.request.requestURI}

C. ${requestScope.requestURI}

23. EL中可使用一些隐含对象,通过___C_____可以访问request中的属性(attriubte), 通过___A_____可以访问session中的属性, 通过__B______可以访问application中的属性, 通过___D_____可以访问浏览器输入的参数,通过___G_____可以访问请求头中的参数,通过____E____可以访问web应用的参数,通 过__F______可以访问cookie。

A. sessionScope B. applicationScope C. requestScope

D. param E. initParam F. cookie

G. header

24. 在EL中能够访问的函数(function)必须是___A_____。

A. public static B. protected C. protected static

D. public static void F. protected static void

25. 在EL中访问JavaBean Student的对象smallTank的属性name正确的是___ABC_____。

A. ${https://www.360docs.net/doc/9f8807783.html,} B. ${smallTank[‘name’]}

C. ${smallTank[“name”]} D. ${smallTank(‘name’)}

26. 完善以下代码,使用EL和jstl标签if来判断是否从浏览器输入了参数user:

<%@taglib uri=”https://www.360docs.net/doc/9f8807783.html,/jstl/core” prefix=”c”%>

参数user没有输入。

27. 完善以下代码,使用EL和jstl标签forEach和out来输出集合中的Student对象的id, name属性。Student的一个构造方法的签名是public Student(String id, String name)。

<%@taglib uri=

”https://www.360docs.net/doc/9f8807783.html,/jstl/core” prefix=”c”/>

<%

java.util.Collection c = new java.util.ArrayList();

c.add(new Student(“01”, “Wang”));

c.add(new Student(“02”, “Zhang”));

c.add(new Student(“03”, “Jiang”));

request.setAttriubte(“students”, c);

%>

ID:

Name:

28. Struts提供MVC的一个实现,是Java Web应用的一个框架(Framework). 它主要采用了____D____模式。浏览器请求被控制器servlet ____A____截取,控制器将浏览器表单的输入封装到____F____类型的JavaBean对象中,如果应用需要作合法性检测,该 ___G_____的方法会被调用,该方法的返回类型是___B_____。如果合法性检测正确,控制器会将调用类型为___H_____对象的方法 ___E____处理请求,该方法返回类型为___C_____。

A. org.apache.struts.action.ActionServlet

B. org.apache.struts.action.ActionErrors

C. org.apache.struts.action.ActionForward

D. command

E. execute

F. org.apache.struts.action.ActionForm

G. validate

H. org.apache.struts.action.Action

29. 使用Tomcat,我们通常会设置环境变量____C____指向安装目录; web应用的却省部署目录在安装目录下的____A____子目录;如果有多个web应用共享的包如数据库驱动程序,我们应该将其放置在安装目录的 ____D____子目录;Tomcat的主要配置文件是安装目录下__B___子目录下的____F___;Tomcat 5的应用相关的配置文件放在安装目录下____E____子目录。

A. webapps B. conf C. CATALINA_HOME

D. common/lib E. conf/Catalina/ F. server.xml

30. 与weblogic相关的web应用部署描述文件是__C______。___AEFG_____会在该文件中有相应的映射描述。

A. EJB reference B. Environment entry

C. weblogic.xml D. weblogic-ejb.jar.xml

E. Security assignemnt F. Resource reference

G. Resource enironment reference


第二部分
(1) 以下关于HTML的说法哪些是正确的?(多选)
A) HTML是一种Web客户与Web服务器之间的通信协议
B) HTML是一种标记语言
C) Windows的文本编辑器(NotePad)能够解析HTML文件
D) 浏览器能够解析HTML文件


(2)以下哪些属于HTML标记?(多选)
A) B) C)

D)


(3) 以下关于HTTP的说法哪些是正确的?(多选)
A) HTTP是一种Web客户与Web服务器之间的通信协议
B) HTTP是一种标记语言
C) HTTP协议建立在TCP/IP协议基础之上
D) 浏览器能够解析HTTP文件

(4) 在JDK中,把Java源程序编译为类文件的命令是什么?(单选)
A)java B)javac C)jar D)compile

(5)对于以下程序代码:
int a=9;
int b=0;
if(a>9)
b=1;
else
b=-1;

执行完以上程序代码,变量b的取值是什么?(单选)

A)0 B)0 C)1 D)-1


(6)以下程序共创建了几个Java对象?(单选)
Integer o1=new Integer(10);
Integer o2=new Integer(10);
Integer o3=o1;
A)0 B)1 C)2 D)3

(7

)在第一行创建的Integer对象在什么时候结束生命周期?(单选)
Integer o1=new Integer(10); //line1
Integer o2=o1; //line2
o1=null; //line3
o2=new Integer(10); //line4
o2=null; //line5

A) line2 B)line3 C)line4 D)line5


(8)下面程序的功能是输出以下形式的金字塔图案是什么?(单选)
*
***
*****
*******

for(int i=1;i<=4;i++){
for(int j=1;j<=4-i;j++) System.out.print(\" \");
for(int j=1;j<=_______;j++) System.out.print(\"*\");
System.out.print(\"
\");
}

在下划线处应填入的是什么?(单选)
A)i B)2*i-1 C)2*i+1 D)i+2


(9)以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?(单选)
Object o = new String(\"abcd\");
String s = o;
System.out.println(s);
System.out.println(o);

A)不能编译通过 B)能编译通过,并正常运行,打印两个“abcd”
C) 编译通过,但运行时抛出ClassCastException


(10) 对于以下代码:
public class Qdd1f {
public long sum(long a, long b) { return a + b; }
// 此处插入一行
}
下面哪些语句放到以上插入行,可以编译通过?(多选)
A) public int sum(int a, int b) { return a + b; }
B) public int sum(long a, long b) { return 0; }
C) abstract int sum();
D) private long sum(long a, long b) { return a + b; }
E) public long sum(long a, int b) { return a + b; }



答案:
(1)B,D (2)A,B,C (3)A,C (4)B (5)D (6)C (7)C (8)B (9)A (10)A,E

本文来自CSDN博客,转载请标明出处:https://www.360docs.net/doc/9f8807783.html,/SmartTony/archive/2008/01/24/2062300.aspx

第三部分
(1)假设在helloapp应用中有一个hello.jsp,它的文件路径如下:
%CATALINA_HOME%/webapps/helloapp/hello/hello.jsp
那么在浏览器端访问hello.jsp的URL是什么? (单选)
选项:
(A) http://localhost:8080/hello.jsp
(B) http://localhost:8080/helloapp/hello.jsp
(C) http://localhost:8080/helloapp/hello/hello.jsp

(2)假设在helloapp应用中有一个HelloServlet类,它位于org.javathinker包下,那么这个类的class文件应该放

在什么目录下? (单选)
选项:
(A) helloapp/HelloServlet.class
(B) helloapp/WEB-INF/HelloServlet.class
(C) helloapp/WEB-INF/classes/HelloServlet.class
(D) helloapp/WEB-INF/classes/org/javathinker/HelloServlet.class

(3)假设在helloapp应用中有一个HelloServlet类,它在web.xml文件中的配置如下:

HelloServlet
org.javathinker.HelloServlet



HelloServlet
/hello

那么在浏览器端访问HelloServlet的URL是什么? (单选)
选项:
(A) http://localhost:8080/HelloServlet
(B) http://localhost:8080/helloapp/HelloServlet
(C) http://

localhost:8080/helloapp/org/javathinker/hello
(D) http://localhost:8080/helloapp/hello


(4)客户请求访问HTML页面与访问Servlet有什么异同?(多选)
选项:
(A)相同:都使用HTTP协议
(B)区别:前者Web服务器直接返回HTML页面,后者Web服务器调用Servlet的方法,由Servlet动态生成HTML页面
(C)相同:前者Web服务器直接返回HTML页面,后者Web服务器直接返回Servlet的源代码。
(D)区别:后者需要在web.xml中配置URL路径。
(E)区别:前者使用HTTP协议,后者使用RMI协议。


(5)HttpServletRequest对象是由谁创建的?(单选)
选项:
(A)由Servlet容器负责创建,对于每个HTTP请求, Servlet容器都会创建一个HttpServletRequest对象
(B)由JavaWeb应用的Servlet或JSP组件负责创建,当Servlet或JSP组件响应HTTP请求时,先创建

HttpServletRequest对象


(6)从HTTP请求中,获得请求参数,应该调用哪个方法? (单选)
选项:
(A)调用HttpServletRequest对象的getAttribute()方法
(B)调用ServletContext对象的getAttribute()方法
(C)调用HttpServletRequest对象的getParameter()方法