16.表单提交后,动作指令才会执行。(对)
三、填空题
1.在Web服务器端使用JavaBean,将原来页面中程序片完成的功能封装到JavaBean中,这样能很好地实现 业务逻辑层与视图层的分离。 2.JavaBean中用一组set方法设置Bean的私有属性值,get方法获得Bean的私有属性值。set和get方法名称与属性名称之间必须对应,也就是:如果属性名称为xxx,那么set和get方法的名称必须为 setXxx() 和 getXxx() 。 3.用户在实际Web应用开发中,编写Bean除了要使用import语句引入Java的标准类,可能还需要自己编写的其他类。用户自己编写的被Bean引用的类称之为 Bean的辅助类 。
4.创建JavaBean的过程和编写Java类的过程基本相似,可以在任何Java的编程环境下完成 编写、编译和发布 。 5.布置JavaBean要在Web服务目录的WEB-INF\\classes文件夹中建立与 Bean的包名 对应的子目录,用户要注意目录名称的大小写。 6.使用Bean首先要在JSP页面中使用 import 指令将Bean引入。
7.要想在JSP页面中使用Bean,必须首先使用 动作标记在页面中定义一个JavaBean的实例。 8.scope属性代表了JavaBean的作用范围,它可以是page、 request 、session和application四个作用范围中的一种。
四、思考题
1.JavaBean和一般意义上的Java类有何区别? 2.简述值Bean的编写方法,有哪些注意点?
3.如何实现一个Bean的属性与表单参数的关联? 4.如何在页面的程序片中使用Bean?
5.试述request、session和application有效范围的Bean生命周期?
第六章 文件访问
一、选择题
1.Java提供的流类,从功能上看将数据写入文件的流称为( B ) A)输入流 B)输出流 C)字符流 D)字节流 2.Java提供的流类,从所操作的数据单位来看将数据写入文本文件的流称为( C ) A)输入流 B)输出流 C)字符流 D)字节流
3.下列File对象的哪个方法能够判断给定路径下的文件是否存在。( C ) A)canRead() B)canWrite() C)exists() D)isDirectory() 4.下列File对象的哪个方法能够判断应用程序能否读取给定路径下的文件对象。( A )
A)canRead() B)canWrite() C)exists() D)isDirectory()
5.下列File对象的哪个方法能够判断应用程序能否向给定路径下的文件对象写入数据。( B )
A)canRead() B)canWrite() C)exists() D)isDirectory()
6.下列File对象的哪个方法能够判断File对象对应的路径是否为目录。( D ) A)canRead() B)canWrite() C)exists() D)isDirectory()
7.下列File对象的哪个方法能够判断File对象对应的路径是否为文件。( A ) A)isFile() B)createNewFile() C)lastModified() D)length()
8.下列File对象的哪个方法能够创建一个新文件,如果创建成功返回true,否则返回false(该文件已经存在)。( B ) A)isFile() B)createNewFile() C)mikdir() D)length()
9.下列File对象的哪个方法能够创建File对象对应的路径,如果创建成功返回true,否则返回false(该目录已经存在)( C ) A)isFile() B)createNewFile() C)mikdir() D)length()
10.下面是FileInputStream读取文件的代码片段: File file1=new File(fileName);
FileInputStream finput=new FileInputStream(file1); int size=finput.available();
BufferedInputStream buffer1=new BufferedInputStream(finput); byte b[]=new byte[90]; int n=0; while((n=buffer1.read(b))!=-1){ allFilesmess.append(new String(b,0,n));
} buffer1.close(); finput.close();
除最后一次外,代码中buffer1.read(b)每次读取文件的字节数?(A) A)90 B)89 C)n D)size/n
11.下面是FileOutputStream对象写入的代码片段: String filesMess=”abcdef”; FileOutputStream outf=new FileOutputStream(fileName); BufferedOutputStream bufferout= new BufferedOutputStream(outf); byte b[]=this.filesMess.getBytes(); bufferout.write(b); bufferout.flush(); bufferout.close(); outf.close();
代码执行后,文件中会写入哪个字符串的字节码(B ) A)”filesMess” B)”abcdef” C)”b” D)不确定
12.下面是FileReader对象读取文本文件的代码片段: StringBuffer temp=new StringBuffer(); if(fileName!=null){ String strTemp=null; FileReader fr=new FileReader(fileName); BufferedReader buffer1=new BufferedReader(fr); while((strTemp=buffer1.readLine())!=null){ byte bb[]=strTemp.getBytes(); strTemp=new String(bb); temp.append(\ } allFilesmess=\ buffer1.close(); fr.close();
代码中buffer。readLine()每次读取文件的字符数?(D) A)一个字符 B)一行字符包括换行符
C)bb.length个 D)一行字符不包括换行字符
13.BufferedReader处理Reader类中的方法外,还提供了public String readLine()方法,该方法读入一行文本,这里的“一行”指字符串以“\\n”或什么做结尾。()
A)\\t B)\\f C)\\r D)\\p
二、判断题
1.使用Java的输入流读取数据的时候,就会开启一个通向数据源的通道,这个数据源可以是文件,内存,或是网络连接等。(对)
2.使用Java的输出流写入数据的时候,就会开启一个通向目的地的通道,这个目的地可以是文件,但不能是内存或网络连接等。(错) 3.字节流一般是用来读入或写出二进制数据。(对)
4.“纯文本”类的信息,一般使用字符流来进行处理。(对)
5.创建一个File对象,就会在某个物理路径下创建一个文件或目录。(错) 6.File类直接处理文件和文件系统,它并不涉及文件的读写操作。(对)
7.Java程序一般用字符流处理二进制字节对象,用字节流处理字符或字符串对象。(错) 8.InputStream抽象类的read方法出错后一定会抛出一个IOException异常。(对) 9.OutputStream抽象类的write方法出错后一一定会抛出一个IOExcetption异常。(对)
10.BufferedReader提供了public String readLine()方法,该方法从文件中读入一行文本,如果已到达流结尾而未读入任何文字,则返回-1。(错)
11.RandomAccessFile类即不是输入流类InputSteam的子类,也不是输出流类OutputStream的子类,但它同时实现了DataInput和DataOutput接口。(对) 12.使用RandomAccessFile类访问文件的程序,不可以随意改变文件指针位置。(错)
三、填空题
1.Java中有四个“输入/输出”的抽象类,InputStream、 OutputStream 、Reader和 Writer 。 InputStream 和 OutputStream 用于做字节流输入输出操作, Reader 和 Writer 用于做字符流输入输出操作。 2.按照HTTP协议的规定,上传的临时文件 第二 行有上传文件的文件名信息,第四 行结束位置到倒数 第六 行结束位置之间的内容是文件本身部分。 3.response对象的 setContentType() 用来定义服务器发送给客户端的MIME类型。 4. Word文件 的MIME类型是“application/msword”, Excel文件 的MIME类型是“application/msexcel”。
四、思考题
1.字节流和字符流有何区别?
2.BufferedInputStream与FileInputStream如何配合使用? 3.BufferedOutputStream与FileOutputStream如何配合使用? 4.BufferedReader与FileReader如何配合使用? 5.BufferedWriter与FileWriter如何配合使用? 6.RandomAccessFile访问文件有何特点? 7.如何处理文件读写操作中发生的异常?
第七章 数据库访问
一、选择题 1.下面哪一项不是JDBC的工作任务?(C)
A)与数据库建立连接 B)操作数据库,处理数据库返回的结果 C)在网页中生成表格 D)向数据库管理系统发送SQL语句 2.下面哪一项不是加载驱动程序的方法?(A)
A)通过DriverManager.getConnection方法加载 B)调用方法 Class.forName
C)通过添加系统的jdbc.drivers属性 D)通过registerDriver方法注册
3.关于分页显示,下列的叙述哪一项是不正确的?(A)
A)只编制一个页面是不可能实现分页显示的 B)采用一至三个页面都可以实现分页显示
C)分页显示中,记录集不必在页面跳转后重新生成 D)分页显示中页面显示的记录数可以随用户输入调整
4.在建立JSP网站目录时需要遵循一些规则,以下规则错误的是:(B)
A)每个主要栏目开设一个相应的子目录
B)所有flash, avi, ram, quicktime 等多媒体文件存放在根目录下 C)根目录一般只存放index.htm以及其他必须的系统文件 D)目录建立应以最少的层次提供最清晰简便的访问结构
5.如果将E:\\MyWeb作为JSP网站目录,需要修改哪个文档?(A)
A)server.xml B)server.htm C)index.xml D)index.htm 6.DriverManager类的getConnection(String url,String user,String password)方法中,参数url的格式为jdbc:<子协议>:<子名称>,下列哪个url是不正确的?(A) A)”jdbc:mysql://localhost:80/数据库名” B)”jdbc:odbc:数据源”
C)”jdbc:oracle:thin@host:端口号:数据库名”
D)”jdbc:sqlserver://172.0.0.1:1443;DatabaseName=数据库名” 7.在JDBC中,下列哪个接口不能被Connection创建(D)。
A)Statement B)PreparedStatement C)CallableStatement D)RowsetStatement 8.下面是加载JDBC数据库驱动的代码片段:
try{
Class.forName(\ }
catch(ClassNotFoundException e){ out.print(e); }
该程序加载的是哪个驱动?()
A)JDBC-ODBC桥连接驱动 B)部分Java编写本地驱动 C)本地协议纯Java驱动 D)网络纯Java驱动
9.下面是创建Statement接口并执行executeUpdate方法的代码片段: conn=DriverManager.getConnection(\ stmt=conn.createStatement();
String strsql=\李','清华出版社',35)\ n=stmt.executeUpdate(strsql);
代码执行成功后n的值为 (A)。
A)1 B)0 C)-1 D)一个整数
10.下列代码中rs为查询得到的结果集,代码运行后表格的每一行有几个单元格(B )
while(rs.next()){ out.print(\
out.print(\ out.print(\ out.print(\
out.print(\ out.print(\ out.print(\ }
A)4 B)5 C)6 D)不确定
11.下面哪个命令组合能够启动mysql数据库服务( A )
A) B) C)6 D) mysqld-nt e: use book start cd mysql cd bin Mysql -u root
12.下面哪个命令组合能够打开mysql数据库监视窗口( B )
A) B) C)6 D) mysqld-nt e: use book start cd mysql cd bin Mysql -u root
13.下面的代码是连接哪个数据库的驱动加载片段( A ) try{
Class.forName(\ }
catch(Exception e){
out.print(e.toString()); }
A)Oracle B)Sql Server C)MySql D)不确定
14.下面的代码是连接哪个数据库的驱动加载片段( B ) try{
Class.forName(\ }
catch(Exception e){
out.print(e.toString()); }
A)Oracle B)Sql Server C)MySql D)不确定 15.查询结果集ResultSet对象是以统一的行列形式组织数据的,执行ResultSet rs = stmt.executeQuery (\语句,得到的结果集rs的列数为( B ) A)4 B)5
C)6 D)不确定 16.下列代码生成了一个结果集
conn=DriverManager.getConnection(uri,user,password);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(\下面哪项对该rs描述正确的是(B)
A)只能向下移动的结果集 B)可上下滚动的结果集 C)只能向上移动的结果集 D)不确定是否可以滚动 17.下列代码生成了一个结果集
conn=DriverManager.getConnection(uri,user,password);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(\下面哪项对该rs描述正确( A )
A)不能用结果集中的数据更新数据库中的表 B)能用结果集中的数据更新数据库中的表 C)执行update方法能更新数据库中的表 D)不确定
18.下列代码生成了一个结果集
conn=DriverManager.getConnection(uri,user,password);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(\下面哪项对该rs描述正确( B )
A)数据库中表数据变化时结果集中数据不变
B)数据库中表数据变化时结果集中数据同步更新 C)执行update方法能与数据库中表的数据同步更新 D)不确定
19.下列代码生成了一个结果集
conn=DriverManager.getConnection(uri,user,password);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(\rs.first();
下面哪项对该rs描述正确(A) A)rs.isFirst()为真 B)rs.ifLast()为真
C)rs.isAfterLast()为真 D)rs.isBeforeFirst()为真 21.下列代码生成了一个结果集
conn=DriverManager.getConnection(uri,user,password);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(\rs.first();rs. previous();
下面哪项对该rs描述正确(D) A)rs.isFirst()为真 B)rs.ifLast()为真
C)rs.isAfterLast()为真 D)rs.isBeforeFirst()为真 21.下列代码生成了一个结果集
conn=DriverManager.getConnection(uri,user,password);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(\rs.last();rs.next();
下面哪项对该rs描述正确(C) A)rs.isFirst()为真 B)rs.ifLast()为真
C)rs.isAfterLast()为真 D)rs.isBeforeFirst()为真
22.给出了如下的查询条件字符串String condition=\下列哪个接口适合执行该SQL查询(B) A)Statement
B)PrepareStatement C)CallableStatement D)不确定
二、判断题
1.JDBC构建在ODBC基础上,为数据库应用开发人员、数据库前台工具开发人员提供了一种标准,使开发人员可以用任何语言编写完整的数据库应用程序。(错)
2.数据库服务与Web服务器需要在同一台计算机上。(错)
3.JDBC加载不同数据库的驱动程序,使用相应的参数可以建立与各种数据库的连接。(对)
4.Connection.createStatement()不带参数创建Statement对象,不能够来回的滚动读取结果集。(对)
5.使用数据库连接池需要烦琐的配置,一般不宜使用。(错)
6.应用程序分页显示记录集时,不宜在每页都重新连接和打开数据库。(对 ) 7.JDBC中的URL提供了一种标识数据库的方法,使DriverManage类能够识别相应的驱动程序。(对) 8.用户发布Web应用程序,必须修改%TOMCAT_HOME%\\conf\\server.xml文件。(对)
9.进行分页,可调用JDBC的规范中有关分页的接口。(错)
10.JDBC的URL字符串是由驱动程序的编写者提供的,并非由该驱动程序的使用者指定。(对) 11.ResultSet结果集,每一次rs可以看到一行,要在看到下一行,必须使用next()方法移动当前行。(错)
12.如果需要在结果集中前后移动或随机显示某一条记录,这时就必须得到一个可以滚动的结果集。(对)
13.Statement对象提供了int executeUpdate(String sqlStatement)方法,用于实现对数据库中数据的添加、删除和更新操作。(对)
14.Statement对象的executeUpdate(String sqlStatement)方法中,sqlStatement参数是由insert、delete和update等关键字构成的Sql语句,函数返回值为查询所影响的行数,失败返回-1。(错)
15.使用CachedRowSetImpl对象可以节省数据库连接资源,因为这个对象可以保存ResultSet对象中的数据,它不依赖与Connection对象,并且继承了ResultSet的所有方法。(对)
三、填空题
1.JDBC的英文全称是_Java Data Base Connectivity__,中文意义是___Java数据库连接__。 2.简单地说,JDBC能够完成下列三件事:与一个数据库建立连接(connection)、向数据库发送SQL语句(statement) 、 处理数据库返回的结果(resultset) 。 3.JDBC主要由两部分组成:一部分是访问数据库的高层接口,即通常所说的 JDBC API ;另一部分是由数据库厂商提供的使Java程序能够与数据库连接通信的驱动程序,即 JDBC Database Driver 。 4.目前,JDBC驱动程序可以分为四类:JDBC-ODBC桥 、部分用Java来编写的本地API驱动程序 、JDBC网络纯Java驱动程序 、本地协议纯Java驱动程序 。 5.数据库的连接是由JDBC 的__ DrvierManager类___管理的。 6.下面的代码建立Mysql数据库的连接,请填空: try{ Class.forName(\ com.mysql.jdbc.Driver \ }
创建连接的代码如下: try{ //和数据库建立连接 conn=
DriverManager.getConnection( \ jdbc:mysql: //localhost:3306/booklib\ ……
conn.close(); }
catch(Exception e){
out.println(e.toString()); }
7.查询结果集ResultSet对象是以统一的行列形式组织数据的,执行ResultSet rs = stmt.executeQuery (\语句,得到的结果集rs第一列对用 bid ;而每一次rs只能看到 一 行,要在看到下一行,必须使用 next() 方法移动当前行。ResultSet对象使用 getXXX() 方法获得当前行字段的值。
8.stmt为Statement对象,执行String sqlStatement = \bid='tp1001' \语句后,删除数据库表的记录需要执行stmt.executeUpdate ( sqlStatement ); 语句。
9.下面代码是使用数据库连接池获得连接的代码片段: Connection conn;
Context initCtx=new InitialContext();
Context ctx=(Context)initCtx.lookup(\ //获取连接池对象
Object obj=(Object)ctx.lookup(\ //类型转换
javax.sql.DataSource ds=(javax.sql.DataSource)obj; //得到连接 conn=ds. getConnection() ; 四、思考题
1.什么是JDBC编程接口?
2.试列举一个你在编程和调试中碰到的数据库问题及其解决办法。 3.如何实现记录集的行操作? 4.进行记录定位的方法有哪些?
5.什么是数据库连接池?如何使用?
6.使用纯Java驱动操作mysql数据库的步骤?
7.加载Sql Server 2000纯Java驱动程序的代码是什么? 8.使用预处理语句和存储过程有什么好处? 9.使用CachedRowSetImpl类有什么好处? 10.如何使用滚动的结果集?
第八章 Servlet技术
一、选择题
1.下面对Servlet、Applet的那一项描述错误?(D)
A)Servelt与Applet相对应 B)Applet运行在客户端浏览器 C)Servlet运行在Web服务器端
D)Servlet和Applet不可以动态从网络加载 2.下面哪一项不在Servlet的工作过程中?(B)
A)服务器将请求信息发送至Servlet B)客户端运行Applet
C)Servlet生成响应内容并将其传给服务器 D)服务器将动态内容发送至客户端
3.下列哪一项不是Servlet中使用的方法? (D)
A)doGet() B)doPost() C)service() D)close()
4.关于MVC架构的缺点,下列的叙述哪一项是不正确的?(B) A)提高了对开发人员的要求 B)代码复用率低 C)增加了文件管理的难度 D)产生较多的文件 5.下面哪一项对Servlet、JSP的描述错误?(D)
A)HTML、Java和脚本语言混合在一起的程序可读性较差,维护起来较困难。 B)JSP技术是在Servlet之后产生的,它以Servlet为核心技术,是Servlet技术的一个成功应用。
C)当JSP页面被请求时,JSP页面会被JSP引擎翻译成Servelt字节码执行 D)一般用JSP来处理业务逻辑,用Servlet来实现页面显示。 6.下面哪一项对Servlet、JSP的描述错误?(D)
A)Servlet可以同其他资源交互,例如文件、数据库 B)Servlet可以调用另一个或一系列Servlet E)服务器将动态内容发送至客户端 E)Servlet在表示层的实现上存在优势 7.下面哪一项对Servlet描述错误?(C)
A)Servlet是一个特殊的Java类,它必须直接或间接实现Servlet接口 B)Servlet接口定义了Servelt的生命周期方法
C)当多个客户请求一个Servlet时,服务器为每一个客户启动一个进程 D)Servlet客户线程调用service方法响应客户的请求 8.下面哪一项对Servlet描述错误?(C)
A)Servlet是一个特殊的Java类,它必须直接或间接实现Servlet接口 B)Servlet接口定义了Servelt的生命周期方法
C)当多个客户请求一个Servlet时,服务器为每一个客户启动一个进程 D)Servlet客户线程调用service方法响应客户的请求
9.下面Servlet的哪个方法载入时执行,且只执行一次,负责对Servlet进行初始化。( B )
A)service() B)init()
C)doPost() D)destroy()
10.下面Servlet的哪个方法用来为请求服务,在Servlet生命周期中,Servlet每被请求一次它就会被调用一次。( A ) A)service() B)init() C)doPost() D)destroy()
11.下面哪个方法当服务器关闭时被调用,用来释放Servlet所占的资源。(D)
A)service() B)init() C)doPost() D)destroy()
12.部署Servlet,下面哪一项描述错误?(C)
A)必须为Tomcat编写一个部署文件。 B)部署文件名为web.xml
C)部署文件在Web服务目录的WEB-INF子目录中 D)部署文件名为Server.xml
13.下面是一个Servlet部署文件的片段:
Hello
myservlet.example.FirstServlet
Hello /helpHello
Servlet的类名是( A ) A)FirstServlet B)Hello C)helpHello D)/helpHello
14.下面是Servlet调用的一种典型代码:
<%@ page contentType=\<%@ page import=\