4《Java_Web应用开发实用教程》练习答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.7 习题
1. 单选题
(1)在HTML中超链接标记为()
A.<a>和</a>
B. <title>和</title>
C. <html>和</html>
D. <body>和</body>
答案:A
(2)表单中的数据要提交到的处理文件由表单的()属性指定。

A.method
B. name
C. action
D. 以上都不对
答案:C
(3)当<input>标记的type属性值为()时,代表一个多选框。

A.text
B. radio
C. checkbox
D. button
答案:C
(4)以下URL中语法不正确的是()
A.:80/software/home.html
B.telnet://:70
C.ftp://
答案:D
2. 上机练习
用记事本或Dreamweaver制作如下几个页面(建议用Dreamweaver制作):
link.html:此页面只有一个超级链接,用户单击此链接后将链接到login.html登录页面。

login.html:此页面为用户登录页面,用户可以在此页面输入用户名和密码,然后提交表单。

login_success.jsp:接收用户输入并显示“登录成功!”。

三个页面运行后的效果如图1.8所示。

图1.8 练习题页面运行效果
答案:
link.html代码如下:
<html>
<head>
<title>HTML练习</title>
</head>
<body>
<a href="login.html">点击这里登录</a>
</body>
</html>
login.html代码如下:
<html>
<head>
<title>登录页面</title>
</head>
<body>
<form action="login_success.jsp" method=”post”>
用户名
<input type="text" name="textfield">
<br>
密&nbsp; 码
<input type="password" name="textfield">
<br>
<label>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" name="Submit" value="提交">
</label>
<label>
&nbsp;&nbsp;&nbsp;
<input type="reset" name="Submit2" value="重置">
</label>
</form>
</body>
</html>
login_success.jsp代码如下:
<%@ page contentType="text/html; charset=gb2312"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
登录成功!
</body>
</html>
2.7 习题
1. 单选题
(1)要运行JSP程序,下列说法不正确的是()
A.服务器端需要安装Servlet容器,如Tomcat等。

B.客户端需要安装Servlet容器,如Tomcat等。

C.服务器端需要安装JDK。

D.客户端需要安装浏览器,如IE等。

答案:B
(2)当发布Web应用程序时,通常把Web应用程序的目录及文件放到Tomcat的()目录下。

A.work
B. temp
C. webapps
D. conf
答案:C
2. 上机练习
(1)按照本章所介绍的方法,下载和安装JDK和Tomcat,配置Windows操作系统下的Java Web应用开发环境。

●安装j2sdk,配置系统的环境变量,测试j2sdk安装是否成功。

●安装并配置Tomcat ,安装完成后发布Tomcat 的默认主页,完成Tomcat 的启动和停止操
作。

●创建一个虚拟发布目录,将例helloapp.jsp存入虚拟目录发布。

(2)练习建立MyEclipse Web Project,并在其中建立几个HTML文件及JSP文件。

答案:略。

请参考相关章节。

3.6习题
1. 单选题
(1)下面有关HTTP协议的说法不正确的是()
A.HTTP协议是Web应用所使用的主要协议
B.HTTP协议是一种超文本传输协议(Hypertext Transfer Protocol),是基于请求/响应模式的
C.HTTP是无状态协议
D.HTTP的请求和响应消息如果没有发送并传递成功的话,HTTP可以保存已传递的信息
答案:D
(2)下面有关Servlet的描述错误的是()。

A.一个Servlet就是Java中的一个类
B.Servlet是位于Web 服务器内部的服务器端的Java应用程序
C.Servlet可以由客户端的浏览器解释执行
D.加载Servlet的Web服务器必须包含支持Servlet的Java虚拟机
答案:C
(3)有关Servlet的调用,下列说法错误的是()。

A.可以通过在浏览器的地址栏中输入URL来调用Servlet。

B.可以通过表单的action属性来调用一个Servlet接收表单信息。

C.可以在<servlet>标记中调用Servlet。

D.只有上述三种调用Servlet的方法。

