抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

题型

选择题平均每章3道题

判断题平均每章1道题

编程题重点9、10章

第一章 Java Web开发环境配置

  1. 在Web程序结构中,浏览器端与应用服务器端采用请求/响应模式进行交互的过程为()

    用户输入、发送请求、访问数据库、返回结果、发送响应、显示

  2. 下列说法正确的是()

    B/S结构相较于C/S结构服务器负担比较重,快速响应不如C/S结构。

  3. Tomcat安装目录中bin文件夹下存放的文件为()。

    支持Tomcat运行的常见.exe文件

  4. JSP的全称为()。

    Java Server Pages

  5. 下面关于JSP的说法错误的是()。

    • A. 利用JSP可以很方便地在页面中生成动态的内容。
    • B. JSP是由Sun公司提出的、其他许多公司一起参与建立的一种动态网页技术标准。
    • C. JSP开发的Web应用不能跨平台。 ❌
    • D. JSP具备了Java技术面向对象、与平台无关性且安全可靠的优点
  6. 在下列选项中,正确的URL是()。

    https://localhost:8080/Prj01/index.jsp

  7. 下面关于URL的说法错误的是()。

    • A. URL的第二部分是协议。 ❌
    • B. URL的第二部分是主机的IP地址。
    • C. URL的大小写是敏感的。
    • D. URL的全称为“统一资源定位符”。
  8. 关于Web项目的目录结构,下面说法错误的是()。

    • A. WebRoot目录是Web应用的顶层目录,也称为文档的根目录。
    • B. web.xml是Web应用的配置文件,可以随意修改。 ❌
    • C. lib文件夹里包含了Web应用所需的.jar和.zip文件。
    • D. META-INF是系统自动生成、用于存放系统描述信息的文件夹。

    WebRoot目录是Web应用的顶层目录,也称为文档的根目录。存放配置文件
    WebApps文件夹里的内容是网站资源文件。
    META-INF存放系统描述信息的文件夹
    WEB-INF 存放部署描述文件

  9. 在网络应用程序中有两种基本的结构,即客户机/服务器和浏览器/服务器。

  10. Web项目属于B/S结构

  11. 在Web程序结构中,浏览器端与应用服务器端请求模式/采用响应进行交互

  12. 在应用程序领域,Web是World Wide Web的简称。

  13. Tomcat服务器运行的端口号默认为8080

  14. Tomcat安装目录中webapps文件夹里的内容是网站资源文件。

  15. IDE是帮助用户进行快速开发的软件,它的中文全称集成开发环境(Integrated Development Environment

  16. 在Web项目的目录结构中,WebRoot目录用来存放配置文件

  17. 一台Tomcat服务器的IP地址为110.74.22.15网站端口号为8080,则访问Web项目Demo中的test.jsp的URL为https://110.74.22.15:8080/Demo/test.jsp


  1. JSP规范唯一支持的语言是 Java

  2. 可以通过修改Tomcat的配置文件进行修改参数,下面的server.xml文件部分代码中,端口号是多少()

    1
    2
    3
    4
    5
    <Connector port=”8443” protocol=”HTTP/1.1

    connectionTimeout=”8080

    redirectPort=”8888”/>
    • A. 8443 ✅
    • B. 8888
    • C. 8080
    • D. 1.1
  3. 在Eclipse中,一个Web应用程序的部署描述文件位于( )目录。

    • A. WebRoot
    • B. META-INF
    • C. src
    • D. WEB-INF ✅

    web.xml 是web应用的配置文件,不能删除或随意修改,位于WEB-INF目录根目录下

  4. 关于下面这个URL说法正确的是() http://localhost:8080/Prj01/index.jsp

    • A. http是主机地址
    • B. localhost是协议
    • C. 8080是主机IP地址
    • D. prj01是主机资源目录 ✅

    http是协议
    localhost是主机IP地址或域名
    8080是端口号
    prj01/index.jsp是主机资源具体地址,如目录和文件名等

  5. 当用户请求JSP页面时,JSP引擎会执行该页面的字节码文件响应客户的请求,执行字节码文件的结果是()

    • A. 发送一个HTML页面到客户端面 ✅
    • B. 什么都不做
    • C. 发送一个Java文件到客户端
    • D. 发送一个JSP源文件到客户端

第二章 HTML基础

  1. HTML语言注释的格式为()。

    ****

  2. 下列关于HTML的说法不正确的是()。

    • A. 之间的内容为浏览器中网页上显示的内容。
    • B. HTML语言大小写不敏感。
    • C. HTML文件必须由开头、结尾。
    • D. 之间的内容是用来设置一些网页相关属性和信息的,不可以省略。 ❌

    <head></head> 可以省略

  3. 下面()不是align属性的值。

    • A. top ❌
    • B. center
    • C. right
    • D. left
  4. 在下列标签中,<i>内容</i> 是将内容设置为斜体。

  5. 【表格标签】当设置的属性有重叠时,表元的属性默认情况下总是跟它离得最近的设置相同。

  6. 标签的属性中,alt 属性能在图片未载入或载入失败时提供替代性的文字说明。

  7. 表单中的标签表示下拉菜单。

  8. 下列关于框架的说法不正确的是()。

    • A. 标签的cols属性表示将页面横向分割。 ❌
    • B. 一个框架网页中的每个窗口都是一个完善的HTML网页。
    • C. 在框架中不需要再写。
    • D. 每一个表示一个框架窗口,它的排序依次为从左到右、从上到下。

    rows :横向分割网页。属性值决定了分割页面之间的宽度的比值。
    cols :纵向分割网页。属性值决定了分割页面之间的长度的比值。
    border :框架边框的宽度。当值为 0 时,表示没有边框。

  9. HTML的中文名称是超文本标记语言。

  10. 在HTML语言中空格用&nbsp表示。

  11. 在HTML中有两种类型的标签,它们分别是单标签和双标签。

  12. 在HTML文件中,文字之间的换行必须使用
    标签。

  13. 标签

      内容
    表示它所包围的内容是有序列表标签,而
      内容
    表示无序标签。

  14. 在表格标签中

    <table></ table> :定义表格,表格的所有内容都写在这个标签之内
    <caption></caption> :定义标题,标题会自动出现在整张表格的上方
    <tr></tr> :定义表行
    <th></th> :定义表头,包含在 之间,表头中的文字会自动变成粗体
    <td></td> :定义表元(表格的具体数据),包含在 之间

  15. 单击“百度”即可超链接到百度的主页,代码这样写<a href=”www.baidu.com“>百度。

    href的网址要用双引号引起来

  16. 标签的type:决定了表单元素的类型,可以为以下的值

    text :文本框。是type的默认属性
    password:密码框
    radio:单选按钮,可以将多个单选按钮的name属性设置相同,使其成为一组。
    checked属性可设置,默认被选
    checkbox:复选框checked属性可设置默认被选
    reset:重置按钮,按下之后,所有的表单元素内容变为默认值
    button:普通按钮
    submit:提交按钮,按下之后,网页会将表单的内容提交给action设定的网页, action 的值 为空时提交给本页
    image:图片,但是点击它的效果与提交按钮一样,都会提交表单

  17. 标签的rows属性表示将页面横向分割
  18. 标签的src属性的值表示框架内容的地址

  1. 在html标签中要设置字体的样式需要使用的属性为

    • Size
    • Font
    • face ✅
    • color

    要用的标签是 font,要用的他的face属性

  2. 要将两段文字Java和Web设置在同一行显示,可以使用:

    1
    <h7>Java</h7><h8>Web</h8>

    标题标签只有1-6,超过范围的都会以默认字体、字号显示,并且没有换行

  3. 现有部分html代码如下:

    1
    2
    3
    4
    5
    6
    7
    <ol type="A">          

    <li>Java</li>

    <li>Web</li>

    </ol>

    请问这段代码在浏览器上显示结果是( A.JavaB.Web )

    type属性值为a时会显示有序序号a、b、c…type属性值为A时会显示有序序号A、B、C….type属性值为其他值时,会显示默认有序序号1、2、3、4….

  4. 在table标签里,要合并一列的3个单元格需要使用哪个属性值

    1
    2
    td.rowspan="3"         //行  
    td.colsapn="3" //列
  5. 现有部分关于单选按钮的Html代码:

    1
    2
    3
    4
    <input type="radio" name="1" checked>

    <input type="radio" name="2" checked><BR>

    在浏览器上显示的效果是( “男”和“女”都会被默认选中 )

    两个单选按钮的name属性值不一样,说明他们分别是两组单选按钮,所以会被全部选中

第三章 JavaScript基础

  1. 下列关于JavaScript的说法错误的是()。

    • A. JavaScript的语法和Java语言的语法非常类似。
    • B. JavaScript对大小写是敏感的。
    • C. JavaScript中的变量是弱变量类型,即变量的类型根据它被赋值的类型改变。
    • D. 服务器对JavaScript脚本程序进行编译、运行 ❌

    javaScript可以嵌入到HTML中,是一种运行在客户端的语言,由客户端的浏览器进行解释执行,大小写敏感

  2. 在下面的JavaScript语句中,var arg1=10 定义了一个整型变量并赋值为10。

  3. window.setTimeout(“fun()”,1000)表示的意思是,间隔1秒后,fun()函数被调用1次。

  4. window对象的 status 属性用来指定浏览器状态栏中显示的临时消息。

  5. 在history对象中不能实现网页前进效果的方法是()。

    • A. go(1)
    • B. location
    • C. back() ✅
    • D. forward()
  6. 在浏览器的状态栏中显示“这是状态栏”消息的代码是 window.status=”这是状态栏”

  7. 下列打开指定位置新窗口的代码中正确的是window.open(“window2.html”,”new”,”top=10”

  8. 在代码<body onload="f1()" onError="f2()"><input onFocus="g1()" onClick="g2()"></body>中,一定会被调用的方法是 f1()

  9. 浏览器对JavaScript脚本程序进行解释执行。

  10. JavaScript的3种注释写法为、/注释内容、//注释内容

  11. 若将JavaScript代码写在单独的test.js文件中,需要在调用它的HTML页面中插入的代码是<script src="test.js" type="javascript"></script>

  12. JavaScript的内置对象window负责操作浏览器窗口

    window.alert() 弹出消息框

    window.confirm() 确认框

    window.prompt() 输入框

    window.open() 新窗口的地址

    window.close()方法可以关闭窗口

  13. history对象包含用户的浏览历史等信息,其中history.forward()方法相当于单击浏览器上的后退按钮,history.back()方法相当于单击浏览器上的前进按钮。

    history.back() 后退

    history.forward() 前进

    window.history.go(n) 正数 前进n页,负数 后退n页

  14. 在名为form的表单中有一个文本框account,其中的内容可以用代码form.account.value获得。

    A. ×

    要用特定的函数来获得

  15. 用location对象实现跳转到网页a.html的代码是windows.location.href="a.html"

  16. document对象从属于window对象。

  17. 用document对象可以进行一些简单网页属性的设置,通过document.title来访问标题,通过document.location来获取当前网页的地址。


  1. 以下哪些JavaScript变量的命名是错误的?

    (1)var hello; (2)var Java; (3)var 123; (4)var x%x; (5)var $hello; (6)var _Script; (7)var for;

    命名规范:
    首位字符必须是字母A-Z,a-z,_ ,$。
    其他位置上可以是 _ , $ , 0-9 , a-z , A-Z
    关键字不能命名: for

  2. 现有如下计时器代码,要让计时器正确的显示在文本框里,请补全缺失部分。()

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <html>

    <body>
    <input type="text" id="count" />
    <script type="text/javascript">
    var num = 0;
    function startCount() {
    document.getElementByld("count").value = num;
    ------------
    num += 1;
    setTimeout(startCount, 1000);
    }
    setTimeout(startCount, 1000);
    </script>
    </body>
    </html>

    alert(num) 显示在弹出的消息框里,
    window.status=num 显示在浏览器窗口的状态栏里,
    getElementByld(“count”).value = num 少了对象名会出错
    document.getElementByld(“count”).value = num 将num附值给ID为count的文本的属性值value

  3. history对象的 ( go(-1) ) 方法要求窗口显示刚刚访问的前一个页面

    history.back() 返回上一页
    history.forward() 返回下一页
    history.go(n) 如果n是正数前进n格,负数表示向后退n格

  4. 在JavaScript内置对象中,不能实现在当前页面跳转的代码是(window.open)

    window.open()在新窗口跳转
    可以在当前页面跳转的有window.location.href , location.href , this.location.href , self.location.href , window.location.replace

  5. 下面代码可以实现在页面显示如图九九乘法表,请补全代码。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <html>
    <head>
    <title>九九乘法表</title>
    <script type="text/javascript">
    for (var i = 1; i <= 9; i++) {
    for (var j = 1; j <= i; j++) {
    a = i + "*" + j + "=" + i * j + " "
    **document.write(a)**
    ___________________
    }
    **document.write("<br>");**
    _________________
    }
    </script>
    </head>
    <body>
    </body>
    </html>

    alert() 是在弹出的消息框显示内容
    console.log()是在控制台显示内容
    window.status()是在浏览器窗口的状态栏显示内容
    document.write()可以在页面显示内容

第四章 JSP基本语法

  1. 下列关于JSP的说法错误的是()。

    • A. JSP属于静态网页。 ❌
    • B. JSP将动态代码嵌入到静态的HTML中,从而产生动态的输出。
    • C. JSP页面是由JSP容器执行该页面的Java代码部分,然后实时生成HTML页面。
    • D. 在客户端的源代码中是看不到JSP页面中的Java代码的

    JSP是动态页面

  2. JSP页面在第一次运行的时候被JSP引擎转换为 ****Servlet 文件。

  3. 在下列注释中会发送到服务器的是()。

    • A. /注释内容/
    • B.<%–注释内容–%>
    • C. //注释内容
    • D.
  4. 下列关于JSP表达式的说法错误的是()。

    • A. JSP表达式的作用是将其里面内容所运算的结果输出到客户端。

    • B. JSP表达式中的内容一定是字符串类型,或者能通过toString()函数转换成字符串的形式。

    • C. 在JSP表达式中不能出现多条语句。

    • D. 在JSP表达式中能用“;”结束。 ❌

      JSP表达式:<%=变量/返回值/表达式%>
      JSP程序段:<% java代码 %>
      JSP声明: <%! 代码 ;%>
      URL传值: <% String str = request.getParameter("arg1"); %>
      JSP指令: <%@指令类别 属性="值"%>
      JSP动作: <jsp:动作名 属性1="属性值1" 属性n="属性值n" />
      <jsp:动作名>相关内容</jsp:动作名>

  5. JSP程序段的用法 <%Java代码%>

  6. 在JSP页面中定义一个Sring类型的Java全局变量str,正确的代码是<%!Sring str;%>

  7. 使用content Type 属性可以设置JSP的MIME类型和可选字符编码。

  8. 用于设置JavaBean属性的动作是<jsp:setProperty>

  9. 用于将请求跳转到另一个页面的JSP动作是 <jsp:forward>

  10. JSP注释一共有3种,分别是、<%–注释内容–%>、//注释或/注释**/。

  11. JSP程序段就是插入到JSP程序的Java代码段。

  12. 在JSP声明中可以定义网页中的局部变量这些变量在声明的那个JSP页面能使用。

  13. 在使用使用URL传值时传输的数据只能是String类型。

  14. request对象获取请求信息的方法是getParameter()。

  15. JSP的3个指令是page、include和 taglib

  16. page指令的import属性用来导入包。

  17. 当JSP程序出现未被捕获的异常时可以使用errorPage设置要跳转的页面。

  18. include 动作 只会把文件中的输出包含进来。
    include 指令 是把文件包含到JSP页面。适合导入不会经常变化的资源。

  19. include指令可以在JSP程序中插入多个外部文件。


  1. 用户可以在( “<jsp: 和 />” ) 标记之间插入动作

  2. 在“<%!”和“%>”标记之间声明的Java方法称为页面的成员方法,其( 在整个页面内 )有效。

    在Java声明标记的声明的变量、方法在整个页面内有效
    在程序段里声明的变量是局部变量,从定义之后有效

  3. 现有如下JSP代码片段。

    1
    2
    3
    4
    5
    6
    <%!int n=0;%>
    <% int m=0;
    (1);
    out.print("欢迎访问本网站!<br>");
    out.print("您是第"+ (2) +"个访问本站的客户。");
    %>

    要实现网络计数器的功能,请补全代码。

    (1) n++ (2)n

    n是全局变量,m是局部变量,所以用全部变量进行累加

  4. 现有以下jsp代码片段。

    1
    2
    3
    <% String str="12"; int number=Integer.parseInt(str); %>
    该数字的平方为:<%=number*number %><HR>
    <a href="4.6urlP2.jsp?number=______">到达p2</a>

    请问空格处填以下哪个代码可以用url传值? <%=str+1%>

    url传值只能传字符串,
    运算表达式会语法错误,比如 24+3
    <%=str+number%> 两个不同类型变量的值,语法错误
    str 是变量无法传值
    str是字符串拼接,不是进行计算

  5. 现有以下jsp代码片段。

    1
    2
    3
    <% String str="12"; int number=Integer.parseInt(str); %>
    该数字的平方为:<%=number*number %><HR>
    <a href="4.6urlP2.jsp?number=<%=str+6%>">到达p2</a>

    请问能不能用url传值到4.6urlP2.jsp?如果能传的值是多少? 126

    是直接进行了一个拼接

  6. 现有如下JSP代码片段,用来计算矩形的面积。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <% 
    int row=Integer.parseInt(request.getParameter("<tr>"));
    int col = Integer.parseInt(request.getParameter("<td>"));
    out.print("<table border=1>");
    for(int i = 1; i <= row; i++){
    out.print("<tr>");
    for(int j = 1; j <= col; j++){
    out.print("<td>");
    out.print(i*j);
    out.print("</td>");
    }
    out.print("</tr>");
    }
    out.print("</table>");
    %>

    现在用jsp:param动作“名字-值”来为矩形的长和宽传递参数,请问传值的“名字”应该为()。

    <tr><td>

第五章 表单开发

  1. 下列关于表单的说法不正确的是()。

    • A. 表单是可以由用户输入并提交给客户端的一个图形界面。 ❌
    • B. 在表单中可以输入一些内容,这些输入功能由表单元素提供。
    • C. 在表单中一般有一个按钮负责提交。
    • D. 单击“提交”按钮,表单元素中的内容会提交给服务器端。

    表单是一种可以由用户输入,并提交给服务器端的一个图形界面

  2. 有下面两段代码:

    page1.jsp

    1
    2
    3
    4
    5
    <form action=”page2.jsp”>
    请您输入账号:<input name=”account” type=”text”><br>
    请您输入密码:<input name=”password” type=”password”><br>
    <input type=”submit” value=”登录”>
    </form>

    page2.jsp

    1
    2
    3
    4
    5
    <%
    //获得表单中name=account的表单元素中输入的值,赋值给str
    String str1=request.getParameter(“account”);
    String str2=request.getParameter(“zhanghu”);
    %>

    若不输入数据,直接单击“登录”按钮,则str1和str2的值分别是 ””、null

  3. 在浏览器的地址栏上的URL中隐藏传输的参数,需要将

    标签的method属性值设置为post

  4. 下列说法中错误的是()。

    • A. 在提交表单数据时只能用post方法。 ❌
    • B. 以文本框在源代码中出现的顺序 从数组的第0位开始向后放置同名表单元素的数据。
    • C. 除了复选框、多选列表框等,其他一些表单元素也可以设置为同名。
    • D. 获取同名表单元素中数据的方法为request.getParameterValue(arg)。

    ****在提交表单数据时可以用 getpost

  5. 下列表单中不是单一表单元素的是()。

    • A. 密码框
    • B. 复选框 ✅
    • C. 文本框
    • D. 单选按钮
  6. 在表单提交的过程中,不能解决中文乱码问题的方案为()。

    • A. 将获取到的数据转换成gb2312的格式。
    • B. 把文件头上的字符集设置为中文字符集。 ✅
    • C. 在获取数据之前先修改request的编码方式。
    • D. 利用过滤器对整个Web应用进行统一的编码过滤。
  7. 虽然表单传值的方法不是绝对安全的,但由于其简单性和平台支持的多样性,很多程序还是用表单传值。

  8. 表单元素放在标签之间。

  9. 表单元素提交给服务器端的哪个页面可以用

    中的action属性决定。

  10. 在表单中提交请求的两种常见方式是get和post,默认情况下是get方式。

  11. 捆绑表单元素数据的获取方法为request.getParameterValues()

  12. 将Type属性设置为hidden可以隐藏表单元素。

  13. 直接修改request的编码方式来解决中文乱码问题的request.setCharacterEncoding("UTF-8")

  14. Http是无状态的协议,在页面之间传递值时必须通过服务器。

  15. 在用JavaScript对表单的输入进行验证时,需要将“提交”按钮的类型设置为button。


  1. 现有文件名为charCode.jsp源代码,请问文件运行后能不能传值到指定页面,如果不能请找出错误代码。()

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <%@ page language="java" contentType="text/html; charset=gb2312"%>
    <html>
    <body>
    <form acton="charCode.jsp">
    请您输入鲜花的模糊资料:<BR>
    <input type="hidden" name="flower" type="text">
    <input type="button" value="查询">
    </form>
    <%
    String flower = request.getParameter("flower");
    if(flower!=null){
    out.println("花朵名称为:" + flower);
    }
    %>
    </body>
    </html>

    本页面既当客户端提交表单页面,又当服务器端接收表单页面
    虽然输入框被隐藏了,客户端无法输入值,但还是可以传值到接收页面;
    类型为普通按钮button是无法向接收页面提交表单信息,submit才能提交

  2. post方法是将表单内各字段与其内容以键-值对放在http报文的哪个部分?()

    http请求报文的实体主体部分

    Get方法是将传值内容以键值对放在http请求报文请求行的URL字段
    Post方法是将传值内容以键值对放在http请求报文的实体主体部分

  3. 如果现在因为服务器故障而无法返回请求的页面,返回状态码506 varlant also negotiates

    2xx 表示成功
    204 No Content 表示服务器成功处理请求,但不需要返回任何实体内容
    3xx 表示重定向,完成请求后还需要进一步采取措施。
    304 Not Modified 表示客户端发送了一个带条件的GEt请求,文档内容没被改变
    4xx 表示客户的差错
    5xx 表示服务器的差错

  4. UTF-8 中文字符使用24位编码,英文字符使用8位编码,兼容ASCII和ISO-8859-1。不兼容中文字符使用16位编码的GB232/GBK。

    Unicode 中文字符和英文字符使用16位或32位编码,不兼容GBK

    GB2312 中文字符使用16位编码,英文字符使用8位编码,兼容ISO-8859-1

    ISO-8859-1 使用8位编码,无法显示中文字符,兼容ASCII

  5. 现有tomcat服务器配置文件server.xml部分内容,及客户端提交表单页面a.jsp,和服务器端表单接收页面b.jsp,客户提交表单后中文显示乱码,请用以下哪种办法可以正确显示中文字符。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Server.xml

    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="gbk"/>

    a.jsp

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"%>

    <html>

    <body>

    <form action="b.jsp" method="get">

    请您输入学生的模糊资料:<BR>

    <input name="stuname" type="text">

    <input type="submit" value="查询">

    </form>

    </body>

    </html>

    b.jsp

    <%@ page language="java" contentType="text/html; charset=gb2312"%>

    <html>

    <body>

    <%

    String stuname = request.getParameter("stuname");

    out.println("输入的查询关键字为:" + stuname);

    %>

    </body>

    </html>

    改a.jsp里代码charset=gb2312; 改b.jsp里的代码 charset=utf-8

    post方法传值键-值对在请求报文实体主体部分,默认用iso-8859-1编码,可以在接收页面转码交给服务器。
    get方法传值键-值对在请求报文请求行的URL字段,默认用iso-8859-1编码,需要在客户提交页面转码交给服务器

第六章 JSP访问数据库

  1. 下列关于JDBC技术的说法错误的是()。

    • A. JDBC相关的API存放在java.sql包中。
    • B. JDBC可以适用于任何语言。 ❌
    • C. JDBC提供了一系列的API,让Java语言编写的代码连接数据库,对数据库的数据进行添加、删除、修改和查询。
    • D. 在Java技术系列中,访问数据库的技术叫做JDBC。

    JDBC只能适用于JAVA

  2. java.sql.Connection负责 连接数据库

    java.sql.Statement 负责执行数据库SQL语句。

    java.sql.ResultSet :负责存放查询结果。

  3. DriverManager.getConnection(“URL”,”用户名”,“密码”)的功能是获取数据库连接

  4. 下列关于ResultSet类的说法错误的是()。

    • A. 游标是在ResultSet中的一个可以移动的指针,它指向一行数据,初始时指向第一行的前一行。
    • B. 从ResultSet的某一行中通过getXXX()方法取数据的每一列能取无限次。 ❌
    • C. 当游标指向某一行时可以通过ResultSet的getXXX(“列名”)方法得到这一行的某个数据。
    • D. ResultSet的next()方法的返回值是一个布尔类型的数据

    从某一行中通过 getXXX() 方法取数据每一列只能取一次

  5. 在Connection中设置executeUpdate()不自动提交的代码是connection.setAutoCommit(false)

  6. 下列关于厂商驱动的说法错误的是()。

    • A. 驱动程序一般弹性较差,往往只适用于自己的数据库系统。
    • B. 使用厂商驱动的方法完全不依赖于ODBC,但是只能在Windows操作系统上使用。 ❌
    • C. 不同驱动程序和不同数据库可以采用不同驱动程序名称和URL。
    • D. 使用厂商驱动需要下载相应的厂商驱动包,将其复制到Web项目的“WEB-INF/lib”下。
  7. 连接到本机MySQL数据库上的SCHOOL数据库的代码为(),其用户名为”root”,密码为“manager”。

    1
    Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/SCHOOL”,”root”,”manager”);     

    MySQL的默认数据库端口为3306
    mssql的默认端口是1433

  8. 一个典型的JDBC按照()顺序编写。

    1. 指定驱动 2. 获得与数据的连接 3. 使用statement接口运行SQL语句 4. 处理SQL语句的运行结果 5. 关闭数据库连接
  9. 下列关于JDBC-ODBC桥的说法中错误的是()。

  • A. ODBC桥接比较简单,支持所有操作系统上的数据库连接。 ❌
  • B. 由ODBC连接到特定的数据库之后,JDBC只需要连接到ODBC就可以了。
  • C. ODBC几乎可以支持在Windows平台下运行的所有数据库。
  • D. 通过ODBC就可以连接到ODBC支持的任意一种数据库

ODBC只能在Windows下

  1. 在java.sql包中负责执行数据库SQL语句的类是java.sql.Statement

  2. 数据库连接有两种方式,分别是数据库厂商驱动连接和JDBC-ODBC桥接方式。

  3. ODBC:Open Database Connectivity 开放数据库互连

JDBC:Java Database Connectivity Java数据库连接

  1. 加载数据库驱动类的代码是Class.forName("驱动名")

  2. statment.excuteUpdate(sql)主要用来执行添加数据、删除数据、修改数据的SQL语句,其返回值代表的是这条sql语句执行受影响的行数

  3. statement.executeQuery(sql)主要用来执行查询数据的SQL语句,它的返回值是ResultSet类型,用于存放SQL语句执行后返回的结果。

  4. PreparedStatmentsetString(n,参数)方法可以将第n个“?”传递的参数代替。

  5. 可以使用Connection类来定义executeUpdate()方法是否自动提交SQL语句的结果,并进行事务的提交或回滚。

  6. 通过ODBC可以连接到ODBC支持的任意一种数据库,这种连接方式叫做JDBC-ODBC桥


  1. 如果远程MySQL数据库服务器的IP地址是202.115.128.123,进入此服务器MySQL命令行客户端管理工具的命令为()。

    1
    mysql -h 202.115.128.123 root -p
  2. 查询结果集ResultSet是以统一的行列形式组织数据,
    执行“ResultSet rs=stat.executeQuery(“select bid,name,author,publish,price from book”);”语句,得到的结果集rs的列数为()。

    5

  3. 向数据库添加数据,可以获得成功添加条数的方法是()。

    A. executeUpdate() ✅

    B. getString()

    C. createStatement()

    D. executeQuery()

    executeQuery()
    发送查询SQL语句,返回结果集。
    createStatement()
    与数据库建立连接,打开数据库。
    executeUpdate()
    返回一个整型,意思为这条sql语句执行受影响的行数,即成功添加的条数。

  4. 在游标的控制中,以下部分代码能实现倒序奇数行记录输出的是()。

    C.  ✅

    1
    2
    3
    4
    5
    6
    rs.afterLast();
    while(rs.previous()){
           int i=rs.getRow();
           if(i%2<>0){
    ……}
    ……}

    rs.afterLast()
    将游标移到结果集的最后一行之后。
    rs.last()
    将游标移到结果集的最后一行。
    rs.befortFirst()
    将游标移到结果集的第一行之前。
    if(i%2==0)
    判断是否为偶数。
    if(i%2==1)
    判断是否为奇数。
    if(i%2<>0)
    判断是否为奇数。

  5. 关于连接池的使用,下面描述正确的是()。

    在连接池集合中创建连接对象可以使用add()方法

    设定连接池最大连接数可以防止用户无限制地与数据库连接。
    使用完连接对象放回连接池数组 add()
    从连接池数组中取出一个连接对象remove()

第七章 JSP内置对象(1)

  1. 下列关于内置对象的说法错误的是()。

    • A. 在所有的JSP页面中,直接调用内置对象都是合法的。
    • B. 内置对象是自动载入的,因此不需要直接实例化。
    • C. 在JSP规范中定义了4种内置对象。 ❌
    • D. 内置对象是通过Web容器来实现和管理的。

    JSP 规范中定义了九种内置对象,
    out 管理对客户端的输出
    request 得到客户端的请求信息
    response 向客户端发出响应
    session 保存同一客户端一次会话过程中的一些信息
    application 表示整个应用的环境的信息
    exception 表示页面上发生的异常,可以通过它获得页面异常信息
    page 表示的是当前 JSP 页面本身,就像Java 类定义中的 this 一样
    pageContext 对象:表示的是此 JSP 的上下文
    config 对象:表示此 JSP 的 ServletConfig

  2. 下列内置对象中 exception 用来表示页面上发生异常。

  3. out对象管理缓冲区方法中,清除缓冲区里的数据但不把数据写入客户端的是 ****void clear()

  4. 在request对象的方法中,用来得到请求的URL地址的方法是request.getRequestURL()

  5. 下列关于jsp:forward和response的sendRedirect方法进行重定向的说法中错误的是()。

    • A. forward方法只能在同一个Web应用程序内的资源之间转发请求。
    • B. 与redirect方法相比,forward方法的效率较高。
    • C. forward方法属于服务器端去请求资源,而redirect方法让客户端重新向服务器端请求一遍。
    • D. forward转发的页以及转发到的目标页面不能共享request里面的数据,但redirect方法可以。 ❌

    forward 方法属于服务器端去请求资源,客户端浏览器的地址不变
    redirect 客户端重新请求一 遍,所以地址显示栏会变
    从数据共享来看
    forward 转发的页面,以及转发到的目标页面能够共享 request 里面的数据。
    redirect 转发的页面以及转发到的目标页面不能共享 request 里面的数据。

  6. response对应的类是 javax.servlet.http.HttpServletResponse()

  7. Cookie.setMaxAge(int second)用来设置设置Cookie的存活时间的代码是()。

  8. Cookie可以持久地保持一些和客户相关的信息

  9. 在解决Cookie的安全问题时可以采用及时删除Cookie的方法。下列做法不能删除一个已经存在的Cookie的是()。

    • A. 使用跨站脚本技术 XSS ✅
    • B. 通过浏览器删除Cookie
    • C. 给Cookie赋空值
    • D. 禁用Cookie
  10. 在JSP页面中不需要定义就可以直接使用的对象叫内置对象

  11. 在JSP的内置对象中,out对象负责管理对客户端的输出,主要有两种输出方法,分别是print()和println()。

  12. out对象的close()方法可以强制终止当前页面的剩余部分向浏览器输出。

  13. request对象对应的类型是javax.servlet.http.HttpServletRequest

  14. 负责得到客户端请求的内置对象是request,负责身客户端发出响应的内置对象是response。

  15. 用response进行重定向的方法是response.sendRedirect(目标页面路径)。

  16. response的sentError()方法用于向客户端发送HTTP状态码的出错信息。

  17. Cookie是一个小的文本数据,由服务器端产生,发送给本地用户

  18. 在一般情况下,Cookie中的值是以key-value的形式进行表达的。

  19. response.addCookie(Cookie c),通过该方法将 Cookie 写入客户端。

    Cookie.setMaxAge(int second) , 通过该方法设置 Cookie 的存活时间。
    Cookie[] request.getCookies() , 读取客户端传过来的 Cookie ,以数组形式返回。


  1. 现有部分有关JSP缓存与Servlet缓存代码段,请问页面输出结果为( 胜 战病!毒)。

    1
    2
    3
    4
    5
    6
    7
    8
    <% 
    out.print("战");
    response.getWriter().print("胜");
    out.print("病");
    out.flush();
    out.print("毒");
    response.getWriter().print("!");
    %>

    out对象先输出到JSP缓存再到Servlet缓存最后到页面。
    response.getWriter()直接输出到Servlet缓存再到页面。
    (1)out.print(“战”);//将“战”输出到JSP缓存
    (2)response.getWriter().print(“胜“); //将“胜”输出到Servlet缓存,最先输出到页面的是“胜”。
    (3)out.print(“病”); //将“病”输出到JSP缓存,排在“战”后面,JSP缓存队列为“战、病”。
    (4)out.flush(); //手动刷新JSP缓存并将“战、病”输出到Servlet缓存,排在“胜”的后面,现在Servlet缓存队列为“胜、战、病“。
    (5)out.print(“毒”); //将“毒“输出到JSP缓存,现在JSP缓存队列为”毒“。
    (6)response.getWriter().print(“!”); //将“!“输出到Servlet缓存,现在Servlet缓存队列为“胜、战、病、!“。 |
    (7)程序结束JSP缓存输出到Servlet缓存,现在Servlet缓存队列为“胜、战、病、!、毒“,最后输出到客户端页面。

  2. 现有部分代码如下,出现错误提示为“java.lang.NumberFormatException: null”,请帮同学解决问题()

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    1     <%
    2         for (int i = 1; i < 10; i++) {
    3     %>
    4         <a href="05_1.jsp?num=<%=i%>"><%=i%></a><br>
    5     <%
    6         }
    7     %>
    8     <%
    9        String numstr = null;
    10       numstr = request.getParameter("num");
    11       int num1 = Integer.parseInt(numstr);
    12    %>
    13    该数字的平方为<%=num1*num1%>

    在第11行和第13行后分别加入if(numstr ! = null){<%}%>

    获取数据时出现空值,所以做一个非空判断

  3. 有如下程序片段:

    1
    2
    3
    4
    <form>
    <input type=”text” name=”number”>
    <input type=”submit” value=”提交”>
    </form>

    下面()语句可以获取用户输入的信息。

    request.getParameter("number");

  4. response 内置对象是对客户的请求做出响应,向客户端发送数据的。

    request 得到客户端的请求信息
    session 保存同一客户端一次会话过程中的一些信息
    application 表示整个应用的环境信息
    response 向客户端发出响应

  5. 现有a.jsp、b.jsp、c.jsp三个页面,如果运行a.jsp页面在“输入学生姓名:”输入框内输入Rose,点击查询按钮以后页面会显示什么内容()。

    输入学生姓名是:null

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    a.jsp
    <%@ page language="java" import="java.util.*" contentType="text/html; charset=gb2312" %>
    <html>
    <body>
    <form action="b.jsp">
    输入学生姓名:<input type="text" name="stuname">
    <input type="submit" value="查询">
    </form>
    </body>

    </html>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    b.jsp
    <%@ page language="java" import="java.util.*" contentType="text/html; charset=gb2312" %>
    <html>

    <body>
    <% response.sendRedirect("c.jsp"); %>
    </body>

    </html>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    c.jsp
    <%@ page language="java" import="java.util.*" contentType="text/html; charset=gb2312" %>
    <html>

    <body>
    <% out.println("输入学生姓名是:"+request.getParameter("stuname")+"<br>");
    %>
    </body>

    </html>
  6. 如果想让else程序段内容成功跳转到b.jsp页面,请补全代码()。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <%

    String name=request.getParameter("userName");

    String password=request.getParameter("pwd");

    if("zhangsan".equals(name)&&"123".equals(password)){

    out.print("成功登陆,3秒钟后进入loginSuccess.jsp页面");

    response.setHeader("refresh", "3;url=a.jsp");

    return;

    }else{

    }
    -----------------

    %>

    %><jsp:forward page="b.jsp"/><%

  7. 现有cookie相关部分代码如下,请问当前cookie的有效时间为()。

    关闭浏览器时失效

    1
    2
    3
    4
    5
    6
    7
    8
    <%   String str="12" ; int number=Integer.parseInt(str); %>

    该数字的平方为:<%=number*number %>
    <HR>

    <% Cookie cookie=new Cookie("number",str); cookie.setMaxAge(-10); response.addCookie(cookie); %>

    <a href="b.jsp">到达p2</a>

    cookie.setMaxAge(int time) 设置存活时间
    time正整数,表示存活的秒数
    time负数,代表临时cookie,浏览器关闭时失效
    time 0 ,表示通知浏览器删除相应的cookie对象

第八章 JSP内置对象(2)

  1. 下列关于session的说法错误的是()。
    • A. session能够跨页保持。
    • B. session负责保存同一个客户端一次会话过程中的一些信息。
    • C. 在访问网站时,服务器端自动分配一个session对象给用户使用。
    • D. 对于同一个用户,当网站的页面改变时,用户使用的session也会改变。 ❌
  2. 通过session.setAttribute(String name,Object obj)方法可以将内容保存在session中。
  3. session.setAttribute(String name,Object obj)中的第2个参数可以是自定义类型。
  4. 下列关于sessionId的说法错误的是()。
    • A. 的第一次访问时,服务器端都有一个session分配了一个sessionId。
    • B. 对于每一个session,服务器端都有一个sessionId来标识它。
    • C. 在客户端访问下一个页面时,不会将sessionId传递给服务端。 ❌
    • D. 对于不同的客户来说,每个人的session是不同的。
  5. 显示某个页面被访问的次数可以用application对象
  6. excepiton对象对应的类是 java.lang.Excepiton
  7. pageContext 对象提供了对JSP页面中所有对象及命名空间的访问。
  8. 在服务器启动后就会自动创建application对象,这个对象会一直保存,直到服务器关闭为止。
  9. session对应的类是 javax.servlet.http.HttpSession
  10. 将session中的内容全部移除的方法是void session.invalidate()
  11. 对于每一个session,服务器端都有一个sessionId来标识它
  12. 获得当前session在服务器端的ID的方法是String session.getId();
  13. 对于一个Web容器而言,所有的用户共同使用一个session对象。❌
  14. application对应的类是javax.servlet.ServletContext
  15. config对象是在一个JSP程序初始化时JSP引擎向它传递消息用的。
  16. page对象指向当前JSP程序本身

  1. 在JSP中保存用户会话信息使用( session )对象。

  2. 如果选择一个对象保存聊天室信息,则选择( application )。

  3. 哪个方法是保存session中关键字是key的对象

    1
    public void setAttibute(String key,Object obj)
  4. 现有以下部分代码段,主要功能可以实现将物品添加到购物车,请补全代码。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form action="order.jsp" method="post">

    三国演义<input name="goods" type="hidden" value="三国演义"> <input type="submit" value="添加到购物车">

    </form>

    <% ArrayList good=(ArrayList) session.    ①
    if(good==null){ good=new ArrayList(); session.    ②
    }else{ String
    goods=request.    ③
    if(godd!=null){ goods=new String(goods.getBytes("ISO-8859-1"),"gb2312");
    good.add(  ④  ); } } %>

    ① getAttribute(“good”); //读取购物车

    ② setAttribute(“good”,good) //存入购物车,session对象

    ③ getParameter(“good”) //获取表单里文本框属性名

    ④ goods //将goods的值存入good对象

  5. 通过相关方法输出session对象的生存期限第一次访问当前web服务的参数如图所示,如果现在经过20秒第二次访问此页面,下面哪些参数会发生变化()。

    超过发呆时间,第二次访问页面,session的创建时间、ID、上一次请求时间都会发生变化

  6. 使用pageContext内置对象可以操作当前JSP页面的所有其他内置对象,现有如下代码段,请问页面最后输出的结果()。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <%   application.setAttribute("applicationKey", "applicationKey" );
    String applicationValue=(String)pageContext.getAttribute("applicationKey",4);
    session.setAttribute("sessionKey", "sessionKey" ); String
    sessionValue=(String)pageContext.getAttribute("sessionKey",3); request.setAttribute("requestKey", "requestKey" );
    String requestValue=(String)pageContext.getAttribute("requestKey",2); pageContext.setAttribute("pageKey", "pageKey"
    );
    String pageValue=(String)pageContext.getAttribute("pageKey",1);
    pageContext.removeAttribute("requestKey",2);
    pageContext.removeAttribute("applicationKey",4);
    pageContext.setAttribute("applicationKey","Java Web",4); %>

    页面域的范围scope:<%=pageContext.getAttributesScope("pageKey")%><br>

    请求域的范围scope:<%=pageContext.getAttributesScope("requestKey")%><br>

    会话域的范围scope:<%=pageContext.getAttributesScope("sessionKey")%><br>

    应用域的范围scope:<%=pageContext.getAttributesScope("applicationKey")%><br>

    选项D:
    pageContext.removeAttribute(“requestKey“;,2);
    //从scope范围2移除关键字 requestKey的属性对象,最终打印scope值为0。

    pageContext.removeAttribute(“applicationKey“;,4);
    //从scope范围4移除关键字为applicationKey的属性对象。

    pageContext.setAttribute(“applicationKey”,”Java Web”,4);
    //以K/V对的方式存储scope范围域4属性对象值”Java Web”,最终打印scope值为4.

    页面域的范围scope:1

    请求域的范围scope:0

    会话域的范围scope:3

    应用域的范围scope:4

  7. 现在分别用页面域、会话域和应用域制作访问统计,现在用IE浏览器访问页面结果如图所示。请问现在用Chrome浏览器访问此页面后显示结果为()

    页面域访问统计:1

    会话域访问统计:1

    应用域访问统计:13

        页面域(page scope),它的生命周期是指页面执行期间。存储在页面域的对象只能在它所在页面被访问,作用范围当前页面。相同或不同浏览器(用户)的计数变量不能共享,没有计数功能。
        会话域(session scope),它的生命周期是指某个客户端与服务器所连接的时间。客户端在第1次访问服务器时创建会话,在会话过期或用户主动退出后,会话结束。存储在会话域中的对象在整个会话期间(可以包含多次请求)都可以被访问。不同浏览器(用户)的计数变量不能共享,只能计数同一浏览器(用户)的访问统计。 
        应用域(application scope),它的生命周期是指从服务器开始执行服务到服务器关闭为止。存储在应用域中的对象在整个应用程序运行期间可以被所有JSP和Servlet共享访问。可以计数所有访问本页面的浏览器(用户)数。
    

第九章 Servlet编程

1-5:DACBB 6-10:CCADA

  1. 在Java Web中,Servlet程序需要在 web.xml 文件中配置。

  2. 在部署带有Servlet的Java Web程序时,()不是必需的。

    • A. csses文件夹 ✅
    • B. WEB-INF文件夹
    • C. web.xml文件
    • D. classes文件夹
  3. 完整配置Servlet需要的标签 <servlet></servlet><servlet-mapping></servlet-mapping>

  4. 如果是整个应用程序共享的数据,则适合放在ServletContext 中成为属性。

  5. HttpServlet定义在javax.servlet.http之中。

  6. 在web.xml中预先对Servlet进行初始化设置的代码如下:

    1
    2
    3
    4
    <int-param>
    <param-name>myWord</param-name>
    <param-value>hello</param-value>
    </init-param>

    获取初始化参数String myWord=getInitParameter(“myWord”);

  7. 在Servlet中,HttpServletResponser ()方法用来把一个HTTP请求重定向到另外的URL。

    • A. redirectResponse()
    • B. sendURL()
    • C. sendRedirect()
    • D. redirectURL()
  8. 给定一个Servlet的代码片段如下:

    1
    2
    3
    4
    Public void doGet(HttpServletRequest request,HttpServletResponse response) throw ServletException,IOException{
    out.println(“hi kitty!”);
    out.close();
    }

    运行该Servlet时输出“hi kitty!“,则应在此Servlet的两眼一下画线处填入的代码是()

    • A. PrintWriter out=response.getWriter();
    • B. OutputStream out=request.getOutputStream();
    • C. PrintWriter out=request.getWriter();
    • D. OutputStream out=response.getOutputStream();
  9. 给定一个Servlet程序的代码片段如下:

    1
    2
    3
    Public void doPost(HttpServletRequest request,HttpServletResponse response) throw ServletException,IOException{
    Request.getSession().getAttribute(“A”); //第2行
    }

    假定第2行返回的对象引用不是null,那么这个对象存储在()范围中。

    • A. page
    • B. application
    • C. request
    • D. session
  10. 在web.xml中定义了以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    <servlet>
    <servlet-name>Goodbye</servlet-name>
    <servlet-class>cc.openhome.LogutServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>GoodBye</servlet-mapping>
    <url-pattern>/goodbye</url-pattern>
    </servlet-mapping>

    下列可以正确访问该Servlet URL的是()。

    • A. /goodBye
    • B. /goodbye.servlet
    • C. /LoguotServlet
    • D. /Goodbye

1-5:AAAAB 6-10:BBBA

  1. Servlet是一种运行在服务器端和客户端的Java应用程序,可以生成动态的Web页面,它属于客户和服务器响应的中间层。
    • A. ×
    • B. √
  2. Servlet中的两个处理请求的方法是doGet()、doPost()。
    • A. √
    • B. ×
  3. Servlet为每一个HttpSession对象分配的唯一标识符是SessionID。
    • A. √
    • B. ×
  4. 在Servlet程序中Servlet对象消亡时调用的方法是close()。
    • A. ×
    • B. √
  5. 在Servlet中主要HttpServletResponse类的重定向方法forward()实现重定向,使用RequestDispatcher类的转发方法sendRedirect()实现转发功能。
    • A. √
    • B. ×
  6. web、xml文件中的两种类型的参数为全局参数、局部参数。
    • A. ×
    • B. √
  7. Filter接口中最主要的方法是doFilter()。
    • A. ×
    • B. √
  8. 实现Filter接口的类需要重写init()方法、close()方法、doFilter()方法。
    • A. √
    • B. ×
  9. 过滤器的doFilter()函数在Servlet之后被调用。
    • A. ×
    • B. √

  1. 某个文件名为SecondServlet.java的servlet文件,在服务器部署映射,以下哪个url-pattern能够成功()。

    <url-pattern>/5.1</url-pattern>

    servlet的url-pattern映射规则要以/开头,/*.java 属于扩展映射,/和扩展映射同时使用会出现语法错误; /5.1属于精确路径映射,可以部署成功。

  2. 下列Servlet方法中,()方法在Servlet生命周期中,Servlet每请求一次它就会被调用一次。

    service()

    init() 载入时被执行,且只执行一次,对servlet进行初始化
    service() 请求服务,请求一次执行一次
    destroy() 服务器关闭时被调用,且只执行一次,用来释放servlet所占资源
    close()不属于servlet 生命周期方法

  3. 关于servlet使用JSP内置对象,现有部分代码如下,请问在客户端页面会显示什么内容()。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    protected void doPost(HttpServletRequest request,

    HttpServletResponse response) throws ServletException, IOException {

    response.setContentType("text/html;charset=gb2312");

    request.setCharacterEncoding("gb2312");

    out.println("五一");

    System.out.println("劳动节");

    response.getWriter().println(“快乐!”);

    }

    会编译错误

    out.println(“五一“);
    //out对象在servlet里使用需要先声明PrintWriter out = response.getWriter();否则会出现编译错误。

    System.out.println(“劳动节“);
    //在JSP和servlet都可以输出到客户端的控制台,不能输出到客户端页面。

    response.getWriter().println(“快乐!”);
    //在JSP和servlet都可以输出到客户端页面。

  4. 现有a.jsp、B.java和C.java文件,B.java文件获取客户端a.jsp的表单传值,并将获取到的值传递到C.java后正确显示在客户端页面,请补全代码()。

    b.java部分代码段如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    protected void doPost(HttpServletRequest request,

    HttpServletResponse response) throws ServletException, IOException {

    request.setCharacterEncoding("gb2312");

    String b = request.getParameter("a");

    if (b.length() > 0) {

    ① request.getRequestDispatch("C).forward(request,response);

    }

    }

    request.getRequestDispatcher(“C”).forward(request, response);
    //转发,通过forward方法把当前页面的request对象里的数据转发到C页面,getRequestDispatcher(“C”)。

    response.sendRedirect(“C”);
    //重定向,无法从以前的request对象中获取用户提交的数据。

    response.encodeRedirectURL(“C”);
    //URL重写,数据有丢失无法获取。

    forward(request, response);
    //语法错误。

  5. 在web服务器test目录下有一客户端a.jsp文件,代码如下所示。在B.java文件设置字符过滤器,下面注解方式能使程序正常运行并解决中文乱码的为()。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <%@ page language="java" contentType="text/html; charset=gb2312"%>

    <form action="B" method="post">

    请输入学生信息的模糊资料:

    <input type="text" name="stuname"><br>

    <input type="submit" value="查询">

    </form>
    1
    2
    3
    @WebFilter(filterName = "setCharacterEncodingFilter"
    ,urlPatterns = { "/test/a.jsp"},
    initParams = {@WebInitParam(name = "encoding", value = "GBK")})

    urlPatterns = { “/test/a.jsp” ; }
    //精确匹配拦截服务器下test目录的a.jsp客户端请求。

    value = “GBK”;
    与客户端charset=gb2312编码兼容。

  6. 现在为Web服务器设置监听session中某个对象状态变化,下面能实现将session对象持久化到存储设备上的方法为()。

    1
    sessionWillPassivate(HttpSessionEvent se)

    HttpSession中对象的状态有:绑定→解除绑定,钝化→活化。

    valueBound(HttpSessionBindingEvent event)
    //绑定,当对象被放到session里时,执行此方法。

    valueUnbound(HttpSessionBindingEvent event)
    //解除绑定,当对象被从session里移除时,执行此方法。

    sessionWillPassivate(HttpSessionEvent se)
    //钝化,当session里的对象被钝化时,执行此方法。

    sessionDidActivate(HttpSessionEvent se)
    //活化,当对象被重新加载(活化)时,执行此方法。

第十章 JSP和JavaBean

1-5:ABABB 6-10:AABBD

  1. 下列关于JavaBean的说法正确的是()。
    • A. Java文件与Bean定义的类名可以不同,但是要区分字母大小写。
    • B. 在JSP文件中引用Bean其实就是用jsp:useBean语句。
    • C. 被引用的Bean文件的扩展名为.jsp。
    • D. Bean文件放在任何目录下都可以被引用。
  2. JavaBean的属性必须声明为private,方法必须声明为()访问类型。
    • A. private
    • B. public t
    • C. protec
    • D. static
  3. JavaBean可以通过相关jsp动作指令进行调用。下面()不是JavaBean可以使用的jsp动作指令。
  4. JSP页面通过()识别Bean对象,可以在程序段中通过xx.method形式调用Bean中的set和get方法。
    • A. class
    • B. id
    • C. name
    • D. classname
  5. ()作用范围将使Bean对象保存在服务器的内存空间中,在服务器关闭后被移除。
    • A. request
    • B. application
    • C. session
    • D. page
  6. 对于()作用范围的Bean,当客户离开这个页面时JSP引擎取消为客户的该页面分配的Bean,释放他所占的内存空间。
    • A. page
    • B. request
    • C. application
    • D. session
  7. 关于JavaBean,下列叙述中不正确的是()。
    • A. JavaBean和Servlet一样,在使用之前必须在项目的web.xml中注册。
    • B. JavaBean的类必须是具体的和公共的,并且具有无参数的构造器。
    • C. JavaBean属性和表单控件名称能很好地耦合,得到表单提交的参数。
    • **D.**JavaBean的类属性是私有的,要通过公共方法进行访问。
  8. 使用jsp:getProperty动作标记可以在JSP页面中得到Bean实例的属性值,并将其转换为()类型的数据发送到客户端。
    • A. Classes
    • B. String
    • C. Object
    • D. Double
  9. 在项目中已经建立了一个JavaBean,其类为bean.Student,该Bean具有name属性,则下面标签用法正确的是()。
    • A. <jsp:useBean id=”student” class=”Student” scope=”session”/>
    • B. <jsp:useBean id=”student” class=”bean.student” scope=”session”>
    • C. <jsp:useBean id=”student” class=”Student” scope=”session”>
    • D. <jsp:getProperty name=”name” property=”student”/>
  10. 给定TheBean类,假设还没有创建TheBean类的实例,以下()JSP标准动作语句能创建这个Bean的一个新实例,并把它存储在请求作用域。
    • A. <jsp:takeBean id=”myBean” type=”com.example.TheBean”/>
    • B. <jsp:takeBean id=”myBean” class=”com.example.TheBean” scope=”request”/>
    • C. <jsp:useBean id=”myBean” type=”com.example.TheBean”/>
    • D. <jsp:useBean id=”myBean” class=”com.example.TheBean” scope=”request”/>

1-5:AABBB 6-10:ABAAA

  1. 在JavaBean中可以将控制逻辑、值、数据库访问和其他对象进行封装,并且可以被其他应用调用。
    • A. √
    • B. ×
  2. avaBean支持两种组件,即可视化组件、非可视化组件。
    • A. √
    • B. ×
  3. 在JSP中可以使用jsp:setProperty方法来设置JavaBean的属性,也可以使用 jsp:getProperty方法来获取JavaBean的值。
    • A. ×
    • B. √
  4. JavaBean规定成员变量的读/写通过setter()方法和getter()方法进行。
    • A. √
    • B. ×
  5. 给Boolean类型设置属性使用is方法。
    • A. ×
    • B. √
  6. JavaBean有4个scope,它们分别是application、page、session、request。
    • A. √
    • B. ×
  7. 当scope=application时,JavaBean对象可以被同一用户的所有页面认识。
    • A. √
    • B. ×
  8. 当scope=request时,JavaBean对象可以在通过forward方法跳转的目标页面中被认识。
    • A. √
    • B. ×
  9. DAO的全称是Data Access Object,它专门负责对数据库的访问。
    • A. √
    • B. ×
  10. 获取JavaBean的属性的两种方法是使用JSP表达式或程序段、使用“jsp:getProperty”动作。
    • A. √
    • B. ×

  1. 以下代码定义了一个JavaBean类Student.java,请问哪些行没有遵循有关约定()。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    1     package bean;

    2     private class Student { ❌

    3            private String stuname;

    4            public String getstuname() { ❌

    5                   return stuname;}

    6            public void setterStuname(String stuname) { ❌

    7                   this.stuname = stuname;}}

    1.JavaBean应该是public类,且具有无参数的public构造方法。也可以定义带参数构造方法。
    2.类的成员变量一般称为属性(property),对每个属性访问权限一般定义为private,属性名必须以小写字母开头。
    3.每个属性通常定义两个public方法,一个是访问方法(getter),一个是修改方法(setter),使用它们访问和修改JavaBeans的属性值,对应的变量首字母必须大写。

    第2行:public class Student{//应该是public类。 第4行:public String getStuname(){//访问方法getter对应的变量首字母必须大写。 第6行:public void setStuname(String stuname){//修改方法setter,应该是setStuname(String stuname)。

  2. 如果已经在包bean里正确定义了一个JavaBean类Rose.java,通过以下JSP代码能不能正确访问bean,如果不能以下哪项修改是正确的()。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    1     <%@ page language="java" contentType="text/html; charset=gb2312"%>

    2     <jsp:useBean id="rose" type="bean.Rose" scope="session"/>

    3     <p>矩形的长是:<%=rose.getLength()%>

    4     <p>矩形的宽是:<%=rose.getWidth()%>

    5     <p>矩形的面积是:<%=rose.computerArea()%>

    6     <p>矩形的周长是:<%=rose.computerLength()%>

    type属性必须保证bean实例存在,如果找到用rose指向它,如果找不到产生Instantiation异常,beanName=”bean.Rose”;可以动态实例化。 第2行加入动作标记useBean属性beanName即可:。

    不能访问bean,应该在第2行加入动作标记useBean属性;beanName = "bean.Rose"

  3. 下面语句与<jsp:getProperty name=”tom” property=”jerry”/>等价的是()

    <%out.print(tom.getJerry());%>

  4. 关于jsp:setPropertyjsp:getProperty标记的描述以下正确的是()。

    这两个标记的name属性值必须与<jsp:useBean>标记的id属性值相对应

  5. student.jsp文件代码如下,要使student一直存在于会话中,直到终止或被删除为止,请补全代码()。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <%@ page language="java" contentType="text/html; charset=gb2312" %>

    <jsp:useBean id="student" class="bean.Student" scope="  ___session______ " />

    <jsp:setProperty property="stuname" name="student" value="rose" />

    <html>

    <body>

    学生姓名:
    <jsp:getProperty name="student" property="stuname" />

    </body>

    </html>

    page页面域,request请求域,session会话域,application应用域。

第十二章 AJAX入门

1-5:DCDDB 6-10:CBCCB

  1. AJAX的英文全称是()。
    • A. Asp+JavaScript+XML
    • B. Asynchronous+Java+XML
    • C. Asynchronous+JavaScript+XHTML
    • D. Asynchronous+JavaScript+XML
  2. 下面关于AJAX的描述错误的是()。
    • A. AJAX使用XHTML和CSS基于的标准表示技术。
    • B. AJAX使用XML和XSLT进行数据互换和操作。
    • C. AJAX是一个新技术。
    • D. AJAX使用XMLHttpRequest获取数据。
  3. AJAX模式中,客户端的请求是()完成的。
    • A. 单向
    • B. 并发
    • C. 同步
    • D. 异步
  4. 以下关于AJAX优势和劣势的描述,说法错误的是()。
    • A. 应用仅由少量页面组成,大部分交互在页面之内完成,不需要切换整个页面。
    • B. 按需获取数据,每次只从服务器端获取需要的数据。
    • C. 改善表单验证方式,不再需要打开新页面,也不再需要整个页面数据提交。
    • D. AJAX可以取代传统的Web应用开发。
  5. 使用AJAX技术编写Web应用程序,其使用()格式实现数据的传递。
    • A. HTML
    • B. XML
    • C. XHTML
    • D. TXT
  6. XMLHttpRequest对象的readyState属性值为(),代表请求成功接收数据完毕。
    • A. 3
    • B. 1
    • C. 4
    • D. 2
  7. 在创建请求的代码片段xmlhttp.open(“get”,”info.jsp?a=1)中,传递的参数值为()。
    • A. a
    • B. 1
    • C. info.jsp
    • D. get
  8. onreadystatechange事件在()选项中发生变化时触发。
    • A. onchange
    • B. readystatus
    • C. readyState
    • D. onfocus
  9. 在Firefox浏览器上创建XMLHttpRequest对象的方法是()。
    • A. var xmlHttp=new ActiveXObject(“Msxml2.XMLHTTP”);
    • B. var xmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”);
    • C. var xmlHttp=new XMLHttpRequest();
    • D. 以上都不对。
  10. Java是整个AJAX的核心部分,它使开发人员能够运用编程语言来控制浏览器端的行为。
    • A. √
    • B. ×
  11. AJAX技术包括异步数据获取技术、基于标准的表示技术、动态显示和交互技术、数据互换和操作技术、Java。
    • A. ×
  12. AJAX中open()方法的参数的含义分别是请求方式、请求目标、异步或同步。
    • A. √
  13. AJAX中open()方法的第3个参数为false,表示异步请求。
    • B. ×
  14. readyState属性的状态有0:未初始化状态;1:已初始化状态;2:发送数据状态;3:数据传送中状态;4:完成状态.
    • B. √
  15. 当xmlHttp状态改变时需要进行的处理一般以响应函数形式进行。
    • A. √
  16. xmlHttp除了有responseText属性外,还有一个属性innerText,含义是表示在该div内显示内容时,不考虑其HTML格式的标签,即:将内容原样显示。
    • A. ×
  17. 当xmlHttp.open()函数中的请求方式为put时,send()函数可以没有参数。
    • A. ×
  18. 用来监听readState的方法是onreadystatechange()
    • B. √

  1. 关于AJAX技术相关特点,描述正确的是()。

    可以促进页面呈现和数据本身分离

    减轻服务器负担,避免整个浏览器窗口刷新时造成的重复请求。
    对浏览器具有一定的限制,对于不兼容的浏览器,可能无法使用。
    AJAX没有刷新页面,浏览器上的“后退”按钮是失效的,不能退回。

  2. 现有以下部分JS代码段,用户使用IE5浏览器能否实现异步免刷新网页,如果不能应该如何修改()。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    1    <SCRIPT LANGUAGE="JavaScript">
    2 function showInfo(){
    3 var xmlHttp=new XMLHttpRequest();
    4 xmlHttp.open("POST", "a.jsp", true);
    5 xmlHttp.onreadystatechange=function() {
    6 if (xmlHttp.readyState==4) {
    7 infoDiv.innerHTML = xmlHttp.responseText;
    8 }
    9 }
    10 xmlHttp.send();
    11 }
    12 </SCRIPT>

    不能实现异步免刷新网页,第三行改为

    1
    var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")

    所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均支持XMLHttpRequest 对象var xmlHttp=new XMLHttpRequest();
    老版本的Internet Explorer(IE5 和 IE6)使用ActiveXObject对象, var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")

  3. 部分分析HTTP请求和响应的服务器状态JS代码如下,当处于初始化状态时在客户端页面上打印的readyState属性值为()。

    不会有打印数据

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <SCRIPT LANGUAGE="JavaScript">

    var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

    function showInfo() {

    xmlHttp.open("GET", "c.jsp", true);

    xmlHttp.onreadystatechange = showState;

    xmlHttp.send();

    }

    function showState() {

    document.writeln(xmlHttp.readyState);

    }

    </SCRIPT>

    服务器在初始化状态时还没有和客户端建立连接,无法收到客户端Http请求,所以不会执行showState函数,不会有打印数据在客户端页面。

  4. 使用AJAX技术跳转到a.jsp页面部分代码段如下,服务器响应返回客户端的代码为infoDiv.innerText = xmlHttp.responseText;请问最后客户端页面输出内容为()。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    a.jsp

    <table>

    <tr>

    <th>地址:<br>成都理工大学</th>

    </tr>

    </table>

    输出内容为

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <table>

    <tr>

    <th>地址:<br>成都理工大学</th>

    </tr>

    </table>

    infoDiv.innerText属性,表示在该div内显示内容时,不考虑其中的HTML格式的标签,所有标签都不会解释并原样输出。

  5. 部分JSON代码如下,请问在客户端弹出窗口输出的内容依次为()。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    function opJSON(){

    var stu = {

    "sno":"20190101",

    "sname":"Tom",

    "hobby":["篮球","足球",”排球”],

    "college":{

    "cname":"成都理工大学",

    "city":"成都"

    }

    };

    alert(stu.sname);

    alert(stu.hobby[3]);

    alert(stu.college.city);

    }

    输出:Tomundefined成都

    数组从0开始,hobby[3]是没有的,因为篮球足球排球是012

评论