javaweb习题集「建议收藏」

javaweb习题集「建议收藏」javaweb习题集第一、二章第三、四章第五、六章第一、二章1.下列关于静态网页和动态网页说法错误的是CA、动态网页的内容一般是从数据库里面读取出来的B、动态网页的内容的显示是通过程序来实现的C

第一、二章

1.下列关于静态网页和动态网页说法错误的是C

A、动态网页的内容一般是从数据库里面读取出来的

B、动态网页的内容的显示是通过程序来实现的

C、动态网页上可以显示动态元素比如:动画,视频等,而静态网页无法显示动态元素

解析:动态网页,与网页上的各种动画、滚动字幕等视觉上的动态效果没有直接关系,动态网页也可以是纯文字内容的,也可以是包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,只要是采用了动态网站技术生成的网页都可以称为动态网页。

网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页的内容都是保存在网站服务器上的,也就是说,静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件。

在网站设计中,纯粹HTML(标准通用标记语言下的一个应用)格式的网页通常被称为“静态网页”,静态网页是

标准的HTML文件,它的文件扩展名是.htm、.html,可以包含文本、图像、声音、FLASH动画、客户端脚本和ActiveX

控件及JAVA小程序等。静态网页是网站建设的基础,早期的网站一般都是由静态网页制作的。

    静态网页是相对于动态网页而言,是指没有后台数据库、不含程序和不可交互的网页。静态网页相对更新起来比

较麻烦,适用于一般更新较少的展示型网站。容易误解的是静态页面都是htm这类页面,实际上静态也不是完全静

态,他也可以出现各种动态的效果,如GIF格式的动画、FLASH、滚动字幕等。

静态动态网页博客:https://blog.csdn.net/erlian1992/article/details/51868799

2.在HTML的图片标记中,哪个属性用于指定图片的来源(地址)?B

A、alt

B、src

C、width

D、border

解析:

<img src="WenContent/images/java.png" width="300" alt="加载不成功!" title="图片">

3.在以下几种关于HTML表格标记的描述中,哪一种描述是错误的?D

A<table>...</table>用于定义整个表格

B、<tr>...</tr>用于定义表格行

C、<td>...</td>用于定义单元格

D、为了使表格边框不可见,应该在<table>标记中将border属性的设置为”1”

E、表格标记可以实现以表格形式显示数据,也可以用于实现页面元素的布局

解析:不显示边框,直接把边框border的值设为0就可以,表格的默认格式是双线,如果需要单线表格,一般还会设置cellpadding和cellspacing的值都为0。

4.以下哪一项是JavaScript代码段的运行结果?B

var a = null;

var b;

var c = “Hello”;

alert(a + ” ” + b + ” ” + c);

A、0 undefined Hello

B、null undefined Hello

C、null Hello

D、undefined Hello

解析:a的值是null,b没有传值则会输出undefined,c是字符串“Hello”,

5.下面哪一个不是文本的标签属性?A

A、& nbsp;
B、align

C、color

D、face

解析;A是表示空格,Balign的属性值有left、right、center、justify、char;align属性规定单元格中内容的水平对齐方式,其语法是“<td align="value">”。C:color 属性用于指定文本颜色。D:规定文本的字体:
<font face="verdana">This is some text!</font>

6.在HTML页面中制作一个图像,想要在鼠标指向这个图像时浮出一条提示信息,应该使用的参数是:C

A、POP

B、SRC

C、TITLE

D、MSG

解析:<img src="图片路径" title="提示信息文字" />

7.下列语言哪个属于WEB服务器脚本技术?D

A、HTML

B、CSS

C、JavaScript

D、JSP

解析:CGIASPJSPPHP

8.在HTML中,要想让网页中的文字实现换行,必须使用下列标记中的哪一个?C

A、<p>

B、<ul>

C、<br>

D、<a>

解析:

<span style="color: red">段落、标题、横线、标题、横线、标题 <br>

9.QQ属于哪种软件架构?B

A、B/S架构

B、C/S架构

解析:B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Chrome、Safari、Microsoft Edge、Netscape Navigator或Internet Explorer9),服务器安装SQL Serverm、Oraclea、MYSQL等数据库。浏览器通过Web Server同数据库进行数据交互。

服务器-客户机,即Client-ServerC/S结构。C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。

需要下载客户端

10.下列HTML标签中属于非对称标签的是A

A、<img>

B、<li>

C、<p>

D、<head>

解析:

<li>第一章</li>
<p>1.HTML结构</p>;
<head>
    <meta charset="UTF-8">
    <title>知识点</title>
</head>
<img src="WenContent/images/java.png" width="300" alt="加载不成功!" title="图片">

11.下列代码中能够以“1949年10月1日”的格式输出当前日期的是**____**D

A、

var d = new Date();

document.write(d.getFullYear() + “年” + d.getMonth() + “月” + d.getDate() + “日”);

B、

var d = new Date();

document.write(d.getFullYear() + “年” + d.getMonth() + 1 + “月” + d.getDay() + “日”);

C、

var d = new Date();

document.write(d.getFullYear() + “年” + (d.getMonth() + 1) + “月” + d.getDay() + “日”);

D、

var d = new Date();

document.write(d.getFullYear() + “年” + (d.getMonth() + 1) + “月” + d.getDate() + “日”);

解析:getMonth():获取当前月(注意:返回数值为0~11,需要自己+1来显示)

12.JavaScript中的变量是强类型还是弱类型?B

A、强类型。在声明变量时,必须指定变量的类型。

B、弱类型。在声明变量时,不需要指定变量的类型,而变量的类型将根据变量的值来确定。

13.___属性相同的多个单选按钮只能被选中一项。B

A、id

B、name

C、value

D、class

解析:

  性别:<input type="radio" value="男" name="sex">男<input type="radio" value="女" name="sex">女<br>

14.表单的**____**属性用于定义提交数据的方法。B

A、action

B、method

C、name

D、target

解析:

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