答案:D
4.6 习题
1. 单选题
(1)下面不属于JSP指令的是:()
A.include
B. import
C. page
D. taglib
答案:B
(2)page指令用于定义JSP文件中的全局属性,下列关于该指令用法的描述不正确的是:()
A. <%@ page %>作用于整个JSP页面。

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

C. 为增强程序的可读性,建议将<%@ page %>指令放在JSP文件的开头,但不是必须的。

D. <%@ page %>指令中的属性只能出现一次。

答案:D
(3)下列标签使用正确的是:()
A. <jsp:forward page="XXX.jsp">
<jsp:param name="xxx" value="xxx"/>
</jsp:forward>
B. <jsp:forward page="XXX.jsp">
</jsp:forward>
C. <jsp:forward page="XXX.jsp" name="xxx" value="xxx"/>
D. <jsp:forward page="XXX.jsp"/>
<jsp:param name="xxx" value="xxx"/>
</jsp:forward>
答案:A
(4)()动作用于转向另一个页面。

A. next
B. forward
C. include
D. param
答案:B
(5)在项目中已经建立了一个JavaBean,该类为:bean.Student,该bean具有name属性,则下面标签用法正确的是:()
A.<jsp:useBean id="student" class="Student" scope="session">
</jsp:useBean>
B.<jsp:useBean id="student" class="Student" scope="session">
</jsp:useBean>
C.<jsp:useBean id="student" class="bean.Student" scope="session">
</jsp:useBean>
D.<jsp:getProperty name="name" property="student"/>
答案:C
(6)jsp:useBean 动作的scope属性设置为( )将使同一用户在不同页面共享Beans。

A. page
B. session
C. application
D. request
答案:B
(7)在JSP中使用<jsp:getProperty>标记时,不会出现的属性是:()
A. name
B. property
C. value
D. 以上皆不会出现
答案:C
2. 上机练习
(1)应用Date函数读取系统当前时间,根据不同的时间段,在浏览器输出不同的问候语,例如上午0~12点之间输出“早上好”,同时把系统的年、月、日、小时、分、秒和星期输出到用户的浏览器。

答案:文件date.jsp代码如下:
<%@ page contentType="text/html;charset=gb2312" import="java.util.*"%>
<html>
<head>
<title>jsp基本语法应用案例</title>
</head>
<body>
<center>
<%
Date today = new Date();
int year0 = today.getYear();
int year = year0 + 1900;
int month0 = today.getMonth();
int month = month0 + 1;
int date = today.getDate();
int day = today.getDay();
int hours = today.getHours();
int minutes = today.getMinutes();
int seconds = today.getSeconds();
if (hours >= 0 && hours < 12) {
out.println("朋友们,早上好!");
} else if (hours >= 12 && hours < 19) {
out.println("朋友们,下午好!");
} else
out.println("朋友们,晚上好!");
out.println("<br>现在是:" + year + "年" + month + "月" + date + "日星期"+ day + "<br>"+hours + "时" + minutes + "分" + seconds + "秒");
%>
</center>
</body>
</html>
程序运行结果如图4.1所示。

图4.1 上机练习(1)运行结果
(2)加载动态文件,制作一个JSP文件,计算一个数的平方,然后再制作一个JSP文件,应用<jsp:include>动作加载上述的JSP文件,在客户端显示出来,并在客户端的“查看源文件”中观察源文件。

答案:
计算一个数的平方的文件square.jsp代码如下:
<%@ page contentType="text/html; charset=gb2312"%>
<html>
<head>
<title>jsp:include</title>
</head>
<body>
String str = request.getParameter("num");
if (str == null) {
str = "1";
}
int n = Integer.parseInt(str);
double f;
f = n * n;
%>
<%=n%>的平方等于<%=f%>
</body>
</html>
包含此文件的JSP文件include.jsp文件代码如下:
<%@ page contentType="text/html; charset=gb2312" language="java"
import="ng.Math"%>
<html>
<head>
<title>jsp:include</title>
</head>
<body>
<b> 求一个数的平方</b>
<br>
<jsp:include page="square.jsp">
<jsp:param name="num" value="9" />
</jsp:include>
</body>
</html>
文件运行结果如图4.2所示。

