《JSP程序设计》复习题及答案(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、考核方式:闭卷笔试
2、考核题型:
(1)选择题30%
(2)判断题10%
(3)简答题40%
(2)程序填空和编程20%
复习题
一、选择题
1.阅读下列JSP代码片断:
<% int x=5; %>
<%! private int m(int a){ return a+1;} %>
<% x=3; %>
x=<%=x%>,<%=m(x)%>
其运行结果是(A )
A.x=3,4
B.x=3,6
C.x=5,4
D.编译错误
2.下列选项,可用于存储结果集的对象是(A )
A.ResultSet
B.Connection
C.Statement
D.PreparedStatement
3.下面关于executeQuery(String sql)方法,说法正确的是(C )
A.可以执行insert语句
B.可以执行update语句
C.可以执行select语句
D.可以执行delete语句
4.下面选项中,用于将参数化的SQL语句发送到数据库的方法是(B )
A.prepareCall(Stringsql)
B.prepareStatement(Stringsql)
C.registerDriver(Driverdriver)
D. createStatement()
5.下列选项中,哪个是MVC设计模式中的模型?(D )
A.JSP
B.Servlet
C.Action
D.JavaBean
6.下列选项中,用来定义下拉列表的是(C )。
A.<input/>
B. <textarea></textarea>
C.<select></select>
D.<form>
7.下列选项中,哪个HTML 元素中可以放置Javascript代码?(B)
A. <script>
B. <javascript>
C. <js>
D. <scripting>
8.下列选项中,可以成功修改Tomcat端口号为80的是( C )
A.<Connect port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
B.<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
C. <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
D.<Connect port="80" protocol="HTTP/1.1" connectionTimeout="20000"
redirectPort="8443" />
9.下面选项中,哪个头字段用于告诉浏览器自动刷新页面的时间?( C )
A.Server
B.Accept-Location
C.Refresh
D.Accept- Refresh
10.Eclipse工具开发Servlet会自动将src目录下的文件编译成class文件存放到哪个目录下(B )
A.class
B.classes
C. lib
D. conf
11.下列选项中,可以在JavaScript警告框中写入"Hello World"的是(C )
A.alertBox="Hello World";
B.msgBox("Hello World");
C.alert("Hello World");
D. alertBox("Hello World");
12下面选项中,表示服务器错误的状态码是(D )
A.100
B.404
C.304
D.500
13.下列选项中,可以成功修改Tomcat端口号为80的是(C )
A.<Connect port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
B.<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
C. <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
D.<Connect port="80" protocol="HTTP/1.1" connectionTimeout="20000"
redirectPort="8443" />
14.下列关于XML的描述中,正确的是(B )
A.所有的XML元素都必须是小写的
B.所有XML元素都必须正确地关闭
C.所有XML文档都必须有DTD
D.以上说法都正确
15.Eclipse工具开发Servlet会自动将src目录下的文件编译成class文件存放到哪个目录下(B )
A.class
B.classes
C. lib
D. conf
16.下面选项中, 用于根据虚拟路径得到文件的真实路径的方法是(A )
A.StringgetRealPath(String path)
B.URL getResource(String path)
C.SetgetResourcePaths(String path)
D.InputStreamgetResourceAsStream(String path)
17. 如果想要将页面传递来的用户名username为张三的数据存放在Requset对象中,以下哪种方式可以实现(C )
A.String username=request.getParameter("张三");
B.String username=(String) request.getAttribute("张三");
C. request.setAttribute("username", "张三");
D.request.removeAttribute("张三");
18. RequestDispatcher接口中,用于将请求从一个Servlet传递给另外的一个Web资源的方法是(C )
A. forward(ServletResponse response,ServletRequest request)
B.include(ServletRequest request,ServletResponse response)
C.forward(ServletRequest request,ServletResponse response)
D. include(ServletResponse response,ServletRequest request)
19.下列选项中,能够用于获取客户端所有cookie对象的方法是(B)
A.List<Cookie> cookies = request.getCookies();
B.Cookie[] cookies = request.getCookies();
C. List<Cookie> cookies = response.getCookies();
D.Cookie[] cookies = response.getCookies();
20. 下列是page指令中的一些属性,其中,用于告知客户端浏览器采用什么文档类型的属性是(B )
A.session
B.contentType
C.content
D.isThreadSafe
21. 下面选项中, 哪个方法用于返回映射到某个资源文件的URL对象(B )
A.getRealPath(String path)
B.getResource(String path)
C.getResourcePaths(String path)
D.getResourceAsStream(String path)
22. 下列选项中,哪个是web.xml中配置初始化参数的标签?(B )
A.<param-init>
B.<init-param>
C.<param>
D. <init>
23. RequestDispatcher接口中,用于将请求从一个Servlet传递给另外的一个Web资源的方法是(C )
A. forward(ServletResponse response,ServletRequest request)
B.include(ServletRequest request,ServletResponse response)
C.forward(ServletRequest request,ServletResponse response)
D. include(ServletResponse response,ServletRequest request)
24.使用request实现转发时,下列哪个路径的写法是正确的?(C )
A.只能是相对路径
B.只能是绝对路径
C.相对路径和绝对路径都可以
D.相对路径可以,但绝对路径不可以
25. Tomcat服务器的默认会话超时时间是(B )
A.30秒
B.30分钟
C.30毫秒
D.30小时
26.阅读下列JSP代码片断:
<% int x=5; %>
<%! private int m(int a){ return a+1;} %>
<% x=3; %>
x=<%=x%>,<%=m(x)%>
其运行结果是(A )
A.x=3,4
B.x=3,6
C.x=5,4
D.编译错误
27.在JSP中,exception隐式对象所对应的类是(A )
ng.Exception
ng.Throwable
ng.ExceptionThrowable
ng.ThrowableException
28.下面选项中,能够将游标从当前位置向下移一行的方法是(A )
A.next()
B.absolute(introw)
C.previous()
st()
29.下面选项中,用于将参数化的SQL语句发送到数据库的方法是(B )
A.prepareCall(Stringsql)
B.prepareStatement(Stringsql)
C.registerDriver(Driverdriver)
D. createStatement()
30.MVC模式中用于负责与用户交互并展示模型中数据的模块是(C )
A.模型(Model)
B.表示层(View)
C.视图(View)
D.控制器(Controller)
31.下列JavaScript语句中,能实现单击一个按钮时弹出一个消息框的是(B )。
A.<buttonvalue="鼠标响应"onClick=alert("确定")></button>
B.<inputtype="button"value="鼠标响应"onClick=alert("确定")>
C.<inputtype="button"value="鼠标响应"onChange=alert("确定")>
D.<buttonvalue="鼠标响应"onChange=alert("确定")></button>
32.下面选项中,关于配置虚拟目录所需要添加的结点是(C )。
A.<Host>
B.<VirtualPath>
C.<Context>
D.<Server>
33.下面关于配置一个WEB应用的默认页面时,说法正确的是(D )。
A. 一个Web应用最多只能配置一个默认页面
B. 一个Web应用最多只能配置两个默认页面
C. 一个Web应用最多只能配置三个默认页面
D. 一个Web应用可以配置多个默认页面
34.下列关于XML的描述中,正确的是(B )
A.所有的XML元素都必须是小写的
B.所有XML元素都必须正确地关闭
C.所有XML文档都必须有DTD
D.以上说法都正确
35.Eclipse工具开发Servlet会自动将src目录下的文件编译成class文件存放到哪个目录下( B )
A.class
B.classes
C. lib
D. conf
36. 下面选项中, <context-param>元素的父元素是( D )
A.<servlet>
B.<servlet-mapping>
C.<param-name>
D. <Web-app>
37. 下列选项中,哪个是web.xml中配置初始化参数的标签?( B )
A.<param-init>
B.<init-param>
C.<param>
D. <init>
38. RequestDispatcher接口中,用于将请求从一个Servlet传递给另外的一个Web资源的
方法是(C )
A. forward(ServletResponse response,ServletRequest request)
B.include(ServletRequest request,ServletResponse response)
C.forward(ServletRequest request,ServletResponse response)
D. include(ServletResponse response,ServletRequest request)
39.下面选项中关于请求包含include()方法的参数,正确的是( A )
A.依次为ServletRequest和ServletResponse两个
B.依次为ServletResponse和ServletRequest两个
C.只有ServletRequest
D.只有ServletResponse
40. 如果请求消息中包含有多个该指定名称的参数,getParameter()方法的返回值是(C )
A: 这些参数的所有值形成一个数组
B: “”
C: 第一个参数的值
D: 最后一个参数的值
41.在Java EE中,定义了getSession()方法的接口是( C )
A.HttpServlet
B.HttpSession
C.HttpServletRequest
D.HttpServletResponse
42.下列关于JDBC驱动的说法中,正确的是(D )
A.用JDBC连接数据库,必须使用连接池
B.用JDBC连接数据库,使用连接池就不需要导入数据库驱动
C.操作不同的数据库可以使用相同的驱动
D.无论如何,只要使用JDBC,那么就要使用JDBC驱动
二、判断题:正确的后面打“√”,错误的打“╳”。
1.Include指令用于静态包含一个文件,它的file属性只能取相对路径。
(√)2.Statement接口的executeUpdate(String sql)返回值是int,它表示数据库中受该SQL 语句影响的记录的数目。
(√)
3.一个Servlet可以映射多个虚拟路径。
(√)
4.通过请求转发来实现目标资源的访问时,由于客户端发送了两次请求,所以浏览器地址栏发生改变。
(╳)
5.如果没有设置Content-Type头字段,那么setCharacterEncoding()方法设置的字符集编码不会出现在HTTP消息的响应头中。
(√)
6.在实际开发中,开发者只需将后台数据展示在相应页面即可,无需关心前台界面中的JS 代码。
(╳)
7.采取在servler.xml文件中配置虚拟目录,每次修改server.xml文件后,都需要重启服务
器,否则修改的配置将不会生效。
(√)
8.ServletConfig对象可以实现多个Servlet之间的数据共享。
(╳)
9.Tomcat容器中如果将<session-timeout>元素中的时间值设置成0或一个负数,则表示会话永不超时。
(√)
10.一次会话过程中,只允许客户端与服务器进行一次请求与响应过程。
(√)
11.内嵌式是将CSS代码集中写在HTML文档的<head>头部标记中,并且用<style>标记定义。
(√)
12.一个web应用下子目录的命名没有特殊规定,可以随意命名。
(√)
13.一个<servlet-mapping>元素下配置多个<url-pattern>子元素能实现Servlet的多重映射。
(√)
14.使用Eclipse工具可以自动编译Servlet并生成该Servlet的相应配置信息。
(√)15.使用getIntHeader(String name) 方法时,如果获取到的头字段的值不能转为int类型,将发生NumberFormatException异常。
(√)
16.Include指令用于静态包含一个文件,它的file属性只能取相对路径。
(√)17.JDBC的全称是Java数据库连接,它是一套用于执行HTML语句的Java API。
(╳)18.CSS基础选择器只有三种,分别是标记选择器、类选择器、id选择器。
(╳)
19.安装好Tomcat后,就可以直接启动运行了,并不要先安装JDK。
(╳)20.ServletConfig对象可以实现多个Servlet之间的数据共享。
(╳)
21.使用RequestDispatcher对象的include()方法实现请求包含后,浏览器显示的URL会发生变化的。
(╳)
22.一个<servlet-mapping>元素下配置多个<url-pattern>子元素能实现Servlet的多重映射。
(√)
23.使用Eclipse工具可以自动编译Servlet并生成该Servlet的相应配置信息。
(√)24.在HttpServletRequest接口中,getParameterMap()方法的返回值是Map对象,该对象包含了请求消息中所有参数的值。
(√)
25.使用getIntHeader(String name) 方法时,如果获取到的头字段的值不能转为int类型,将发生NumberFormatException异常。
(√)
26.控制器(Controller)是负责应用程序中处理用户交互的部分,它负责从模型中读取数据,控制用户输入,并向模型发送数据。
(╳)
三、简答题:
1.请列举出HTML常用的标记。
(至少10个)
答:HTML常用的标记有:
1)<br />
2) <hr />
3)<p></p>
4)<font></font>
5)<img />
6)<table></table><tr></tr><td><td>
7)<form></form><input />
8)<textarea></textarea>
9)<ul></ul><li></li><a></a>
10)<div></div>
2.简述POST请求和GET请求有什么不同?(至少2点)
答:
1) POST传输数据大小无限制
2) POST比GET请求方式更安全
3.简述JDBC编程的6个开发步骤。
答:
1.加载并注册数据库驱动
2.通过DriverManager获取数据库连接
3.通过Connection对象获取Statement对象
4.使用Statement执行SQL语句
5.操作ResultSet结果集
6.回收数据库资源
4.简述请求转发与重定向的异同(至少写3点)
答:
1.请求转发和重定向都可以实现访问一个资源时转向当前应用资源
2.请求转发是一次请求一次响应,而重定向为两次请求两次响应
3.一般情况下应该使用请求转发,减少浏览器对服务器的访问,减轻服务器压力
4.如果需要改变浏览器的地址栏,或更改浏览器的刷新按钮的功能时需要使用重定向
5.简述Javabean规范都有哪些?(至少写出2点)
答:Javabean规范如下:
1)它必须具有一个公共的、无参的构造方法,这个方法可以是编译器自动产生的缺省构造方法。
2)它提供公共的setter方法和getter方法让外部程序设置和获取JavaBean的属性。
3)它是一个公有类。
4)通常需要实现java.io.Serializable,用于序列化。
6.请简述什么是JDBC。
答:JDBC的全称是Java数据库连接(Java Database Connectivity),它是一套用于执行SQL语句的Java API。
应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除等处理。
7.请简述JSP中的9个隐式对象的作用。
答:课本P182页表6-2
8.简述JSP的工作原理。
答:所有的JSP应用程序在首次载入时都被翻译成Servlet文件,然后再运行,这个工作主要是由JSP引擎来完成。
当第一次运行一个JSP页面时,JSP引擎要完成以下操作:
将JSP文件翻译成Servlet文件,Servlet文件是Java应用程序。
JSP引擎调用Java编译器,编译Servlet文件得到可执行的代码文件(.class文件)。
JSP引擎调用Java虚拟机解释执行.class文件,并将运行结果返回给服务器。
服务器将运行结果以HTML形式作为响应返回给客户端的浏览器。
由于一个JSP页面在第一次被访问时要经过翻译、编译和执行这几个步骤,所以客户端得到响应所需要的时间比较长。
当该页面再次被访问时,它对应的.class文件已经生成,不需要再次翻译和编译,JSP引擎可以直接执行.class文件,因此JSP页面的访问速度会大为提高。
9.简述JSP中out对象、request对象和response对象的作用。
答:out对象主要用来向客户输出各种数据类型的内容,并管理应用服务器上的输出缓冲区(buffer);request内置对象代表了客户端的请求信息,主要用于接收客户端通过HTTP 协议传送给服务器端的数据;response对象包含了响应客户请求的有关信息,封装了JSP 产生的响应,然后被发送到客户端以响应客户的请求。
10.简述什么是Servlet。
答:Servlet是Java Web应用程序中的组件技术,是与JSP—样运行在服务器端的Java 应用程序,实现与JSP类似的功能,Servlet本身是一个Java类,可以动态地扩展服务器的能力。
所有的JSP文件要事先转换为一个Servlet才能运行,执行JSP文件的时候,首先JSP Container会将其转译为Servlet文件,并自动编译解释执行。
JSP中使用到的所有对象都将被转换为Servlet,然后被执行。
四、操作题和程序填空:
1.请编写一个用于读取数据库中users表信息的JDBC程序,要求分别获取字段id、name、password和email字段的值。
该程序代码如下所示:
public class Example01 {
public static void main(String[] args) throws SQLException {
// 1. 注册数据库的驱动
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
// 2.通过DriverManager获取数据库连接
String url = "jdbc:mysql://localhost:3306/jdbc";
String username = "root";
String password = "itcast";
Connection conn = DriverManager.getConnection(url, username, password);
// 3.通过Connection对象获取Statement对象
Statement stmt = conn.createStatement();
// 4.使用Statement执行SQL语句。
String sql = "select * from users";
ResultSetrs = stmt.executeQuery(sql);
// 5. 操作ResultSet结果集
System.out.println("id | name | password | email |");
while (rs.next()) { (5分)
int id = rs.getInt("id"); // 通过列名获取指定字段的值
String name = rs.getString("name");
String psw = rs.getString("password");
String email = rs.getString("email");
System.out.println(id + " | " + name + " | " + psw + " | " + email);
}
// 6.回收数据库资源
rs.close();
stmt.close();
conn.close();
}
}
2.请使用include标签编写两个JSP页面,要求:访问b.jsp页面时先输出b.jsp页面的内容,等待5秒,再输出a.jsp页面中的内容。
该功能的实现代码如下:
(1)a.jsp文件如下:
<%@ page contentType="text/html;charset=UTF-8"%>
<%Thread.sleep(5000);%>
这个是a.jsp页面<br />
(2)b. jsp文件如下:
<%@ page contentType="text/html;charset=UTF-8"%>
这个是b.jsp页面<br />
<jsp:include page="a.jsp" flush="true" />
3.编写一个testattribute.jsp页面,以观察各个域对象属性事件监听器的作用。
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<h3>这是一个测试对象属性信息监听器的页面</h3>
<%
getServletContext().setAttribute("username", "itcast");
getServletContext().setAttribute("username", "itheima");
getServletContext().removeAttribute("username");
session.setAttribute("username", "itcast");
session.setAttribute("username", "itheima");
session.removeAttribute("username");
request.setAttribute("username", "itcast");
request.setAttribute("username", "itheima");
request.removeAttribute("username");
%>
</body>
</html>
4,熟悉JavaBean的编写
看书本相关章节。