post数据不可见,get数据可见在url中

15.Javascript表达式 1 + 2 + “3” + 4 + 5 的运算结果是**__**。C

A、12345

B、339

C、3345

D、语法错误

解析:1+2的值是3,“3”+4+5=拼接的意思,所以拼接45

16.可以通过<script>...</script>标记来包含一个外部JavaScript文件。这里的外部JavaScript文件的扩展名必须是:D

A、.html

B、.java

C、.jsp

D、.js

17.在DOM(文档对象模型)中,根对象是**A__**__。

A、document

B、location

C、navigator

D、window

解析:Document类型表示整个文档,是一组分层节点的根节点。在JavaScript中, document 对象是Document 的一个实例。使用document对象,有很多种方式可以查询和取得节点。

18.JavaScript的变量名是否严格区分大小写?A

A、是

B、否

解析:check 与 Check是不一样的

19.为了表示一个文件是HTML文档所使用的标签是A

A、<html>

B、<title>

C、<head>

D、<meta>

20.在以下标题标记中,哪个标记代表的标题级别最高,文字字体最大?A

A、<h1>

B、<h2>

C、<h3>

D、<h4>

E、<h5>

F、<h6>

解析:1-6逐级递减

21.超文本传输协议的简称是**__**_。B

A、HTML

B、HTTP

C、FTP

D、SMTP

22.下列说法正确的是**____**。D

A、HTML的标签必须成对出现,分别表示标签的开始和结束;

B、HTML不区分大小写;

C、HTML文件的后缀必须是”.html”;

D、以上都不对。

解析:html的标签不一定是成对出现,也有单独呈现的标签,即没有闭合标签的标签;它们是在开始标签中就关闭的元素,不存在成对的情况,例如br、hr、img、input、link、meta、param、source等等。
HTML标签不区分大小写,`<h1>`和`<H1>`是一样的,但建议小写,因为大部分程序员都以小写为准。
HTML文件的后缀一般是".html"和“.htm”

23.在以下关于JavaScript的几个说法中,哪个是错误的?C

A、它是一种解释性脚本语言,由客户端的浏览器解释执行

B、它具有解释性、基于对象、事件驱动、安全性、跨平台等特点

C、它是Java语言的一个子集

D、可以使用<script>...</script>标记直接将JavaScript脚本代码嵌入到HTML文档中

解析:js与Java么,没有任何关系

24.使用框架集(frameset)的**__**__属性可以将页面分为左右两个框架。B

A、rows

B、cols

C、framespacing

D、width

解析:

<frameset  cols="40%,60%">
  <frame src="top.html" name="one">
  <frame src="bottom.html" name="two">
</frameset>

cols=“200px,*” //左右分割窗口,左边200像素,

25.___、__和___标签分别用于定义表格、行、单元格。C

A、tbody tr td

B、table row cell

C、table tr td

D、table th td

解析:th标签是表格下的一种标签代表表头,它和标签的区别是:th元素内部的文本通常会呈现为居中的粗体文本,而 td 元素内的文本通常是左对齐的普通文本。

<tr><th>学号</th><th>姓名</th><th>成绩</th></tr>
        <tr><td>1</td><td>张三</td><td>90</td></tr>
        <tr><td>2</td><td>李四</td><td>80</td></tr>
        <tr><td>3</td><td>王五</td><td>70</td></tr>

26.下列哪个选项是在新窗口中打开网页文档B

A、_selt

B、_blank

C、_top

D、_parent

解析:设置target属性值为“_blank”,可以在一个新的窗口中打开链接。

设置target属性值为“_self”,会在相同的框架或者窗口中打开链接。

设置target属性值为“_parent”,会在父窗口或者包含来超链接引用的框架的框架集中打开链接。我们可以看到原来的Frame_B_1也被新打开的链接覆盖了。

设置target属性值为“_top”,会清除所有被包含的框架,并打开链接。

演示例子:

<!DOCTYPE HTML>
<html>
 
<head>
    <meta charset="utf-8">
    <title>This is a title</title>
</head>
 
<frameset cols="25%,75%">
 
    <frame src="###\Frame_A.html" />
    <frame src="###\Frame_B.html" />
 
</frameset>
 
</html>

Frame_A.html:

<!DOCTYPE HTML>
<html>
 
<head>
    <meta charset="utf-8">
</head>
 
<body bgcolor="#8F8FBD">
 
    <hr />
    <h3>Frame A</h3>
    <hr />
 
</body>
 
</html>

Frame_B.html:

<!DOCTYPE HTML>
<html>
 
<head>
    <meta charset="utf-8">
    <title>This is a title</title>
</head>
 
<frameset rows="25%,75%">
 
    <frame src="###\Frame_B_1.html" />
    <frame src="###\Frame_B_2.html" />
 
</frameset>
 
</html>

Frame_B_1:

<!DOCTYPE HTML>
<html>
 
<head>
    <meta charset="utf-8">
</head>
 
<body bgcolor="#7FFF00">
 
    <hr />
    <h3>Frame B1</h3>
    <hr />
 
</body>
 
</html>

Frame_B_2:

<!DOCTYPE HTML>
<html>
 
<head>
    <meta charset="utf-8">
</head>
 
<body bgcolor=#EBC79E">
 
    <hr />
    <h3>Frame B2</h3>
    <hr />
    <br />
 
    <hr />
    <p>
        <a href="###/New_Page.html/" target="<b>_blank</b>">This is a
        link...</a>
    </p>
    <a href="###/New_Page.html" target="_blank">This is a link...</a>
    <hr />
    <br />
 
    <hr />
    <p>
        <a href="###/New_Page.html/" target="<b>_self</b>">This is a
        link...</a>
    </p>
    <a href="###/New_Page.html" target="_self">This is a link...</a>
    <hr />
    <br />
 
    <hr />
    <p>
        <a href="###/New_Page.html/" target="<b>_parent</b>">This is a
        link...</a>
    </p>
    <a href="###/New_Page.html" target="_parent">This is a link...</a>
    <hr />
    <br />
 
    <hr />
    <p>
        <a href="###/New_Page.html/" target="<b>_top</b>">This is a
        link...</a>
    </p>
    <a href="###/New_Page.html" target="_top">This is a link...</a>
    <hr />
 