图4.2 上机练习(2)运行结果
(3)设计表单,制作读者选购图书的界面,当读者选中一本图书后,单击“确定”按钮,用“jsp:forward page=”语句将页面跳转到介绍该图书信息页面。

答案:
读者选择图书页面selectBook.jsp代码如下:
<%@ page contentType="text/html; charset=gb2312"%>
<html>
<head>
<title>选择图书</title>
<body>
<form name="form1" method="post" action="receiveBook.jsp">
<table border="1">
<tr>
<td>
《WEB技术应用基础》
</td>
<td>
《信号与系统》
</td>
</tr>
<tr>
<td>
<input type="radio" name="book" value="web">
</td>
<td>
<input type="radio" name="book" value="signal">
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="Submit" value="提交">
</td>
</tr>
</table>
</form>
</body>
</html>
接受用户的选择并根据用户的选项转向图书信息页面的文件receiveBook.jsp代码如下:<%@ page contentType="text/html; charset=gb2312"%>
<%
request.setCharacterEncoding("GB2312");
%>
<html>
<head>
<title>JSP:动作</title>
</head>
<body>
<%
String getsel;
getsel = request.getParameter("book");
if (getsel.equals("web")) {
%>
<jsp:forward page="bookInfo.jsp">
<jsp:param name="bookname" value="《WEB技术应用基础》" />
<jsp:param name="auther" value="樊月华" />
</jsp:forward>
<%
} else if (getsel.equals("signal")) {
%>
<jsp:forward page="bookInfo.jsp">
<jsp:param name="bookname" value="《信号与系统》" />
<jsp:param name="auther" value="陈后金" />
</jsp:forward>
<%
}
%>
</body>
</html>
显示图书信息的页面bookInfo.jsp代码如下:
<%@ page contentType="text/html; charset=gb2312"%>
<%
request.setCharacterEncoding("GB2312");
%>
<html>
<head>
<title>无标题文档</title>
</head>
<body>
你选择的是:
<%=request.getParameter("bookname")%>
<br />
作者是:<%=request.getParameter("auther")%>
</body>
</html>
文件运行结果如图4.3各图所示。

图4.3 上机练习(3)运行结果
5.11 习题
1. 单选题
(1)下列选项中,()可以准确地获取请求页面的一个文本框的输入(文本框的名称为name)。

A. request.getParameter(name)
B. request.getParameter(”name”)
C. request.getParameterValues(name)
D. request.getParameterValues(“name”)
答案:B
(2)使用response对象进行重定向时,使用的方法是()。

A. getAttribute
B. setContentType
C. sendRedirect
D. setAttribute
答案:C
(3)session对象中用于设定指定名字的属性值,并且把它存储在session对象中的方法是()。

A. setAttribute
B. getAttributeNames
C. getValue
D. getAttribute
答案:A
(4)在application对象中用()方法可以获得application对象中的所有变量名。

A. getServerInfo
B. nextElements()
C. removeAttribute
D. getRealPath
答案:B
2. 上机练习
(1)制作一个购书页面,要求用户输入用户名和密码,并通过下拉菜单选择需要购买的图书,单击“确定”按钮,将信息发往服务器端,服务器端文件接收用户输入并输出用户名和所购图书。

答案:
读者选购图书页面buyBook.jsp代码如下:
<html>
<head>
<title>选购图书</title>
</head>
<body>
<p>
请输入个人信息并选择要购买的图书
</p>
<form id="form1" name="form1" method="post" action="receiveUser.jsp">
用户名
<input type="text" name="username" />
<br />
密&nbsp; 码
<input type="password" name="pwd" />
<br />
图&nbsp; 书
<select name="book">
<option value="Web技术应用基础">
Web技术应用基础
</option>
<option value="信号与系统">
信号与系统
</option>
<option value="高等数学">
高等数学
</option>
</select>
<br />
<input type="submit" name="Submit" value="提交" />
&nbsp;
<input type="reset" name="Submit2" value="清空" /> </form>
</body>
</html>
接收用户输入的服务器端文件receiveUser.jsp代码如下:
<%@ page contentType="text/html; charset=gb2312"%>
<html>
<head>
<title>无标题文档</title>
</head>
<body>
<%
request.setCharacterEncoding("GB2312");
String userName = request.getParameter("username");
String book = request.getParameter("book");
%>
<%=userName%>你好
<br>
你要购买的图书为:
《<%=book%>》<br>
</body>
</html>
文件运行结果如图5.1所示。

