习题
line-height
】。font-style
】。
】标记中,并且用【
】标记定义。input
标记有多个属性,其中【 type
】属性为其最基本的属性,用于指定不同的控件类型。DOM或文档对象模型
】是一个表示和处理文档的应用程序接口(API),可用于动态访问、更新文档的内容、结构和样式。×
)√
)×
)×
)×
)标记中的colspan和rowspan属性用于对单元格进行合并。(√
)
7.id选择器使用“#”进行标识,后面紧跟id名。(√
)
- 三、选择题
1.下列选项中,JavaScript运算符的优先级最高的是(C
)
A: + B: ++ C: () D: ==
2.根据运算符的优先级,表达式z=2*(1+2*3)的运算结果为( B
)
A: 12 B: 14 C: 16 D: 18
3.下列JavaScript语句中,能实现单击一个按钮时弹出一个消息框的是( B
)。
A:
- 四、简答题
1.简述什么是CSS以及CSS的作用。
css是样式或样式表,主要用于html页面的美化修饰,设计页面的文字内容,图片外形以及页面布局等
2.CSS添加的四种方式。
内嵌式
行内引入
连接引入式
import引入@import="import.css"
3.请阅读下面无序列表搭建的结构,根据注释中的要求填写代码。- T恤
- 连衣裙
裤子
第2章Java Web概述
习题
- 一、填空题
1.Tomcat的默认端口号是【 8080
】。
2.在HTTP协议中,一个完整的请求消息是由请求行、【请求头
】和实体内容三部分组成。
3.HTTP是一种【 请求响应
】式的协议。
4.在XML声明中,可以通过standalone属性来声明这个文档是否为独立的文档。默认情况下,standalone属性的值为【 no
】。
5.引用本地的DTD文件时,可以是相对于xml文档的相对路径,也可以是一个【绝对
】路径。
- 二、判断题
1.在配置一个WEB应用的默认页面时,一个WEB应用最多只能配置一个默认主页。(×
)
2.安装好Tomcat后,就可以直接启动运行了,并不要先安装JDK。( ×
)
3.在HTTP响应消息中,第一行为响应状态行,紧接着的是若干响应消息头,服务器端通过响应消息头向客户端传递附加信息。(√
)
4.在一个DTD文件中,可以包含元素的定义、元素之间关系的定义、元素属性的定义以及实体和符号的定义。( √
)
5.在命名XML元素时,因为它是可扩展标记,所以元素名不需要遵守任何规范,可以随意编写。( ×
)
- 三、选择题
1.下面关于配置一个WEB应用的默认页面时,说法正确的是( D
)。
A: 一个Web应用最多只能配置一个默认页面
B: 一个Web应用最多只能配置两个默认页面
C: 一个Web应用最多只能配置三个默认页面
D: 一个Web应用可以配置多个默认页面
2.下面关于http协议中get与post请求的说法中,错误的是(D
)(5.0分)
A:get方式传输数据大小有限。
B:post方式传可以传输大数据
C:get方式会将请求信息在地址栏上显示,post不会
D:http协议请求方式只有get和post
3.下列选项中,修改Tomcat端口号的文件server.xml位于哪个目录中(A
)
A: conf B: bin C: lib D: work
4.下面选项中,表示服务器错误的状态码是(D
)
A: 100 B: 404 C: 304 D: 500
5.下面选项中,哪个头字段可以实现防盗链?(C
)
A: Location B: Refresh C: Referer D: If-Modified-Since
- 四、简答题
1.请简述HTTP协议的特点。
1.支持客户端服务器端模式
2.简单快速:客户端向服务器端请求时,只需要传送请求方式和路径。常用请求方式是get和post
3.http是无状态协议,对事务处理没有记忆能力
2.在XML Schema文档中,定义一个雇员的年龄时,要求是18~58周岁之间。请写出相应的元素声明?
3.简述POST请求和GET请求有什么不同?(至少2点)
1.post传输数据大小无限制
2.post请求比get安全,因为get方式传输信息会显示在地址栏中
第3章Servlet基础
习题
- 一、填空题
1.Servlet容器启动时,会为每个Web应用创建一个唯一的【 ServletContext
】对象代表当前Web应用。
2.在配置整个Web应用的初始化参数时,可在web.xml中配置【
】元素来实现。
3.当Tomcat初始化一个Servlet时,会将该Servlet的配置信息封装到【ServletConfig
】对象中。
4.在web.xml文件中,一个元素用于映射一个Servlet的对外访问路径,该路径也称为【 虚拟路径
】。
5.在RequestDispatcher接口中,实现请求转发的方法是【 ·forward·】。
6.在Servlet开发中,当我们要自定义一个Servlet时,可以继承【·GenericServlet·】或HttpServlet类。
- 二、判断题
1.ServletContext接口中定义了用于查询、增加、删除、设置ServletContext域属性的方法。(√
)
2.当Tomcat初始化一个Servlet时,会将该Servlet的配置信息封装到一个ServletConfig对象。( √
)
3.一个Servlet只能映射一个虚拟路径。( ×
)
4.使用RequestDispatcher对象的include()方法实现请求包含后,浏览器显示的URL会发生变化的。( ×
)
5.标签指定的超时必须为一个整数,如果这个整数是为0或负整数,则session永远不会超时。( √
)
- 三、选择题
1.下列关于ServletContext的说法中,错误的是(B
)。
A: ServletContext对象用来保存当前Web应用中的所有信息
B: 在一个Web应用中可以有多个ServletContext对象。
C: ServletContext接口封装了获取当前Web应用中资源文件的方法。
D: ServletContext对象中保存的属性可以被Web应用中的所有Servlet访问。
2.下面选项中, 用于返回某个资源文件的InputStream输入流对象的方法是(D
)
A: getRealPath(String path)
B: getResource(String path)
C: getResourcePaths(String path)
D: getResourceAsStream(String path)
3.重写doGet方法,doPost方法,service方法,分别输出get,post和service用户在浏览器地址栏中键入正确的请求URL并回车后,在控制台上显示的结果是(C
)
A:get B:post C:service D:service get
4.下面选项中,与web应用具有相同的生命周期的对象是(D
)
A: Servlet B: ServletConfig C: GenericServlet D: ServletContext
5.下面选项中,用于获取web.xml中
元素的值的方法是(B
)
A: getServletNames() B: getServletName()
C: getServletName(String name) D: getServletInfo()
- 四、简答题
1.请简述什么是缺省Servlet,以及缺省Servlet的作用。
如果某个Servlet的映射路径仅仅是一个正斜线(/),那么这个Servlet就是当前Web应用的缺省Servlet。
缺省Servlet的作用是:Servlet服务器在接收到访问请求时,如果在web.xml文件中找不到匹配的元素的URL,就会将访问请求交给缺省Servlet处理,也就是说,缺省Servlet用于处理其他Servlet都不处理的访问请求
2.简述ServletContext接口的三个主要作用。
1.获取web应用程序的初始化参数 2.实现多个servelt对象共享数据 3.读取web应用下的资源文件
3 .ChineseServlet。创建一个ChineseServlet类,使其继承HttpServlet类并重写该类的doGet()方法。在doGet()方法中,使用HttpServletResponse对象的setContentType()方法将浏览器编码改为utf-8。使用HttpServletResponse对象获取输出流,向浏览器输出“传智播客欢迎您”的中文字样。
public class ChineseServlet extends HttpServlet {
public void doGet(HttpServletRequest request,,HttpServletResponse response) throws ServletException, IOException {
String data="传智播客欢迎您";
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println(data);
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
第4章请求和响应
习题
- 一、填空题
1.请求包含指的是使用【include()
】方法将Servlet请求转发给其它Web资源进行处理,响应消息中既包含了当前Servlet又包含了其它Web资源的响应消息。。
2.在HttpServletResponse接口中,定义了一个【sendRedirect()
】方法,用于实现请求重定向。
3.我们可以通过response.setHeader("【 refresh
】",“3”)语句,使当前页面定时每3秒刷新一次。
4.HttpServletResponse接口中,提供了一个【 setCharacterEncoding()
】方法,该方法用于设置字符的编码方式。
5.当Servlet向客户端回送响应消息时,需要在响应消息中设置【状态码
】。
- 二、判断题
1.转发的forward()方法,必须在响应提交给客户端之前被调用,否则将抛出IllegalStateException异常。(√
)
2.include()方法实现请求包含时,响应消息中不包含当前Servlet响应消息,只有被包含进来的其它Web资源的响应消息。( ×
)
3.通过请求转发来实现目标资源的访问是服务器内部的行为,对于客户端来说是一次请求过程。(√
)
4.在HttpServletRequest接口中,getParameterMap()方法的返回值是Map对象,该对象包含了请求消息中所有参数的值。( √
)
5.如果请求消息中没有包含指定名称的参数,则getParameter()方法返回null。(√
)
- 三、选择题
1.下面选项中关于请求包含include()方法的参数,正确的是(A
)
A: 依次为ServletRequest和ServletResponse两个
B: 依次为ServletResponse和ServletRequest两个
C: 只有ServletRequest
D: 只有ServletResponse
2.配置Tomcat来解决GET请求参数的乱码问题,可以在server.xml文件中的Connector节点下添加属性(C
)
A: useBodyEncodingForURI=”false”
B: useBodyEncoding=”true”
C: useBodyEncodingForURI=”true”
D: useBodyEncoding=”false”
3.如果请求消息中包含有多个该指定名称的参数,getParameter()方法的返回值是(C
)
A: 这些参数的所有值形成一个数组
B: “”
C: 第一个参数的值
D: 最后一个参数的值
4.下列关于HttpServletRequest接口中getDateHeader(String name)方法返回值的说法中,正确的是( B
)
A: 自1970年1月1日0点0分0秒算起的以秒为单位的时间值
B: 自1970年1月1日0点0分0秒算起的以毫秒为单位的时间值
C: 自1970年1月1日0点0分0秒算起的以纳秒为单位的时间值
D: 自1970年1月1日0点0分0秒算起的以分钟为单位的时间值
5.一次重定向过程中,浏览器会发出多少次服务器请求(B
)
A: 1次 B: 2次 C: 0次 D: 3次
- 四、简答题
1.简述请求转发与重定向的异同(至少写3点)
1.请求转发和重定向都可以实现访问一个资源时转向当前应用资源
2.请求转发是一次请求一次响应,而重定向为两次请求两次响应
3.如果需要改变浏览器的地址栏,或更改浏览器的刷新按钮的功能时需要使用重定向
4.一般情况下应该使用请求转发,减少浏览器对服务器的访问,减轻服务器压力
2 .请按照以下要求设计一个实现下载资源防盗链的类DownManagerServlet。要求如下:创建一个DownManagerServlet类,使其继承HttpServlet类并重写该类的doGet()方法。在doGet()方法中,使用HttpServletRequest对象的getHeader(“referer”)方法得到关字段referer的值,并判断是否可以进行资源下载。如果不能下载,则进入下载页。
public class DownManagerServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
// 获取referer头的值
String referer = request.getHeader("referer");
// 获取访问地址
String sitePart = "http://" + request.getServerName();
if (referer != null && referer.startsWith(sitePart)) {
// 处理正在下载的请求
out.println("dealing download ...");
} else {
// 非法下载请求跳转到download.html页面
RequestDispatcher rd = request.getRequestDispatcher("/download.html");
rd.forward(request, response);
}
}
}
第5章会话及会话技术
习题
- 一、填空题
1.URL重写可以使用【HttpServeltResponse
】接口中,所提供的方法encodeURL(String url)和encodeRedirectURL(String url)来实现。
2.Cookie技术用于将会话过程中的数据保存到【客户端
】中,从而使浏览器和服务器可以更好地进行数据交互。
3.Session的默认有效时长是【30分钟
】。
4.Session是一种将会话数据保存到【服务器端
】端的技术。
5.当服务器向客户端发送Cookie时,其实质是在HTTP响应头字段中增加【 set-Cookie
】响应头字段信息。
- 二、判断题
1.无论浏览器是否支持Cookie,服务器都会在第一次响应的页面中对URL地址进行重写。( √
)
2.当浏览器禁用cookie后,原来已实现的关于session的应用程序,不会受到影响依然可以运行。(×
)
3.Session对象的getLastAccessedTime()方法返回的是发送请求的时间与1970年1月1日00:00:00之间时间差的秒表示形式。(×
)
4.request.getSession(false)的作用是返回存在的Session对象,当Session对象不存在时,就创建新的HttpSession对象并返回。(×
)
5.Servlet API中提供了一个javax.servlet.http.Cookie类,该类提供了操作Cookie的属性与方法,Cookie类有且仅有一个构造方法。( √
)
- 三、选择题
1.下列选项中,用于对超链接和form表单中的action属性中设置的URL进行重写的方法是(A
)
A: encodeURL(String url)
B: encodeRedirectURL(String url)
C: encodeForwardURL(String url)
D: encodeRedirect (String url)
2.若想修改Tomcat服务器的默认会话时间,则需要进入下列哪个文件中修改?(B
)
A: 在\conf\context.xml文件中修改
B: 在\conf\web.xml文件中修改
C: 在\conf\server.xml文件中修改
D: 在 \conf\当前应用\web.xml文件中修改
3.在Java EE中,定义了getSession()方法的接口是(C
)
A: HttpServlet B: HttpSession C: HttpServletRequest D: HttpServletResponse
4.下列关于Cookie和Session的描述中,错误的是( D
)
A: Cookie和HttpSession是保存会话相关数据的技术,其中Cookie将信息存储在浏览器端是客户端技术,Session将数据保存在服务器端是服务器端技术
B: HttpSession会话对象的默认保持时间可以修改
C: HttpSession默认是基于Cookie运作的
D: 浏览器可以接受任意多个Cookie信息保存任意长的时间
5.下面关于setMaxAge(int expires)方法参数默认值的描述中,正确的是(B
)
A: 默认值是1
B: 默认值是-1
C: 默认值是0
D: 默认值是无穷大
- 四、简答题
1.简述Cookie与Session的区别。
1.Cookie和HttpSession是保存会话相关数据的技术,其中Cookie将信息存储在浏览器端是客户端技术,Session将数据保存在服务器端是服务器端技术;
2.Cookie是基于HTTP协议中的Set-Cookie响应头和Cookie请求头进行工作的,而默认情况下HttpSession是基于一个名称为JSESSIONID 的特殊Cookie工作的;
3.浏览器对Cookie具有严格的限制,一个网站能在浏览器中保存多少Cookie是有限制的,而Session没有此限制。
2 .请按照下列要求设计一个Cookie实现用户上次访问时间显示的类LastAccessServlet。要求如下:创建一个LastAccessServlet类,使其继承HttpServlet类并重写该类的doGet()方法。在doGet()方法中,使用request.getCookies()得到所有cookie形成的cookie数组,并进行遍历。如果遍历过程中找到cookie信息中存在lastAccess属性则输出,否则创建cookie对象设置值为当前时间并发送给客户端。cookie的存活时间为1小时,访问当前应用中的所有资源客户端都回送cookie信息。
package cn.itcast.chapter06.cookie.example;
import java.io.IOException;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LastAccessServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
/* 设定一个 cookie 的name : lastAccessTime
读取客户端发送cookie 获得用户上次的访问时间显示*/
String lastAccessTime = null;
// 获取所有的cookie,并将这些cookie存放在数组中
Cookie[] cookies = request.getCookies();
for (int i = 0; cookies != null && i < cookies.length; i++) {
if ("lastAccess".equals(cookies[i].getName())) {
// 如果cookie的名称为lastAccess,则获取该cookie的值
lastAccessTime = cookies[i].getValue();
break;
}
}
// 判断是否存在名称为lastAccess的cookie
if (lastAccessTime == null) {
response.getWriter().print("您是首次访问本站!!!");
} else {
response.getWriter().print("您上次的访问时间"+lastAccessTime);
}
// 创建cookie,将当前时间作为cookie的值发送给客户端
Cookie cookie = new Cookie("lastAccess",new Date().toLocaleString());
cookie.setMaxAge(60*60);//保存1小时
//访问chapter06下资源时回送cookie
cookie.setPath("/chapter06");
// 发送 cookie
response.addCookie(cookie);
}
}
第6章JSP技术
习题
一、填空题
1.需要在JSP页面静态包含一个文件时,可采用【 include
】指令来实现。
2.使用EL表达式中的pageContext对象,可以成功的获取到了request、response、【servletContext
】和servletConfig对象中的属性。
3.JSP页面中的静态HTML内容称之为【JSP模板元素
】。
4.在JSP文件中,可以同时存在HTML代码与【Java
】代码。
5.JSP全名是Java Server Page,它是建立在【Servlet
】规范之上的动态网页开发技术。
二、判断题
1.EL表达式中的隐式对象与JSP中的隐式对象除了pageContext对象是它们共有的,其它隐式对象则毫不相关。( √
)
2.在处理JSP页面的异常时,如果page指令的errorPage属性和web.xml文件中的元素都进行了配置,那么这两项配置都会起作用。( ×
)
3.page指令的属性中,所有的属性都只能出现一次,否则会编译失败。( ×
)
4.Tomcat在将JSP页面翻译成Servlet程序时,会忽略JSP注释的内容,不会将注释信息发送到客户端。( √
)
5.JSP文件与html文件一样,在编写好后都可以直接在浏览器中运行。(×
)
三、选择题
1.下面选项中,属于jsp:forward标签中的属性的是( D
)
A: file B: url C: path D: page
2.下面JSP标签中,具有转发功能的是(B
)
A: jsp:include B: jsp:forward
C: jsp:param D: jsp:redirect
3.JSP隐式对象pageContext所对应的类是(B
)
A: javax.servlet.http.PageContext
B: javax.servlet.jsp.PageContext
C: javax.servlet.http.jsp.PageContext
D: javax.servlet.jsp.http.PageContext
4.下面关于JSP作用域对象的描述,错误的是( C
)
A: request对象可以得到请求中的参数
B: session对象可以保存用户信息
C: application对象可以被多个应用共享
D: 作用域范围从小到大是request、session、application
5.下列选项中,哪个属性可以指定JSP翻译成Servlet源文件中导入包或类?( C
)
A: language B: extends C: import D: session
四、简答题
1.简述pageContext对象的作用?
1.用于得到其它8个隐式对象;
2.默认直接操作page域中的数据;
3.可以用它操作其它三个域对象(request,session.application)中的数据;
4.提供的findAttribute也是后续要学习的EL表达式的实现原理。
第7章EL表达式和JSTL
习题
- 一、填空题
1.使用JSTL时需导入【 jstl.jar
】和standard.jar这两个JAR包。
2.如果要在JSP页面中导入Core标签库,需要使用【 taglib
】指令。
3.EL表达式中的点运算符,用于访问JSP页面中某些对象的【 属性
】。
4.在JavaBean中,如果一个属性既有getter方法,又有setter方法,则该属性为【 读写属性
】。
5.EL的【 paramValues
】对象用来获取请求参数的所有值,并返回请求参数所有值组成的数组。
- 二、判断题
1.Sun公司制定了一套JSTL标准标签库,它的英文全称是JavaServer Standard Tag Library。(×
)
2.JSTL标签库中的Core标签库的URI为http://java.sun.com/jsp/jstl/core。(√
)
3.EL表达式的cookie隐式对象用于获取客户端的Cookie信息。( √
)
4.JSTL标签库是由5个不同功能的标签库共同组成。(√
)
5.EL的param隐式对象代表application域中用于保存属性的Map对象。(×
)
- 三、选择题
1.下面隐式对象中,返回结果为String类型数组的是(C
)
A: param B: paramValue
C: paramValues D: paramScope
2.下面隐式对象中,用于获取session域中所保存数据的是( D
)
A: pageScope B: pageContext
C: requestScope D: sessionScope
3.下面选项,哪个是合法的EL表达式(D
)
A: $ B: $[empty requestScope]
C: $(“aaa”+“bbb”) D: header[“user−agent”]
4.下面选项中,用于供外界获取javaBean的price属性值的方法是(A
)
A: getPrice() B: setprice() C: setPrice() D: getprice()
5.下面关于{(1==2)?3:4}的返回结果是(D
)
A: true B: false C: 3 D: 4
- 四、简答题
1.简述Javabean规范都有哪些?(至少写出2点)。
1.它必须具有一个公共的、无参的构造方法,这个方法可以是编译器自动产生的缺省构造方法。
2.它提供公共的setter方法和getter方法让外部程序设置和获取JavaBean的属性。
3.通常可以实现java.io.Serializable接口用于序列化。
第8章Servlet高级
习题
- 一、填空题
1.新添加一个属性到【 request
】域中,则所对应的监听器类要获得该值,可以使用ServletRequestAttributeEvent对象的方法。
2.当删除被监听对象中的一个属性时,Web容器调用事件监听器的【attributeRemoved()
】方法进行响应。
3.实现ServletContextAttributeListener接口的监听器类,可以用于监听【 ServletContext
】对象中的属性变更。
4.用于监听ServletRequest对象生命周期的接口是【 ServletContextListener
】。
5.Filter链中各个Filter执行请求时的拦截顺序与响应时的拦截顺序【 相反
】。
- 二、判断题
1.新添加一个属性到session域中,则所对应的监听器类要获得该值,可以使用HttpSessionAttributeListener对象的方法。(×
)
2.在web.xml中,一个 元素中可以出现多个< listener-class>子元素。( ×
)
3.在Filter中实现统一全站编码时,对于请求方式post和get解决乱码问题的方式是相同的。(×
)
4.元素的取值共有三个,分别是:REQUEST,INCLUDE,FORWARD。(×
)
5.一个Filter对象中的doFilter方法可以被多次调用。( √
)
- 三、选择题
1.下面选项中,用于监听HttpSession对象中属性变更的接口是( A
)
A: HttpSessionAttributeListener
B: ServletContextAttributeListener
C: ServletRequestAttributeListener
D: ApplicationAttributeListener
2.在下面过滤器的配置中,当访问应用中的1.jsp时,过滤器的过滤顺序是( D
) Filter3 cn.itcast.filter.Filter3 Filter3 *.jsp Filter1 cn.itcast.filter.Filter1 Filter1 /* Filter2 cn.itcast.filter.Filter2 Filter2 *.html
A:Filter1 Filter3 Filter2
B:Filter2 Filter1 Filter3
C:Filter1 Filter3
D:Filter3 Filter1
3.一个Web应用程序中,Filter可以注册的次数是( C
)
A: 只能是1次
B: 只能是0次
C: 可以是0次或1次或多次
D: 只能是2次
4.下列关于元素值FORWARD的作用,描述正确的是( C
)
A: 表示用户直接访问页面时,Filter将调用
B: 目标资源通过RequestDispatcher的include()方法访问时,Filter将被调用
C: 目标资源通过RequestDispatcher的forward()方法访问时,Filter将被调用
D: 目标资源是通过声明式异常处理机制调用时, Filter将被调用
5.ServletRequest对象被销毁时,将会调用ServletRequestListener接口中的(C
)方法
A:requestCreated()
B:requestInitialized()
C:requestDestroyed()
D:destroyedRequest()
- 四、简答题
1.简述Servlet事件监听器的作用。
1.监听Web应用程序中ServletContext、HttpSession和ServletRequest等域对象的创建和销毁过程。
2.监听ServletContext、HttpSession和ServletRequest等域对象属性的修改。
3.感知绑定到HttpSession域中某个对象的状态
2 .简述什么是过滤器链。
在一个Web应用程序中如果多个Filter程序都对同一个URL进行拦截,那么这些Filter就会组成一个Filter链(也叫过滤器链)
3 .请按照以下要求设计监听器类。已知web.xml中存在如下配置:
cn.itcast.listener.MyListener
设计一个监听器用于实现对HttpSession域对象创建及销毁的监听。在HttpSession对象初始化时在控制台输出”HttpSession对象被创建了”。在HttpSession对象销毁时在控制台输出” HttpSession对象被销毁了”。
public class MyListener implements HttpSessionListener, {
public void sessionCreated(HttpSessionEvent arg0) {
System.out.println("HttpSession对象被创建了");
}
public void sessionDestroyed(HttpSessionEvent arg0) {
System.out.println("HttpSession对象被销毁了");
}
}
第9章JDBC
习题
一、填空题
1.ResultSet接口中的常量TYPE_SCROLL_INSENITIVE,所代表的含义是【 结果集可以滚动
】。
2.Statement提供了一个子接口【 PreparedStatement
】,它可以实现SQL的预编译。
3.使用DriverManager.registerDriver()进行驱动注册时,会导致数据库驱动被注册【2
】次。
4.ResultSet接口中定义了大量的getXXX()方法,如果使用字段的索引来获取指定的数据,字段的索引是从【1
】开始的。
5.Connection接口的【prepareSatatement(String sql)
】方法用于创建一个PreparedStatement对象来将参数化的SQL语句发送到数据库。
二、判断题
1.对于相同的SQL语句,Statement对象每次执行时,都会对其进行编译。( √
)
2.使用DriverManager.registerDriver进行驱动注册时,数据库驱动会被注册1次。( ×
)
3.Statement接口的execute(String sql)返回值是boolean(boolean类型的值),它代表sql语句的执行是否成功。( ×
)
4.PreparedStatement是Statement的子接口,用于执行预编译的SQL语句。( √
)
5.使用JDBC的应用程序可以直接与不同的数据库进行连接,而不需要依赖于底层数据库驱动。( ×
)
三、选择题
1.下列选项中,能够实现预编译的是(C
)
A: Statement B: Connection C: PreparedStatement D: DriverManager
2.Statement接口中executeQuery()方法的返回值是(A
)
A: ResultSet B: int C: Boolean D: Result
3.下列选项中,关于Statement描述错误的是(B
)
A: Statement是用来执行SQL语句的
B: Statement是PreparedStatement的子接口
C: 获取Statement实现需要使用Connection的createStatement()方法
D: PreparedStatement能使用参数占位符,而Statement不行
4.下列关于JDBC驱动的说法中,正确的是(D
)
A: 用JDBC连接数据库,必须使用连接池
B: 用JDBC连接数据库,使用连接池就不需要导入数据库驱动
C: 操作不同的数据库可以使用相同的驱动
D: 无论如何,只要使用JDBC,那么就要使用JDBC驱动
5.下面选项,关于ResultSet中游标指向的描述正确的是( B
)
A: ResultSet对象初始化时,游标在表格的第一行
B: ResultSet对象初始化时,游标在表格的第一行之前
C: ResultSet对象初始化时,游标在表格的最后一行之前
D: ResultSet对象初始化时,游标在表格的最后一行
四、简答题
1.简述JDBC编程的6个开发步骤。
1.加载并注册数据库驱动
2.通过DriverManager获取数据库连接
3.通过Connection对象获取Statement对象
4.使用Statement执行SQL语句
5.操作ResultSet结果集
6.关闭链接,释放资源
2 .请按照以下要求设计实现查询指定记录的方法。要求如下:1.指定表为users,包括id,name,password三个字段。2.已提供JDBCUtils工具类实现获取连接,关闭资源等相关方法。3.编写findById方法,实现根据id查询指定的记录,并将数据封装到User类的对象中。
Connection conn=null;
PreparedStatement pstm=null;
ResultSet rs=null;
@Override
public User queryUserById(int id) {
User user=new User();
try {
conn=JdbcUtils.getConnection();
String sql="select name,password from users where id=?";
pstm=conn.prepareStatement(sql);
pstm.setString(1, id);
rs=pstm.executeQuery();
if(rs.next()){
user.setId(id);
user.setName(rs.getString(1));
user.setPassword(rs.getString(2));
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
JdbcUtils.release(rs, pstm, conn);
} catch (Exception e) {
e.printStackTrace();
}
}
return user;
}
第10章数据库连接池和DBUtils工具
习题
- 一、填空题
1.自定义ResultSetHandler接口的实现类时,只要重写【 hanlder()
】方法,就可以实现结果集的处理。
2.将结果集中的第一行数据封装到一个对应的JavaBean实例中,可选择ResultSetHandler接口的【BeanHanlder
】子类。。
3.DBUtils类为了方便方法的调用 ,所提供的方法都是【 静态
】方法。
4.C3P0的配置文件c3p0-config.xml必须放在工程的【src
】目录下。
5.我们可以使用【BasicDataSourceFactory
】工厂类读取配置文件,创建数据源对象,获取数据库连接对象。
- 二、判断题
1.ResultSetHandler接口用于处理ResultSet结果集,它可以将结果集中的数据转为不同的形式。( √
)
2.QueryRunner类的update()方法只能用于执行update语句。( ×
)
3.commons-dbutils类库封装了JDBC,由Apache组织提供,用于简化JDBC的编码工作量。( √
)
4.DBCP是数据库连接池(DataBase Connection Pool)的简称,是Oracle公司下的开源连接池实现,也是Tomcat服务器使用的连接池组件。( ×
)
5.数据库连接池,可有效的解决频繁创建和断开Connection对象的操作,从而提高数据库的访问效率。( √
)
- 三、选择题
1.下面关于自定义ResultSetHandler接口实现类的描述,正确的是( A
)
A: 通过重写handle()方法,从而实现结果集的处理
B: 通过重写update()方法,实现结果集的处理
C: 通过重写query()方法,实现结果集的处理
D: 通过重写delete()方法,实现结果集的处理
2.下面选项中,关于DBUtils类中用于装载并注册JDBC驱动程序的方法是( D
)
A: close()方法
B: closeQuietly()方法
C: commitAndCloseQuietly()方法
D: loadDriver()方法
3.下面关于commons-dbutils与JDBC的关系,描述正确的是( A
)
A: commons-dbutils是一个对JDBC进行简单封装的工具
B: commons-dbutils是sun公司提供的用来代替JDBC的新技术
C: commons-dbutils必须与连接池一起使用
D: commons-dbutils中的QueryRunner只能用于查询操作
4.下面关于C3P0配置文件中结点可出现的次数是(D
)
A: 1次
B: 0次
C: 0次或1次
D: 0次或多次
5.下面选项中,用于设置dbcp连接池初始化连接数目的方法是( C
)
A: setMaxActive (int maxIdle) B: setMinIdle(int minIdle)
C: setInitialSize(int initialSize) D: setInitial(int initialSize)
- 四、简答题
1.简述数据库连接池的优点。
1.允许应用程序重复使用现有的数据库连接,而不是重新建立。
2.当连接完毕后,连接池会将该连接回收,并交付其他的线程使用。
3.减少创建和断开数据库连接的次数,提高数据库的访问效率.
第11章JSP开发模型
习题
- 一、填空题
1.MVC模式将软件程序分为3个核心模块:模型(Model)、视图(View)和【控制器(controller)
】。
2.在JSP Model 2架构模型有效地实现了整个程序页面显示、流程控制和【 业务逻辑
】的分离。
3.在JSP Model 2架构模型采用JSP+【Servlet
】+ JavaBean的技术。
4.在JSP Model 1中,使用JSP实现流程控制和页面显示,使用【 JavaBean
】对象封装数据和业务逻辑。
5.在Web开发中,为了更方便地使用JSP技术,Sun公司为JSP技术提供了两种开发模型:JSP Model1和【JSP Model2
】。
- 二、判断题
1.JSP Model 2架构模型采用JSP+Servlet+ JavaBean的技术,实际上它就是就是MVC(模型Model-视图View-控制器Controller)设计模式。(√
)
2.在Web开发中,为了更方便地使用JSP技术,Sun公司为JSP技术提供了三种开发模型:JSP Model1,JSP Model2和MVC模式。(×
)
3.控制器(Controller)是负责应用程序中处理用户交互的部分,它负责从模型中读取数据,控制用户输入,并向模型发送数据。(×
)
4.MVC设计模式就是指JSP Model2模型。( ×
)
5.模型(Model)负责管理应用程序的业务数据、定义访问控制以及修改这些数据的业务规则。(√
)
- 三、选择题
1.JSP Model2开发的系统中,实现控制器的是( D
)
A: JSP
B: HTML
C: JavaBean
D: Servlet
2.在设计基于多层体系结构的大型web应用时,JSP充当界面并且系统要不断进行升级,下面选项中最适合的开发模式是(C
)
A: JSP Model1
B: Value Object
C: MVC
D: Proxy
3.下列选项中,哪个是MVC设计模式中的视图?(A
)
A: JSP
B: Servlet
C: Action
D: JavaBean
4.下面关于MVC设计模式的特点描述中,错误的是(D
)
A: 有利于开发中的分工
B: 使程序结构的耦合性降低
C: 有利于组件的重用
D: MVC设计模式适用于所有应用程序的开发
5.下面技术中,用于显示JavaBean中的数据信息的是( A
)
A: JSP
B: JS
C: Servlet
D: JavaBean
- 四、简答题
1.请简述什么是JSP Model2。
JSP Model2架构模型采用JSP+Servlet+ JavaBean的技术,此技术将原本JSP页面中的流程控制代码提取出来,封装到Servlet中,从而实现了整个程序页面显示、流程控制和业务逻辑的分离。实际上JSP Model2模型就是MVC(模型Model-视图View-控制器Controller)设计模式,其中控制器的角色是由Servlet实现,视图的角色是由JSP页面实现,模型的角色是由JavaBean实现。
第12章文件上传和下载
习题
- 一、填空题
1.使用URLEncoder类中的【encode(String s, String enc)
】方法,可成功解决文件下载过程中的乱码问题。
2.ServletFileUpload类的【 isMultipartContent()
】方法,用于判断请求消息中的内容是否是“multipart/form-data”类型。
3.用于设置单个上传文件大小的方法是【setFileSizeMax()
】。
4.在文件上传过程中,【 getInputStream ()
】方法以流的形式返回上传文件的数据内容。
5.Commons-FileUpload组件也是通过【Servlet
】技术来实现文件上传功能的。
- 二、判断题
1.要实现文件的下载,不仅需要指定文件的路径,还需要在HTTP消息中设置两个响应消息头。( √
)
2.设置单个上传文件的大小的方法是setSizeMax()。( ×
)
3.ServletFileUpload类的getHeaderEncoding ()方法如果返回null,此时上传组件将采用系统默认的字符编码。( ×
)
4.使用setRepository()方法,可设置上传文件所保存的临时文件目录。( √
)
5.FileItem对象的getSize()方法返回该上传文件的大小,并以MB为单位。( ×
)
- 三、选择题
1.下面选项,可以解决文件下载的中文文件名乱码问题的类是( B
)
A: URLDecoder
B: URLEncoder
C: URL
D: DecoderURL
2.ServletFileUpload类的parseRequest()方法的返回值类型是(C
)
A: FileItem[]
B: Set
C: List
D: Map
3.下面用于设置上传文件所保存的临时文件目录的方法是( D
)
A: getDirectory ()
B: setDirectory()
C: getRepository ()
D: setRepository ()
4.下面用于返回List类型集合的方法是( C
)
A: parseRequest()
B: getRequest()
C: parseResponse()
D: getResponse ()
5.下面用于判断FileItem类对象封装的数据是否为普通文本表单字段的方法是( D
)
A: isForm()
B: isUploadField()
C: isField()
D: isFormField()
- 四、简答题
1.简述文件上传时必须具备的两个前提条件。
1.必须要设置input输入项的name属性,否则浏览器将不会发送上传文件的数据。
2.必须把将表单页面的method属性设置为post方式,enctype属性设置为“multipart/form-data”类型。
你可能感兴趣的:(Java web复习题)