</body>
 
</html>

New_Page.html:

<!DOCTYPE HTML>
<html>
 
<head>
    <meta charset="utf-8">
</head>
 
<body>
    <h1>This is a new page!</h1>
</body>
 
</html>

在Frame_B_2.html中,有4个连接,都指向同一个网页New_Page.html,他们唯一的不同就是标签中target的属性值不同。

27.在HTML中,如下哪一种表达方式用来表示空格?C

A、& amp;

B、>

C、& nbsp;

D、& quot;

28.若在页面中给图像home.jpg创建超链接,链接到www.baidu.com,正确的是B

A、<a href="www.baidu.com">home.jpg</a>
B、<a href="www.baidu.com"><img src="home.jpg"></a>
C、<img src="home.jpg"><a href="www.baidu.com"></a>
D、<a href="www.baidu.com"><img src="home.jpg">

29.在以下关于HTML的几个说法中,哪个是错误的?C

A、它是一种超文本标记语言,通过嵌入标记来表明文本格式

B、它的全称是Hypertext Markup Language

C、它在服务器端解释执行

D、它由浏览器解释执行

30.文本框的**____**属性用于定义显示宽度。D

A、width

B、maxlength

C、height

D、size

31.在HTML中,使用哪一组标记实现有序列表?C

A、<UL>和<LI>

B、<UL>和<OPTION>

C、<OL>和<LI>

D、<OL>和<OPTION>

解析:

<ol>
            <li>第一章</li>
            <li>第二章</li>
            <li>第三章</li>
        </ol>

32.在页面中看不见的表单元素是哪种?C

A、<input type="password">

B、<input type="radio">

C、<input type="hidden">

D、<input type="check">

33.关于JavaScript中的字符型数据,以下哪种说法是错误的?A

A、字符型数据是必须使用双引号括起来的一个或多个字符

B、字符型数据是使用单引号或双引号括起来的一个或多个字符

C、JavaScript与Java不同,它没有char数据类型,要表示单个字符,必须使用长度为1的字符串。

34.以下关于JavaScript事件及其处理的几种说法,哪些是正确的?ABD

A、JavaScript代码与Web页面之间的交互是通过用户操作浏览器页面时触发相关事件来实现的;

B、事件处理程序是指用来响应某个事件而执行的处理程序;

C、事件处理程序不能是任意的JavaScript语句,而必须使用特定的自定义函数来处理事件;

D、在HTML中分配事件处理程序,只需要在HTML标记中添加相应的事件,并在其中指定要执行的代码或函数名即可;

E、JavaScript没有提供任何事件处理机制,因此无法实现JavaScript代码与Web页面之间的交互。

解析:C

HTML 事件处理程序:将 JS 代码字符串赋值给 HTML 事件属性。

**作用域:**在全局作用域中运行。但能直接拿到事件对象 event,尤其是在表单元素中的应用。

缺点:

  1. 可能存在 HTML 事件被触发,但事件处理程序还未定义的情况。如,上面示例中,若 script 标签定义在页面底部且远远晚于 input 标签,就极可能出现这种情况。此时,应使用 try catch 来规避错误。
  2. 不同浏览器下可能会出现作用域链不同的情况。
  3. HTML 代码与 JS 代码耦合紧密,修改不方便。

E:js可以与web交互

35.对于id为”name”的文本框,判断其输入不为空的正确的JavaScript代码是**__C___D**。

A、if(document.getElementsByName(“name”).value.length == 0)

alert(“输入不能为空!”);

B、if(document.getElementsByName(“name”).value == “”)

alert(“输入不能为空!”);

C、if(document.getElementById(“name”).value.length == 0)

alert(“输入不能为空!”);

D、if(document.getElementById(“name”).value == “”)

alert(“输入不能为空!”);

36.最基本的HTML文档(网页)由以下哪4个标记组成?ABDF

A、<HTML>

B、<HEAD>

C、<FORM>

D、<BODY>

E、<TABLE>

F、<TITLE>

37.下列选项中,符合URL语法的是**__**_。BC

A、www.sohu.com

B、ftp://www.ibm.com

C、http://www.abcd.com/x/y/z?a=b&m=n

D、C://WINDOWS/system32

解析:ftp 通过 FTP访问资源。格式 FTP://

http 通过 HTTP 访问该资源。 格式 HTTP://

https 通过安全的 HTTPS 访问该资源。 格式 HTTPS://

38.在以下几项关于JavaScript函数定义和调用的描述中,哪些是正确的?ABE

A、函数是由关键字function、函数名加一组参数以及置于大括号中的一段代码来定义的;

B、在同一个页面中,函数名必须是唯一的,并且区分大小写;

C、在函数体中必须包含return语句;

D、如果要调用不带参数的函数,直接使用函数名即可,不需要加上括号;

E、使用函数可以提高代码的重用性。

解析:C不是每个函数体都需要返回

D函数都要加括号

39.下面的程序使用html语言的基本标记、表格标记和表单标记,创建了用户注册页面(文件名为register.html),页面显示结果如下图所示。其中的JavaScript函数verify()用于实现:当用户点击提交提交按钮后对用户名和密码进行校验。若校验失败,则进行相应的提示,并让用户重新输入;若校验通过(用户名非空,而且包含两个汉字或更多汉字;密码非空,而且密码长度不少于6位字符),则提示“您的用户名和密码均符合要求!”。请通过填空(共8个空)完成程序。

file

<!DOCTYPE html>

