1、Java Web 程序设计 练习题 一、填空题 1、 JDBC 对数据库的操作通过 5 个 JDBC 的类/ 接口来实现,它们是:DriverManager 、Statement、 Connection、ResultSet 和 Class。2、 JSP 的英文全称是 Java、 Srever 、Page。 3、 JSP 指令元素主要有 3 种类型的指令,即 include、taglib 和 page。 4、 在 JSP 中提供了_9_个内置对象,分别是 request 对象 、response 对象、out 对象、session 对象、 pageContext 对象、exception 对象、
2、cofig 对象 、page 对象和 application对象。 5、 在提交表单时有两种不同的提交方法,分别是 POST 和 get。6、 在 JSP 中实现客户端和服务器的会话可使用 session 实现。7、 每过 10 分钟自动刷新的 JSP 语句是:response.setHeader(“refresh”,”600”)。8、 ResultSet 类的 .next( ) 方法可以移动记录指针到下一条记录。 9、 在 JSP 中使用 标记来访问 JavaBean。 10、 在标记中,有一个 scope 属性,它是用来设定 JavaBean 存在的范围。scope 属性一分别为 page
3、、request 、session 和 application。 11、 JDBC 是 Java DataBase Connectivity 的缩写,它的中文名称是 java 数据库连接技术。12、 JSP 页面组成元素中,除了可以包含静态内容 (html、js 、css) 外,还可以包含:JSP 指令、j、脚本元素、动作、注释等。 13、 异常的处理,可在该方法的代码段中包含 3 类代码: try 、 catch 和 finally 块。14、 JSP 的三个指令中,定义整个 JSP 页面属性的是 page 指令,实现静态包含的是 include指令,库的是 taglib 指令。 15、 为
4、避免端口冲突,我们可以在 tomcat 的 server.xml_配置文件中修改 tomcat 的端口号。16、 JSP 的内置对象中,和作用域通信(传值)相关的对象有:pageContext, request,session和 application 。17、 一个 Servlet,必须实现 Servlet 接口或者继承 HttpServlet 类。 二、单选题 1. JSP 代码将输出( A)。 A、1+4 B、5C、 14D、不会输出,因为表达式是错误的 2. 在 JSP 程序 中,下面对 JSP 指令的描述,正确的是( A ) A、指令以”结束 B、指令以”结束 C、指令以”结束 D、
5、指令以” ”结束 3. http 协议默认使用(C ) 选一项 A、 8080 端口 B、 7001 端口 C、 80 端口 D、 25 端口 4. JSP 是在(A )阶段生成 Servlet 源代码的。 A、 转译 B、 编译 C、 执行 D、 响应 7. 在客户端浏览器的源代码中可以看到(B ) A、JSP 注释 B、HTML 注释 C、 JSP 注释和 HTML 注释 D、JAVA 注释 8. page 指令的作用是:(A ) A、用来定义整个 JSP 页面的一些属性和这些属性的值 B、用来在 JSP 页面内某处嵌入一个文件 C、使该 JSP 页面动态包含一个文件 D、指示 JSP 页
6、面加载 Java plugin 9. (C )可在 JSP 页面出现该指令的位置处,静态插入一个文件。 A、page 指令标签 B、page 指令的 import 属性 C、 include 指令标签 D、include 动作标签 10. 以下对象中的(D )不是 JSP 的内置对象。 A、request B、session C、 application D、bean 11. 在 JSP 中,内置对象(B )封装了用户提交的信息,使用该对象可以获取用户提交的信息。 A、session B、request C、 response D、out 12. request 对象可以使用(A)方法获取表单
7、中某输入框提交的信息。 A、getParameter(String s) B、getValue(String s) C、 getParameterNames(String s) D、getParameterValue(String s) 13. 从( A)开始,到( )结束,被称为一个 Session 会话。 A、访问者连接到服务器,访问者关闭浏览器离开该服务器 B、服务器启动,服务器关闭 C、访问者连接到服务器,服务器关闭 D、服务器启动,访问者关闭浏览器离开该服务器 14. application 对象能在(D)间共享。 A、某个访问者所访问的当前页面 B、某个访问者所访问的网站的各个页面
8、之间 C、该服务器上的所有的访问者的所有 jsp 页面 D、 该服务器上的所有的访问者的所有页面和程序 15.对数据库表中记录的字段值进行更新,可以使用( B )方法A、executeQuery() B、executeUpdate()C、 next() D、getConnection()16.在 JSP 页面中使用 beans,我们必须使用 JSP 动作标签 ( A )。A、useBean B、useBeans C、Beans D、JavaBeans17. 以下关于 Servlet 的说法正确的是:(A ) A、Servlet 可以获取用户的 session 会话 B、Servlet 不能对数
9、据库表进行操作 C、 Servlet 不能对文件进行读写操作 D、Servlet 不能获取用户的 session 会话 18. 当(C )时,JSP 引擎产生一个 session 对象。 A、web 应用服务器启动时 B、当 web 应用服务器启动后,第一个客户来访时 C、当每个客户首次访问服务器上的一个 JSP 页面时 D、当每个客户首次访问服务器上的一个 JSP 或 HTML 页面时 19. 当(A )时,JSP 引擎产生一个 application 对象。 A、web 应用服务器启动时 B、当 web 应用服务器启动后,第一个客户来访时 C、当每个客户首次访问服务器上的一个 JSP 页面
10、时 D、当每个客户首次访问服务器上的一个 JSP 或 HTML 页面时 20. 查询数据库得到的结果集中,游标最初定位在(B ) 。 A、第一行 B、第一行的前面 C、最后一行 D、最后一行的后面 21. 以下关于 JavaBeans 的说法中,错误的是(B ) 。 A、JavaBeans 是基于 JAVA 语言的。 B、JavaBeans 是 JSP 的内置对象之一。 C、 JavaBeans 是一种 Java 类。 D、JavaBeans 是一个可重复使用的软件组件。 22. 以下哪种方法不是 Servlet 的方法?(D ) A、init B、service C、 destroy D、p
11、ost 23. 当(C )时,JSP 引擎将消灭某一个 session 对象。 A、有新客户访问时 B、web 应用服务器启动后,第一个客户来访时 C、该 session 对应的客户关闭浏览器或调用 invalidate 方法时 D、该 session 对应的客户刷新 jsp 页面时 24. 在 JSP 中使用标记时,不会出现的属性是:(C ) A、name B、property C、 value D、 以上皆不会出现 25.Servlet 程序的入口点是:( A )A、 init() B、main() C、service() D、doGet()27. 要使浏览器重定向到新的页面,则应使用语句
12、(A ) 。 A、response.sendRedirect() B、response.sendError() C、 out.Transfer D、request. sendRedirect() 28. 下列类或接口中,负责加载数据库驱动程序的是:(B ) 。 A、Driver B、DriverManager C、 Connection D、Statement 29. 下列类或接口中,用于向数据库提交 SQL 语句的是:( D) 。 A、CallableStatement B、PreparedStatement C、 Connection D、Statement 30. 要从 JSP 连接到某
13、数据库,需要首先完成的任务是:(A ) 。 A、加载 JDBC 驱动程序 B、定义连接 URL C、创建一个 Statement 对象实例 D、获取一个 Resultset 对象实例 31. 下列关闭数据库连接的顺序正确的是;(B ) A、先关闭 Statement,再关闭 Resultset,最后关闭 Connection B、先关闭 Resultset,再关闭 Statement,最后关闭 Connection C、先关闭 Resultset,再关闭 Connection,最后关闭 Statement D、先关闭 Statement,再关闭 Connection,最后关闭 Resultse
14、t 32. Servlet 中,HttpServletResponse 的(C )方法用来把一个 Http 请求重定向到另外的URL。A、 sendURL() B、 redirectURL() C、 sendRedirect() D、 redirectResponse() 33. 给定 java 程序 User.java,代码如下: package user; public class User private String password; private String loginName; public String getLoginName() return loginName; pu
15、blic void setPassword(String password) this.password=password; 给定 user.jsp,代码片断如下: _ C _ loginName: password: 在浏览器上输入 URL:http:/localhost/user,jsp?loginName=sa map.put(“user.name“, “admin“); request.setAttribute(“login“, map); 以下哪个选项可以正确地使用 EL 取得 map 中的值( D) A、$map. user.name B、$login. user.name C、
16、$map“user.name“ D、$login“user.name“ 39. 以下哪种类型的对象可用于执行存储过程(A ) A、Statement B、 Preparedstatement C、 CallableStatement D、 Connection 40. 在 JSTL 核心标签库中,下列哪个是实现迭代操作的标签。 ( C) A、when B、 set C、forEach D、remove 41. 关于 JavaBean,下列的叙述哪一项是不正确的?( C) A、JavaBean 的类必须是具体的和公共的,并且具有无参数的构造器 B、JavaBean 的类属性是私有的,要通过公共方
17、法进行访问 C、 JavaBean 和 Servlet 一样,使用之前必须在项目的 web.xml 中注册 D、JavaBean 属性和表单控件名称能很好地耦合,得到表单提交的参数 42. 在 JSP 中,使用过滤器时,可以在 web.xml 文件的( D)元素中包括元素。A、 B、 C、 D、 43. 在 MVC 设计模式体系结构中, ( B)是实现控制器的首选方案。 A、JavaBean B、Servlet C、JSP D、HTML 44. 关于 JSP Model2 模式的优点,下列的叙述哪一项是不正确的?(D ) A、模型具有较高的通用性 B、Servlet 对象擅长控制 C、分离了视
18、图层和业务层 D、M 、V 、C 之间的耦合性高 三、简答题 1. 叙述用 JDBC 操作数据库的主要步骤。 (1 ) .加载驱动程序 :Class.forName(“oracle.jdbc.driver.OracleDriver“); (2)建立连接 Connection conn = DriverMananger.getConnection(“jdbc:oracle:thin:127.0.0.1:1521:xe“,“用户名“,“密码”)(3) 执行查询/进行数据库操作 (4 )关闭数据库连接 2. JSP 有哪些内置对象?分别有什么作用? JSP 共有以下 9 种基本内置组件 reques
19、t 用户端请求,此请求会包含来自 GET/POST 请求的参数 response 网页传回用户端的回应 pageContext 网页的属性是在这里管理 session 与请求有关的会话期 application servlet 正在执行的内容 out 用来传送回应的输出 config servlet 的构架部件 page JSP 网页本身 exception 针对错误网页,未捕捉的例外3. 有几种方法实现页面的跳转,如何实现? 1、 response.sendRedirect() 是在用户的浏览器端工作,sendRedirect() 可以带参数传递, 比如 servlet?name=lisi
20、传至下个页面,同至不同的主机上。 2、 RequestDispatcher.forward() 是在服务器端起作用,当使用 forward()时,Servlet engine 传递 HTTP 请求从当前的 Servlet or JSPServlet,JSP 或普通 HTML 文件,也即你的 form 提交至 a.jsp,在 a.jsp 用到了 forward()重定向至 b.jsp,的所有信息在 b.jsp 都可以获得,参数自动传递 3、 jsp:forward page=“ / 它的底层部分是由 RequestDispatcher 来实现的,因此它带有 RequestDispatcher.f
21、orward()方法的印有很多输出,前面的输出已使缓冲区满, 将自动输出到客户端,那么该语句将不起作用,这一点应该特别意:它不能改变浏览器地址,刷新的话会导致重复提交 4. 简述 servlet 的特点,Servlet 的生命周期。 高效、方便、功能强大、可移植性好 web 容器加载 servlet,生命周期开始。通过调用 servlet 的 init()方法进行 servlet 的初始化。通过调用 service()方法实调用不同的 doXX()方法,结束服务,Web 容器调用 servlet 的destroy()方法。 (1 ) Server 创建一个 Servlet 的实例。 (2 )
22、Server 调用 Servlet 中的 init()方法。 (3 )一个客户端的请求到达 Servlet。 (4 ) Server 创建一个请求对象。 (5 ) Server 创建一个响应对象。 (6 ) Server 激活 Servlet 中的 service()方法,传递请求和响应对象作为参数; (7 ) service()方法使用响应对象的方法,将响应传回 Server,最终到达客户端。 5. 简述文件的静态包含和动态包含的区别。 静态包含: 动态包含: 静态包含发生在:JSP-java 文件阶段。动态包含发生在:执行 class 文件阶段。动态加入。静态包含:只生成一个 java 文
23、件,动态包含:生成多个 class 文件。 每次被加载进来的页面都需要单独编译;加载与被加载页面动态整合,一起编译,无须单独编译被加载动态包含用 jsp 动作实现:,它总是会检查所包含文件的变化,适合包含动态文件;静态包含用 inclued 伪码实现 :它不会检查所包含文件的变化,适合包含静态文件!6. 简述表单提交时, get 和 post 的区别: 1. get 是从服务器 上获取数据, post 是向服务器传送数据。2. get 是把参数数据队列加到提交表单的 ACTION 属性所指的 URL 中,值和表单内各个字段一一对应,在 URL 中可以看到。post 是通过 HTTP post 机制,将表单内各个字段与其内容放置在 HTML HEADER 内一起传送到 ACTION 属性所指的 URL 地址。用户看不到这个过程。3. 对于 get 方式,服务器端用 Request.QueryString 获取变量的值,对于 post 方式,服务器端用 Request.Form 获取提交的数据。4. get 传送的数据量较小,不能大于 2KB。post 传送的数据量较大,一般被默认为不受限制。但理论上,IIS4 中最大量为 80KB,IIS5 中为 100KB。5. get 安全性非常低, post 安全性较高。