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

第一章

  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源文件到客户端

第二章

  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属性值不一样,说明他们分别是两组单选按钮,所以会被全部选中


第三章

  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()可以在页面显示内容


第四章

  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. 现有文件名为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编码,需要在客户提交页面转码交给服务器


第六章

  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()


第七章

  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对象


第八章

  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共享访问。可以计数所有访问本页面的浏览器(用户)数。
    

第九章

  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)
    //活化,当对象被重新加载(活化)时,执行此方法。


第十章

  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应用域。


第十二章

  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

实验

第十章

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
package Bean;//库为Bean
//题目:编写一个JavaBean“Book.java”
// 它含有属性bookid(String)、bookname(String)、bookprice(double),
// 并编写getter、setter参数。

//解析如下:
//javabean中不仅要定义成员变量,还有对每一个成员变量定义一个getter方法和setter方法。
//成员变量必须是private的,getter和setter函数必须是public的
//getter和setter方法读/写变量的值,对应变量的首字母必须大写,如下列函数名:
// setBookid()/getBookid()、 setBookname()/getBookname()、setBookprice()/getBookprice()

public class Book {
private String bookid ;
private String bookname;
private Double bookprice;
//javabean中,成员变量必须是private的,getter和setter函数必须是public的

//下面两个是变量bookid的setter和getter函数。
public void setBookid(String bookid){
this.bookid=bookid;//设置bookid的值
return;
}
public String getBookid(){
return bookid;
}//获取bookid的值

//下面两个是变量bookname的setter和getter函数。
public void setBookname(String bookname){
this.bookname=bookname;//设置bookname的值
return;
}
public String getBookname(){ return bookname; }//获取bookname的值

//下面两个是变量bookprice的setter和getter函数。
public void setBookprice(Double bookprice){
this.bookprice=bookprice;//设置bookprice的值
return ;
}
public Double getBookprice(){
return bookprice;
}//获取bookprice的值

}
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
46
47
48
49
50
51
52
package Bean;
//2:编写一个JavaBean"Customer.java",
// 它含有属性account(String)、password(String)、cname(String),
// 给这个JavaBean增加属性member(boolean类型,表示是否为会员),并编写相应函数,即setter/getter函数。

//解析如下:
//javabean中不仅要定义成员变量,还有对每一个成员变量定义一个getter方法和setter方法。
//成员变量必须是private的,getter和setter函数必须是public的
//getter和setter方法读/写变量的值,对应变量的首字母必须大写,如下列函数名:
// setAccount()/getAccount()、 setPassword()/getPassword()、setCname()/getCname()
//对于特殊的布尔型的成员变量member,需要把getter方法的函数设置为以is开头的,本例中设置为isMember().

public class Customer {
private String account;
private String password;
private String cname;
private boolean member;

//下面两个是变量account的setter和getter函数。
public void setAccount(String account){
this.account=account;
return;
}
public String getAccount(){
return account;
}

//下面两个是变量password的setter和getter函数。
public void setPassword(String password){
this.password=password;return;
}
public String getPassword(){
return password;
}

//下面两个是变量cname的setter和getter函数。
public void setCname(String cname){
this.cname=cname;return;
}
public String getCname(){
return cname;
}

//下面两个是变量member的setter和getter函数。
public boolean isMember(){
return member;
}
public void setMember(boolean member){
this.member=member;
}

}

评论