<html>

     <head>

     <meta charset="utf-8">

     <title>表单验证</title>

         <script type="text/javascript">

              function_(1)____ verify(f) {

                  var uname = f.uname.value;

                  var upwd = f.___(2)__upwd_.value;

                  if(uname != "" && upwd != "") {

                      if(/[\u4e00-\u9fa5]{2,}/.test(___(3)_uname__)) {

                          if(/\w{6,}/.test(upwd)){

                              alert("您的用户名和密码均符合要求!");

                              return ____(4)_ture___;

                          } else {

                              alert("您的密码不符合要求!");

                              f.upwd.focus();

                              f.upwd.select();  

                              return false;

                          }

                      } else {

                          alert("您的用户名不符合要求!");

                          f.uname.focus();

                          f.uname.select();

                          return false;

                      }  

                  }else{

                      alert("您的用户名或密码为空!!");

                      return false;

                  }

              }

         </script>

     </head>

<body>

     <form action="" method="" name="myform" onSubmit="___return(5)___ verify(this)">

         <table align="center">

               <tr>

                     <td align="right">用户名</td>

                     <td><input type="__text__(6)____" name="uname"></td>

              </tr>    

               <tr>

                     <td align="right">密码</td>

                     <td><input type="password" name="upwd"></td>

               </tr>

               <tr>

                     <td align="right">性别</td>

                     <td>

                            <input type="radio" name="sex" value="男" checked>男

                            <input type="radio" name="__sex_(7)___" value="女">女

                     </td>

               </tr>

                <tr>

                      <td align="right">专业方向</td>

                <td>

                      <select name="major">

                            <option value="软件开发与测试">软件开发与测试</option>

                            <option value="信息化与网络安全">信息化与网络安全</option>

                            <option value="人工智能软件开发与应用">人工智能软件开发与应用</option>

                            <option value="移动互联网软件开发与应用">移动互联网软件开发与应用</option>

                            <option value="云计算与大数据分析">云计算与大数据分析</option>

                            <option value="物联网与智慧城市应用软件开发">物联网与智慧城市应用软件开发</option>

                      </select>

               </td>

         </tr>

         <tr>

               <td align="right">爱好</td>

               <td>

                      <input type="checkbox" name="hobby" value="唱歌">唱歌

                      <input type="checkbox" name="hobby" value="登山">登山

                       <input type="checkbox" name="hobby" value="阅读">阅读

                       <input type="checkbox" name="hobby" value="篮球">篮球

                       <input type="checkbox" name="hobby" value="书法">书法

               </td>

         </tr>

          <tr>

                <td align="right" valign="top" >个人简介</td>

                <td>

                      <textarea name="cv" rows="3" cols="40">限100字以内</textarea>

                </td>

          </tr>

          <tr>

                <td align="center" colspan="__2_(8)___">

                        <input type="submit" value="提交">  

                        <input type="reset" value="重置">

               </td>

           </tr>

        </table>

     </form>

</body>

</html>

40.以下程序用于求1~100之间所有整数的累加和。请在程序清单的空白处(共4处)填写正确的内容,确保程序能正确运行。

<!DOCTYPE html>

<html>

<head>

     <meta charset="utf-8">

     <title>求累加和</title>

     <script type="__(1)_text/javascript_">

          __(2)var__ sum = 0;

          for(i=1; i<=100; i++){

              sum += __(3)_i_;

          }

          __(4)_document_.write("1-100之间的整数和为:" + sum);

     </script>

</head>

<body>

</body>

</html>

第三、四章

1.JSP中的有很多内置对象可以方便程序开发,其中不包括( )C

A、out

B、request

C、redirect

D、response

解析:内置对象有:1、Request对象;2、Response对象;3、out对象;4、session对象;5、application对象;6、PageContext对象;7、Config对象;8、Page对象;9、Exception对象。

1.login.jsp---登录表单页面

<%@ page language="java" contentType="text/html; charset=utf-8"

   pageEncoding="utf-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>登录页</title>

</head>

<body>

<form name="reg" action="DoLogin.jsp" method="post" >

用户名:<input type="text" name="username" value=""/><font color="red">用户名不能为空!</font><br>

<input type="(1)submit" value="登录">

<input type="reset" value="取消">

</form>

</body>

</html>

2.DoLogin.jsp---处理页,用户名为a的用户登录成功,其它为失败

<%@ page language="java" contentType="text/html; charset=UTF-8"

   pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<%

  String username=(2)request.getParameter("username");

 if("a".equals(username)){

  session.(3)setAttribute("username", "a");//username放入session

  %>

 <jsp:(4)forward page="suc.jsp"/>

  <%

 }

 else{

  %>

  <jsp:forward page="(5)fal.jsp" />

   <%   

 }

%>

</body>

</html>

3.suc.jsp---显示a登录成功

<%@ page language="java" contentType="text/html; charset=UTF-8"

   pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<%=(6) request.getParameter("username")%>登录success!

<a href="good.jsp">去购物</a></body>

</html>

4.fal.jsp---登录失败,3秒跳转到login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

   pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

failure!

<%response.setHeader(7)("(8)refresh", "3;url=(9)login.jsp"); %>

</body>

</html>

5.out.jsp---注销session

<%@ page language="java" contentType="text/html; charset=UTF-8"

   pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<%session.invalidate()(10); %>

</body>

</html>


3.在JSP中,()动作用于将文件包含入JSP页面。C

A、page

B、forward

C、include

D、taglib

解析:Taglib指令,其实就是定义一个标签库以及自定义标签的前缀。这样在界面jsp中引入其中的标签库或者标签库文件,然后才可以正常使用其中定义的标签。

include在页面的适当位置整体嵌入另一个文件,在JSP页面上出现该指令的位置处静态嵌入一个文件

forward动作: 实行页面的跳转

<@page>指令:用来告诉程序编译时怎么处理

4.Jsp内置对象中,(C)是当关闭浏览器,会话信息失效

A、page

B、request

C、session

D、application