图5.1 上机练习(1)运行结果
(2)设计表单,制作读者选购图书的界面,当读者选中一本图书后,单击“确定”按钮,页面跳转到介绍该图书信息页面,要求使用response对象sendRedirect方法。

答案:
读者选购图书页面buyBook2.htm代码如下:
<html>
<head>
<title>选购图书</title>
</head>
<body>
<form action="receiveBook2.jsp" method="post">
<table width="50%" border="1" align="center">
<tr>
<td colspan="2">
<font size="5">请选择需要的图书:</font>
</td>
</tr>
<tr>
<td width="88%">
《Web技术应用基础》
</td>
<td width="12%">
<input type="radio" name="bv" value="1" />
</td>
</tr>
<tr>
<td>
《微型计算机原理及应用技术》
</td>
<td>
<input type="radio" name="bv" value="2" />
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="Submit" value="提交" />
</td>
</tr>
</table>
</form>
</body>
</html>
文件receiveBook2.jsp接收用户的选择并根据用户的选择转向不同的页面,其代码如下:<%
String bv = request.getParameter("bv");
if (bv.equals("")) {
response.sendRedirect("buyBook2.htm");
} else if (bv.equals("1")) {
response.sendRedirect("webBook.htm");
} else if (bv.equals("2")) {
response.sendRedirect("computerBook.htm");
}
%>
图书介绍页面webBook.htm代码如下:
<html>
<head>
<title>Web技术应用基础</title>
</head>
<body>
<table width="57%" border="1" align="center">
<tr>
<td align="center">
<font size="5">《Web技术应用基础》</font>
</td>
</tr>
<tr>
<td align="center">
清华大学出版社
</td>
</tr>
<tr>
<td align="center">
樊月华主编
</td>
</tr>
<tr>
<td align="center">
35.0元
</td>
</tr>
</table>
</body>
</html>
图书介绍页面computerBook.htm代码如下:
<html>
<head>
<title>微型计算机原理及应用技术</title>
</head>
<body>
<table width="57%" border="1" align="center">
<tr>
<td align="center">
<font size="5">《微型计算机原理及应用技术》</font> </td>
</tr>
<tr>
<td align="center">
机械工业出版社
</td>
</tr>
<tr>
<td align="center">
朱金钧麻新旗编著
</td>
</tr>
<tr>
<td align="center">
31.0元
</td>
</tr>
</table>
</body>
</html>
文件运行结果如图5.2所示。

图5.2 上机练习(2)运行结果
(3)设计网上考试界面如图8.24所示,应用session对象存储测试数据,当考生完成试题,单击“确定”按钮,将答案与正确答案比较,给出结果和答题所用的时间。

