Java web复习题

第1章网页开发基础

习题

  • 一、填空题
    1.在CSS中,用于设置行间距的属性是【line-height 】。
    2.在CSS中,用于定义字体风格,如设置斜体、倾斜或正常字体的属性是【font-style 】。
    3.内嵌式是将CSS代码集中写在HTML文档的【 】标记中,并且用【
    行内引入
    连接引入式
    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复习题)