解析:page:只在一个页面中保存属性,跳转之后无效。 request:只在一次请求中保存,服务器跳转后依然有效。 session:在一次会话范围中,无论何种跳转都可以使用,但是新开浏览器无法使用。 application:在整个服务器上保存,所有用户都可以使用

5.JSP在执行过程中经过( )阶段,会将Java源码转换成.class文件B

A、提交

B、编译

C、执行

D、响应

6.在JSP页面中,下列( A)表达式语句可以获取页面请求中名字为title的文本框的内容

A、<%=request.getParameter(“title”)%>

B、<%=request.getAttribute(“title”)%>

C、<%=request.getParameterValues(“title”)%>

D、<%=request.getParameters(“title”)%>

解析:

可以通过request对象的getParameter()方法获取访问请求参数。
getAttribute()获取属性
Stringlangtype[]=request.getParameterValues("langtype");
//用getParameterValues的方法,将核取到的值取到langtype[]阵列

7.在JSP中,假设表单的method=“post”,在收到表请求时处理中文乱码的正确做法是A

A、request.setCharacterEncoding(“utf-8”);

B、response.setCharacter(“utf-8”);

C、request.setContentType(“text/html;charset=utf-8”);

D、response.setContentType(“text/html;charset=utf-8”);

8.JSP中存在如下代码:<%=“3”+“6” %>,运行该JSP后,以下说法正确的是(B )

A、没有任何输出

B、36

C、9

D、指令将引发错误

解析:拼接

9.JSP页面的page指令主要用于设置该页面的各种属性,page指令的language属性的作用是(C )

A、将需要的包和类引入到JSP页面中

B、指定JSP页面采用的编码方式,默认为text/html

C、指定JSP页面使用的脚本语言,默认为Java

D、指定服务器所在国家编码

10.可以利用jsp改变客户端的响应的是(A)

A、response.setHeader();

B、request.setCharacterEncoding()

C、out.println()

D、page.setAttribute()

解析:B设置编码,C打印输出,D在当前JSP页面中,可以使用request对象的setAttribute()方法将数据(属性或变量)保存到request范围内的变量中。

11.在JSP中如果要导入java.util.*包要使用什么指令

A、page

B、taglib

C、include

D、forward

解析:<%@ page import=“java.util.*” %>

12.对于预定义<%!预定义%>的说法错误的是:(C)

A、一次可声明多个变量和方法,只要以“;”结尾就行

B、一个声明仅在一个页面中有效。

C、声明的变量将作为局部变量

D、在预定义中声明的变量将在JSP页面初始化时初始化

13.Application对象在(C)间共享

A、某个访问者所访问的当前页面

B、某个访问者所访问的网站的各个页面

C、该服务器上所有访问者的所有JSP页面

D、该服务器上所有访问者的所有JSP页面和Java程序

14.page指令用于定义JSP的全局属性,下面关于指令描述不正确的是(D)

A、<%@page%>作用于整个JSP页面

B、可以在页面中使用多个<%@page指令%>

C、为了增强程序的可读性,最好将<%@page%>指令放在开头,但不是必须的

D、<%@page%>指令只能出现一次

15.在jsp页面中使用forward指令,浏览器的地址栏(B)

A、会改变

B、不会改变

C、跟超链接一样

D、不确定

16.可以在哪个标记中插入变量和方法D

A、<%%>

B、<%

C、<%–%>

D、<%!%>

解析:<%%>:<%%>之间可以写服务器端代码,中间一般放函数或方法,<%!%>里声明的变量和方法都是作为类的属性和方法存在的全局变量而<%%>里声明的变量则是作为局部变量

17.page指令中的import属性可以多次发生 正确

解析:import 属性值可以使逗号:<%@page import=”java.net.,java.util.,java.sql.*”%>

import 属性是唯一可以重复出现的属性:
但是,我们一般会使用多个 page 指令来导入多个包:
<%@ page import=”java.util.”%> <%@ page import=”java.net.”%> <%@ page import=”java.text.*”%>

18.jsp:include和<%@include%>的处理方法一样 错误

解析:对于静态包含,<%@include%>,中包含的文件,只是简单的嵌入到主文件中,就是在jsp页面转化成Servlet时才嵌入到主文件中,因为运行的结果是只生成了一个Servlet。

而对于动态包含jsp:incude,如果被包含文件是动态的,那么就会生成两个Servlet,也就是被包含文件也要经过jsp引擎编译执行生成一个Servlet,两个Servlet通过request和reponse进行通信。如果被包含的文件是静态的,那么这种情况和%@include就很相似,只生成了一个Servlet,但是他们之间没有进行简单的嵌入,而依然是通过request和reponse进行的通信。

19.forward之后可以使用原来的request对象 正确

20.JSP实现的功能均可有servlet实现 正确

21.sendRedirect之后可以使用原来的request对象 错误

解析:forward之后可以使用原来的request对象 而且效率较高,sendRedirect之后不可以使用原来的request对象而且效率较低

第五、六章

1.下面的选项加载MySQL驱动正确的是哪一个?B

A、Class.forname(“com.mysql.JdbcDriver”);

B、 Class.forname(“com.mysql.jdbc.Driver”);

C、 Class.forname(“com.mysql.driver.Driver”);

D、Class.forname(“com.mysql.jdbc.MySQLDriver”);

解析:

Class.forName("com.mysql.jdbc.Driver");

2.PreparedStatement对象的executeUpdate()方法能够执行哪些sql语句?ABD

A、insert

B、update

C、select

D、delete

解析:方法executeUpdate:用于执行INSERT、UPDATE或DELETE语句以及SQLDDL(数据定义语言)语句

executeQuery()方法会把数据库响应的查询结果存放在ResultSet类对象中供使用。

3.在jsp:useBean中,使用哪个属性来表示JavaBean实例化对象的名字?B

A、name

B、class

C、scope

D、id

解析:

<jsp:useBean id="book" class="vo.Book" scope="page">
    <jsp:setProperty  name="book" property="*" />
</jsp:useBean>

useBean