图5.3 上机练习(3)运行结果
答案:
考试页面exam.jsp代码如下:
<%@ page contentType="text/html; charset=gb2312"%>
<%
String name = request.getParameter("name");
String num = request.getParameter("num");
String answer1 = request.getParameter("question1");
String answer2 = request.getParameter("question2");
if (name != null && num != null && answer1 != null
&& answer2 != null) {
session.putValue("name", name);
session.putValue("num", num);
session.putValue("answer1", answer1);
session.putValue("answer2", answer2);
%>
<a href="answer.jsp">查看考试结果及答案</a>
<%
} else {
%>
<html>
<head>
<title>考试页面</title>
</head>
<body>
<form action="exam.jsp" method="get">
<center>
<font color="#000099" size="6">考试系统</font>
<p>
请输入姓名:
<input type="text" name="name">
<br>
请输入考号:
<input type="text" name="num">
</p>
<hr />
</center>
考试时间:<%=((session.getLastAccessedTime() - session
.getCreationTime()) / 1000)%>秒<br>
1.IP协议对应OSI协议中的哪一层:
<br>
<input name="question1" type="radio" value="1">
会话层
<input name="question1" type="radio" value="2" />
传输层
<input name="question1" type="radio" value="3" />
数据链路层
<input name="question1" type="radio" value="4" />
网络层
<br>
2.JSP文件中使用下面哪种语言作为服务器端程序默认的语言:
<br>
<input name="question2" type="radio" value="1">
VC++
<input name="question2" type="radio" value="2" />
Java
<input name="question2" type="radio" value="3" />
Qbasic
<input name="question2" type="radio" value="4" />
JavaScript
<br>
<center>
<input name="复位" type="reset" value="复位" />
<input name="确定" type="submit" value="提交" />
</center>
</form>
<br>
<%
}
%>
</body>
</html>
提交后查看考试结果及答案页面answer.jsp代码如下:
<%@ page contentType="text/html;charset=gb2312" import="java.util.Date"%> <html>
<head>
<title>考试结果</title>
</head>
<body>
<center>
<font size=5 color=blue>考试结果</font>
</center>
<hr>
<%
Object Q1 = session.getValue("answer1");
Object Q2 = session.getValue("answer2");
{
if (Q1.equals("4")) {
out.print("第一题正确<br>");
out.print("正确答案是:网络层。

<br>");
} else {
out.print("第一题错误<br>");
out.print("正确答案是:网络层。

<br>");
}
}
{
if (Q2.equals("2")) {
out.print("第二题正确<br>");
out.print("正确答案是:Java。

<br>");
} else {
out.print("第二题错误<br>");
out.print("正确答案是:Java。

<br>");
}
}
%>
</body>
</html>
提交题目后页面及查看考试结果页面如图5.4所示。

图5.4 上机练习(3)提交后页面及查看考试结果页面
6.6习题
1. 单选题
(1)创建数据表应该用以下()指令。

A.INSERT
B. CREA TE
C. SELECT
D. UPDA TE
答案:B
(2)创建数据表时如果要指定某一个字段为主键,应该用()参数。

A.NOT NULL
B. Auto_Increment
C. Primary Key
D. Key
答案:C
(3)要删除数据表中的一条记录应该用以下的()命令。

A.INSERT
B. DELETE
C. SELECT
D. UPDA TE
答案:B
2. 上机练习
(1)启动MySQL的命令行管理工具,用MySQL的建库语句建立一个名为company的数据库。

(2)在company库中建立雇员表emp,表的数据项及数据类型如下所示:
empno int(4) not null primary key,
ename varchar(10),
job varchar(10),
hiredate datetime,
salary double
(3)建立一个JSP文件,通过JDBC连接数据库,然后执行如下操作:
●在雇员表emp中插入几行测试数据(英文数据,日期格式为YYYY-MM-DD)。

●查看表中的数据。

●修改表中的某条记录。

●删除表中的某条记录。

答案:
(1)建库语句为:create database company;
(2)首先使用下列语句选中company数据库为当前数据库:
use company;
然后通过以下语句建立雇员表emp:
create table emp(
empno int(4),
ename varchar(10),
job varchar(10),
hiredate datetime,
salary double,
primary key(empno));
(3)
文件jdbcAdd.jsp实现在emp表中插入两条记录并查看插入后表中的数据,其代码如下:<%@ page contentType="text/html; charset=gb2312"%>
<%@ page language="java"%>
<%@ page import="com.mysql.jdbc.*"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>往数据库表中插入记录</title>
</head>
<body>
<%
//驱动程序名
String driverName = "com.mysql.jdbc.Driver";
//数据库用户名
String userName = "root";
//密码
String userPwd = "123";
//数据库名
String dbName = "company";
//表名
String tableName = "emp";
//连接字符串
String url = "jdbc:mysql://localhost/" + dbName + "?user="
+ userName + "&password=" + userPwd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
java.sql.Connection conn = DriverManager.getConnection(url);
java.sql.Statement statement = conn.createStatement();
String sql0 = "insert into " + tableName
+ " values(2,'Mary','manager','2009-03-01',5000)";
statement.executeUpdate(sql0);
sql0 = "insert into " + tableName
+ " values(3,'Tina','CEO','2009-05-01',50000)";
//sql0 = "insert into " + tableName
//+ " values(1,'Tom','worker','2009-03-01',5000)";
statement.executeUpdate(sql0);
String sql1 = "select * from " + tableName;
java.sql.ResultSet rs = statement.executeQuery(sql1);
%>
插入两条记录后表中的数据
<table border=1>
<tr>
<td>
雇员编号
</td>
<td>
雇员姓名
</td>
<td>
雇员工作
</td>
<td>
雇用日期
</td>
<td>
雇员工资
</td>
</tr>
<%
while (rs.next()) {
%>
<tr>
<td><%=rs.getString(1)%>
</td>
<td><%=rs.getString(2)%>
</td>
<td><%=rs.getString(3)%>
</td>
<td><%=rs.getString(4)%>
</td>
<td><%=rs.getString(5)%>
</td>
</tr>
<%
}
%>
</table>
<%
rs.close();
statement.close();
conn.close();
%>
</body>
</html>
文件运行结果如图6.1所示。

图6.1 往表中插入两条记录
文件jdbcUpdate.jsp实现将emp表中编号为2的记录的工资修改为6000,并查看插入后表中的数据,其代码如下:
<%@ page contentType="text/html; charset=gb2312"%>
<%@ page language="java"%>
<%@ page import="com.mysql.jdbc.*"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>更新数据库表中的记录</title>
</head>
<body>
<%
//驱动程序名
String driverName = "com.mysql.jdbc.Driver";
//数据库用户名
String userName = "root";
//密码
String userPwd = "123";
//数据库名
String dbName = "company";
//表名
String tableName = "emp";
//连接字符串
String url = "jdbc:mysql://localhost/" + dbName + "?user="
+ userName + "&password=" + userPwd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
java.sql.Connection conn = DriverManager.getConnection(url);
java.sql.Statement statement = conn.createStatement();
String sql0 = "update " + tableName
+ " set salary=6000 where empno=2";
statement.executeUpdate(sql0);
String sql1 = "select * from " + tableName;
java.sql.ResultSet rs = statement.executeQuery(sql1);
更改第二条记录中的工资项后表中的数据<table border=1>
<tr>
<td>
雇员编号
</td>
<td>
雇员姓名
</td>
<td>
雇员工作
</td>
<td>
雇用日期
</td>
<td>
雇员工资
</td>
</tr>
<%
while (rs.next()) {
%>
<tr>
<td><%=rs.getString(1)%>
</td>
<td><%=rs.getString(2)%>
</td>
<td><%=rs.getString(3)%>
</td>
<td><%=rs.getString(4)%>
</td>
<td><%=rs.getString(5)%>
</td>
</tr>
<%
}
%>
</table>
<%
rs.close();
statement.close();
conn.close();
</body>
</html>
文件运行结果如图6.2所示。

图6.2 修改表中的数据
文件jdbcDelete.jsp实现将emp表中编号为1的记录删除,并查看插入后表中的数据,其代码如下:
<%@ page contentType="text/html; charset=gb2312"%>
<%@ page language="java"%>
<%@ page import="com.mysql.jdbc.*"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>删除数据库表中的记录</title>
</head>
<body>
<%
//驱动程序名
String driverName = "com.mysql.jdbc.Driver";
//数据库用户名
String userName = "root";
//密码
String userPwd = "123";
//数据库名
String dbName = "company";
//表名
String tableName = "emp";
//连接字符串
String url = "jdbc:mysql://localhost/" + dbName + "?user="
+ userName + "&password=" + userPwd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
java.sql.Connection conn = DriverManager.getConnection(url);
java.sql.Statement statement = conn.createStatement();
String sql0 = "delete from " + tableName + " where empno=1";
statement.executeUpdate(sql0);
String sql1 = "select * from " + tableName;
java.sql.ResultSet rs = statement.executeQuery(sql1); %>
删除第一条记录后表中的数据
<table border=1>
<tr>
<td>
雇员编号
</td>
<td>
雇员姓名
</td>
<td>
雇员工作
</td>
<td>
雇用日期
</td>
<td>
雇员工资
</td>
</tr>
<%
while (rs.next()) {
%>
<tr>
<td><%=rs.getString(1)%>
</td>
<td><%=rs.getString(2)%>
</td>
<td><%=rs.getString(3)%>
</td>
<td><%=rs.getString(4)%>
</td>
<td><%=rs.getString(5)%>
</td>
</tr>
<%
}
%>
</table>
<%
rs.close();
statement.close();
conn.close();
%>
</body>
</html>
文件运行结果如图6.3所示。

图6.3 删除表中的记录
7.6习题
1. 单选题
(1)有关JavaBean的说法不正确的是()
A.JavaBean其实就是一个Java类
B.应用JavaBean可以将表示层和业务逻辑层分开
C.编写JavaBean和编写普通的Java类要求一样
D.JavaBean降低了JSP程序的复杂度,同时也增加了软件的可重用性
答案:C
(2)以下不属于JavaBean作用范围的是()。

A.request
B. session
C. application
D. scope
答案:D
(3)JSP中JavaBean是通过指令标签()来访问的。

A.<%@ page%>
B. <jsp:useBean>
C. <jsp:setProperty>
D. <jsp:getProperty>
答案:B
2. 上机练习
制作一个页面,如图7.8所示,在本页面设置表单提交后页面的背景颜色,文字的大小、字体和颜色。

表单提交后转向的页面使用本页面的设置进行显示。

要求应用JavaBean完成。

表7.8 设置页面属性
答案:文件pageBean.java定义了实现该功能的JavaBean,文件代码如下:
package bean;
import java.io.*;
public class pageBean {
private String bgColor;
private String txtSize;
private String txtFont;
private String txtColor;
public pageBean() {
bgColor = "green";
txtSize = "4";
txtFont = "宋体";
txtColor = "red";
}
public void setbgColor(String bgColor) { this.bgColor = bgColor;
}
public String getbgColor() {
return this.bgColor;
}
public void settxtSize(String txtSize) {
this.txtSize = txtSize;
}
public String gettxtSize() {
return this.txtSize;
}
public void settxtFont(String txtFont) {
this.txtFont = txtFont;
}
public String gettxtFont() {
return this.txtFont;
}
public void settxtColor(String txtColor) { this.txtColor = txtColor;
}
public String gettxtColor() {
return this.txtColor;
}
}
文件pageJavaBean.jsp文件调用定义的JavaBean,通过JavaBean实现页面属性的设置。

文件代码如下:<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@ page import="bean.pageBean"%>
<html>
<head>
<title>通过JavaBean设置页面属性</title>
</head>
<jsp:useBean id="pageAtr" class="bean.pageBean" scope="session">
</jsp:useBean>
<%
request.setCharacterEncoding("GB2312");
%>
<jsp:setProperty name="pageAtr" property="*" />
<body bgcolor=<%=pageAtr.getbgColor()%>>
<font color="<%=pageAtr.gettxtColor()%>"
face="<%=pageAtr.gettxtFont()%>" size="<%=pageAtr.gettxtSize()%>">
<div align="center">
JavaBean
</div>
<hr>
<form method="post" action="pageJavaBean.jsp" name="form1">
<div align="center">
背景颜色
<select name="bgColor">
<option value="white" selected="selected">
白色
</option>
<option value="gray">
灰色
</option>
<option value="black">
黑色
</option>
<option value="blue">
蓝色
</option>
<option value="green">
绿色
</option>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</select>。

相关文档
最新文档