id:相当于实例化一个类对象(所以可以和你的bean类不一样)
class:指定javaBean的完整类名,需要带有包名
scope:存储的范围,默认是page

setProperty

name:已经在“jsp:useBean”中创建的Bean实例的名字。

那么在下面进行操作时也要一致

pstmt.setInt(1,book.getId());

        pstmt.setString(2, book.getName());

        pstmt.setString(3,book.getPrice());

        pstmt.setString(4, book.getAuthor());

这里就是book,而不是我们的Book类

4.有关 JDBC的选项正确的是哪一个?D

A、JDBC是一种被设计成通用的数据库连接技术,JDBC 技术不光可以应用在Java程序里面,还可以用在C++这样的程序里面。

B、 JDBC技术是 SUN公司设计出来专门用在连接 Oracle 数据库的技术,连接其他的数据库只能采用微软的 ODBC解决方案。

C、微软的 ODBC和 SUN公司的 JDBC 解决方案都能实现跨平台使用,只是 JDBC 的性能要高于 ODBC。

D、JDBC只是个抽象的调用规范,底层程序实际上要依赖干每种数据库的驱动文件。

进行:JDBC是Java的,JDBC可以连接包括mysql.oracle,postgrep等数据库

5.在JDBC编程中执行完下列SQL语句SELECT name,rank,serialNo

FROM employee ,能得到rs 的第一列数据的代码是哪两个?BD

A、rs.getString(0);

B、rs.getString(“name “);

C、 rs.getString(1);

D、rs.getString(next);

解析:第一列数据即1或name

6.使用jsp:setProperty动作标识可以在JSP页面中设置Bean的属性,但必须保证Bean有对应的什么方法?B

A、SetXxx方法

B、setXxx方法

C、getXxx方法

D、GetXxx方法

7.JavaBean可以通过相关JSP动作指令(动作标识)进行调用。下面哪些属于JavaBean可以使用的JSP动作指令?ACD

A、jsp:useBean

B、jsp:setParameter

C、jsp:setProperty

D、jsp:getProperty

8.以下哪些PreparedStatement接口的特点?AB

A、使用PreparedStatement接口发送的SQL语句,可以带有参数;

B、PreparedStatement可对SQL进行预编译,从而提高数据库的执行效率

C、PreparedStatement接口不是Statement接口的子接口;

D、PreperedStatement可以避免SQL注入式攻击。

解析:C是子接口

9.下面选项的MySQL数据库 URL正确的是哪一个?C

A、jdbc:mysql://localhost/company

B、Jdbc:mysql://localhost:3306:company

C、 jdbc:mysql://localhost:3306/company

D、jdbcmysql:localhost//3306/company

解析:

"jdbc:mysql://localhost:3306/javaweblearn"
以下程序代码,通过JDBC实现图书信息添加功能,请补充完整代码。

1)在MySQL数据库中创建数据库名称为book,图书信息表tb_books,其结构包括属性列id(图书编号),name(图书名称),price(图书价格),author(作者)。数据类型分别为Integer,VARCHAR(45),DOUBLE,VARCHAR(45) 。

2)在vo包下创建名称为Book的类,用于封装图书对象信息。

3)创建index.jsp页面,该页面用于添加图书信息。

4)创建addBook.jsp页面,该页面用于对添加图书信息请求进行处理,通过JDBC将所提交的图书信息写入到数据库中。关键代码如下:

<jsp:useBean  id="book" class="   vo.Book     ①         " scope="page"/>

<jsp:setProperty  name="    book ②      " property="* "/>

 

<%

    public static final String DBDRIVER="com.mysql.jdbc.Driver";

    public static final String DBURL="jdbc:mysql://localhost:3306/    book ③           ";

    public static final String DBUSER="root";

    public static final String DBPASS="123456";

private Connection conn=null;

    private PreparedStatement pstmt=null;

   try {

      Class.forName(     DBDRIVER    ④       );

      this.conn=DriverManager.getConnection(DBURL, DBUSER   ⑤  ,   DBPASS ⑥   );

      String sql="        insert into tb_books values(?,?,?,?)              ⑦     ";

      this.pstmt=     this.conn.prepareStatement(sql)         ⑧               ;

      pstmt.setInt(1,book. getId());

  pstmt.setString(2, book.getName ());

  pstmt.setString(3,  book.getPrice()   ⑨          );

  pstmt.setString(4, book. getAuthor ());

  if(     pstmt.executeUpdate()    ⑩       >0){

out.println("添加信息成功!");

  }

  this.pstmt.close();

      this.conn.close();

} catch (Exception e) {

      out.println("添加信息失败!");

      e.printStackTrace();   }

%>


11.有关 Connection 描述错误的是哪一个?D

A、 Connection 是 Java 程序与数据库建立的连接对象,这个对象只能用来连接

数据库,不能执行 SQL 语句。

B、JDBC 的数据库事物控制要靠 Connection 对象完成。

C、Connection 对象使用完毕后要及时关闭,否则会对数据库造成负担。

D、只用MySOL和 Oracle 数据库的JDBC 程序需要创建 Connection 对象,其他不需要创建Connection对象。

解析:连接数据库都需要创建Connection对象

12.关于DAO模式,以下哪些说法是正确的?ABD

A、DAO的全称是Data Access Object;

B、DAO的主要功能是用来进行数据操作的,在程序的标准开发架构中属于数据层的操作;

C、在DAO模式中,没有专门负责数据库的打开与关闭操作的类;

D、在整个DAO中,实际上都是以接口为操作标准的,即:客户端依靠DAO实现的接口进行操作,而服务端要将接口进行具体的实现。

解析:DAO(Data Access Object)数据访问对象。主要的功能就是用于进行数据操作的,在程序的标准开发架构中属于数据层的操作

例如:

StudentDaoImp
/*
 *
 * author:cai4
 * user:2013040544-qishijie
 * date:2022/5/5 上午9:00
 * school:NUC
 * /
 */

package com.dao;

import com.conn.Conn;
import com.student.Student;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class StudentDaoImp implements StudentDao {
//学生注册
    @Override
    public int InsertStudent(Student student) throws Exception {
        //连接数据库
        //操作sql对象;insert into student("","");
        //执行语句
        int rs = 0;
        try{
            Conn conn = new Conn();
            Connection dbc = conn.getConnection();
            PreparedStatement pstmt = dbc.prepareStatement("insert into  user values (?,?)");
            pstmt.setString(1,student.getSno());
            pstmt.setString(2,student.getSname());
            rs = pstmt.executeUpdate();
        }catch (Exception e){
            e.printStackTrace();
        }
        return rs;
    }
    //学生登录

    @Override
    public ResultSet LoginStudent(Student student) throws Exception {
        ResultSet rs = null;
        Conn conn = new Conn();
        Connection dbc = conn.getConnection();
        PreparedStatement pstmt = dbc.prepareStatement("select * from user where sno=? and sname=?");
        pstmt.setString(1,student.getSno());
        pstmt.setString(2,student.getSname());
        rs = pstmt.executeQuery();
        return rs;
    }
}

StudentDao
/*
 *
 * author:cai4
 * user:2013040544-qishijie
 * date:2022/5/5 上午8:58
 * school:NUC
 * /
 */

package com.dao;

import com.student.Student;

import java.sql.ResultSet;

public interface StudentDao {
    public int InsertStudent(Student student) throws Exception;
    public ResultSet LoginStudent(Student student) throws Exception;

}

在整个DAO中实际上都是以接口为操作标准的,即:客户端依靠DAO实现的接口进行操作,而服务端要将接口进行具体的实现。DAO由以下几个部分组成。

DatabaseConnection:专门负责数据库的打开与关闭操作的类
VO:主要由属性、setter、getter方法组成,VO类中的属性与表中的字段相对应,每一个VO类的对象都表示表中的每一条记录;
DAO:主要定义操作的接口,定义一系列数据库的原子性操作,例如:增加、修改、删除、查询等;
Impl : DAO接口的真实实现类,完成具体的数据库操作,但是不负责数据库的打开和关闭;
Proxy :代理实现类,主要完成数据库的打开和关闭,并且调用真实实现类对象的操作
Factory :工厂类,通过工厂类取得一个DAO的实例化对象

13.哪个不是JDBC 用到的接口和类?A

A、System

B、 Class

C、Connection

D、ResultSet

解析:在Java语言中提供了丰富的类和接口用于数据库编程,利用这些类和接口可以方便地进行数据访问和处理,本节将介绍一些常用的JDBC接口和类,这些类或接口都在java.sql包中。
1、Connetction接口
  Connetction接口代表与特定的数据库的连接,在连接上下文中执行SQL语句并返回结果,它的常用方法如下所示:

方法 功能描述
createStatement() 创建Statement对象
createStatement(int resulteSetType, int resulteSetCocurrency) 创建一个Statement对象,该对象将生成具有给定类型、并发性和可保存性的ResulteSet对象
preparedStatement() 创建预处理对象preparedStatement
isReadOnly() 查看当前Connetction对象的读取模式是否为只读形式
setReadOnly() 设置当前Connetction对象的读写模式,默认为非只读模式
commit() 使所有上一次提交/回滚后进行的更改成为持久更改,并释放此Connection对象当前持有的所有数据库锁
roolback() 取消在当前事务中进行的所有更改,并释放此Connection对象当前持有的所有数据库锁
close() 立即释放此Connection对象的数据库和JDBC资源,而不是等待它们被自动释放

2、Statement接口
  Statement接口用于在已经建立连接的基础上向数据库发送SQL语句。在JDBC中有3种Statement对象,分别是Statement、PreparedStatement和CallableStatement。Statement对象用于执行不带参数的简单的SQL语句;PreparedStatement继承了Statement,用来执行动态的SQL语句;CallableStatement继承了PreparedStatement,用于执行对数据库的存储过程的调用。Statement接口的常用方法如下所示:

方法 功能描述
execute(String sql) 执行静态的SELECT语句,该语句可能返回多个结果集
executeQuery(String sql) 执行给定的SQL语句,该语句返回单个ResulteSet对象
clearBatch() 清空此Statement对象的当前SQL命令列表
executeBath() 将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数据。数据元素的排序与SQL语句的添加顺序对应
addBatch(String sql) 将给定的SQL命令添加到此Statement对象的当前命令列表中。如果驱动程序不支持批量处理,将抛出异常
close() 释放Statement实例占用的数据库和JDBC资源

3、PreparedStatement接口
  PreparedStatment接口用来动态地执行SQL语句。通过PrepardStatement实例执行的动态SQL语句,将被预编译并保存到PreparedStatement实例中,从而可以反复第执行该SQL语句。PreparedStatement接口的常用方法如下所示:

方法 功能描述
setInt(int index, int k) 将指定位置的参数设置为int值
setFloat(int index, float f) 将指定位置的参数设置为float值
setLong(int index, long l) 将指定位置的参数设置为long值
setDouble(int index, double d) 将指定位置的参数设置为double值
setBoolean(int index, boolean b) 将指定位置的参数设置为boolean值
setDate(int index, date date) 将指定位置的参数设置为date值
executeQuery() 在此PreparedStatement对象中执行SQL查询,并返回该查询生成的ResulteSet对象
setString(int index, String s) 将指定位置的参数设置为对应的String值
setNull(int index, intsqlType) 将指定位置的参数设置为SQL NULL
executeUpdate() 执行前面包含的参数的动态INSERT、UPDATE或DELETE语句
clearParameters() 清除当前所有参数的值

4、DriverManager类
  DriverManager类用来管理数据库中的所有驱动程序。它是JDBC的管理层,作用域用户和驱动程序之间,跟踪可用的驱动程序,并在数据库的驱动程序之间建立连接。如果通过getConnection()方法可以建立连接,则经连接返回,否则抛出SQLException异常。DriverManager类的常用方法如下所示:

方法 功能描述
getConnection(String url, String user, String password) 指定3个入口参数(依次是连接数据库的URL、用户名、密码)来获取与数据库的连接
setLoginTimeout() 获取驱动程序试图登录到某一数据库是可以等待的最长时间,以秒为单位
println(String message) 将一条消息打印到当前JDBC日志流中

5、ResulteSet接口

ResultSet接口类似于一个临时表,用来暂时存放数据库卡查询操作所获得结果集。ResulteSet实例具有指向当前数据行的指针,指针开始的位置在第一条记录的前面,通过next()方法可将指针向下移。
  在JDBC2.0(JDK1.2)之后,该接口添加了一组更新方法updateXXX(),该方法有两个重载方法,可根据列的索引号和列的名称来更新指定列。但该方法并没有将对数据进行的操作同步到数据库中,需要执行updateRow()或insertRow()方法更新数据库。ResulteSet接口的常用方法如下:

方法 功能描述
getint() 以int形式获取此ResulteSet对象的当前行的指定列值。如果列值是NULL,则返回值是0
getFloat() 以float形式获取此ResulteSet对象的当前行的指定列值。如果列值是NULL,则返回值是0
getDate() 以date形式获取此ResulteSet对象的当前行的指定列值。如果列值是NULL,则返回值是null
getBoolean() 以boolean形式获取此ResulteSet对象的当前行的指定列值。如果列值是NULL,则返回值是null
getString() 以String形式获取此ResulteSet对象的当前行的指定列值。如果列值是NULL,则返回值是null
getObject() 以Object形式获取此ResulteSet对象的当前行的指定列值。如果列值是NULL,则返回值是null
first() 将指针移到当前记录的第一行
last() 将指针移到当前记录的最后一行
next() 将指针向下移一行
beforeFirst() 将指针移到集合的开头(第一行位置)
afterLast() 将指针移到集合的尾部(最后一行位置)
absolute(int index) 将指针移到ResulteSet给定编号的行
isFirst() 判断指针是否位于当前ResulteSet集合的第一行。如果是返回true,则返回false
isLast() 判断指针是否位于当前ResulteSet集合的最后一行。如果是返回true,则返回false
updateInt() 用int值更新指定列
updateFloat() 用float值更新指定列
updateLong() 用指定的long值更新指定列
updateString() 用指定的String值更新指定列
updateObject() 用Object值更新指定列
updateNull() 将指定的列值修改为NULL
updateDate() 用指定的date值更新指定列
updateDouble() 用指定的double值更新指定列
getrow() 查看当前行的索引号
insertRow() 将插入行的内容插入到数据库
updateRow() 将当前行的内容同步到数据表
deleteRow() 删除当前行,但并不同步到数据库中,而是在执行close()方法后同步到数据库

14.在jsp:setProperty和jsp:getProperty中,哪个属性用来表示JavaBean实例化对象的名字?A

A、name

B、class

C、scope

D、id

<jsp:useBean id="book" class="vo.Book" scope="page">
    <jsp:setProperty  name="book" property="*" />
</jsp:useBean>

name=“book”

15.在JSP中,使用动作可以将JavaBean嵌入JSP页面,对JavaBean的访问范围不能是(C )。

A、page

B、request

C、response

D、application

解析:javabean访问范围就是jsp的四大域对象:

1.JavaBean在page作用域中

表示JavaBean有效范围仅为其所在的JSP页面,如果用户关闭该JSP页面,处理响应用户请求的 JavaBean也会消失。服务器分配给每个客户端的JavaBean是不同的。

在page作用域中,JavaBean在以下俩种情况结束生命周期:

JSP页面通过forword转发请求到另一文件时。

访问当前JSP页面执行完毕并向客户端返回响应时。

2.JavaBean在request作用域中

表示分配给每个客户的JavaBean不同,且有效范围在request请求期间,即在请求与被请求页面之间共享JavaBean。当对请求作出响应后,JavaBean就会被取消。

客户端访问当前JSP页面执行完毕并向客户端返回响应时,JavaBean结束生命周期。

3.JavaBean在session作用域中

表示分配给每个客户的JavaBean不同,但在同一客户打开的多个JSP页面,即一次会话期间,用的是同一个JavaBean。如果在同一客户的不同JSP页面中,声明了相同id的JavaBean且范围仍为session,更改JavaBean的成员变量值,则其它页面中id名相同的Bean的成员变量也会被改变。当客户从服务器端请求的所有网页都被关闭时,与该客户这一次会话对应的JavaBean也会被取消。JavaBean对象被创建后,存在于当前回话中,在同一会话中,共享同一个JavaBean。

4.JavaBean在application作用域中

表示在这种情况下服务器端所有客户之间共享JavaBean。如果其中一个客户改变了JavaBean成员变量值,其它客户使用的这个JavaBean的相应变量值也会发生改变。当服务器关闭时,JavaBean才会被取消。

JavaBean对象被创建后,一直存在于当前Web应用程序的生命周期中,在此应用程序中,共享同一JavaBean。

16.下面的描述错误的是什么?B

A、Statement 的 executeQuery()方法会返回一个结果集

B、Statement 的executeUpdate() 方法会返回是否更新成功的布尔值

C、使用ResultSet 中的 getString( )可以获得一个对应于数据库中 char 类型的值

D、ResultSet中的next0 方法会使结果集中的下一行成为当前行

解析:executeQuery返回结果集类型的对象,A正确。(1) 对于 SQL 数据操作语言 (DML) 语句,返回行计数 (2) 对于什么都不返回的 SQL 语句,返回 0 B错误。getString()是用于获取数据库中的varchar和char类型的值。C正确。next方法两个作用:使结果集中下一行成为当前行,并返回当前行是否有效的布尔值。D正确。虽然D选项描述不完整,但是所描述的内容是正确的。

今天的文章javaweb习题集「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/66594.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注