动态网页修改数据库

动态网页修改数据库数据

JSP动态网页连接访问数据库,修改数据的操作一般有两种方式,一种是用于前台的,只能修改数据库表中的一条记录;另一种是用于后台系统管理员操作使用的,可以方便的修改表中的任何一条记录。本节分别对两种进行介绍。

一、  范例的演示和代码清单

演示的前提和前几节完全相同。

演示步骤:

1.       启动IE,在地址栏键入http://127.0.0.1:8080/ch4/ch4-51.htm,用户名处,输入数据库表中,已经存在的一个用户名;密码处输入对应的密码。如图4-60所示窗口:

 

4-60

2.       单击“提交”按钮。出现该用户所有资料的列表,其中用户名和密码两项,注有“不能更改”提示,其他项目都可以进行修改的操作。如图4-61所示窗口:

 

4-61

3.       在对应的文本框中,将需要变动的数据进行修改,然后单击“修改”按钮。屏幕出现修改成功的信息,以及修改后数据列表。如图4-62所示窗口:

 

4-62

4.       至此一条指定的数据记录修改完成。这属于一般用于前台,用户修改自己的注册资料用的修改方式。用于后台的系统管理员修改方式,请在此单击“返回浏览修改”,或返回主页后,单击“浏览修改”。出现浏览修改的界面。如图4-63所示窗口:

 

4-63

5.       网页窗口显示的是,数据库表中的所有数据记录。并且在每一条记录的后面,有一个“修改”的链接。单击任何一条数据记录后面的“修改”,进入数据修改界面。如图4-64所示窗口:

 

4-64

6.       这个网页窗口和前面单独修改一条记录的图4-61界面一样,只是数据内容不同。它们实际上是调用的同一个JSP动态网页。改动某些数据后,单击“修改”按钮。出现修改成功的信息,以及修改后数据列表。如图4-65所示窗口:

 

4-65

7.       这个网页窗口和前面单独修改一条记录成功的图4-62界面一样,只是数据内容不同。它们实际上也是调用的同一个JSP动态网页。单击“返回浏览修改”,可以进行下一条记录的修改。

这个范例由四个网页构成:

1.         ch4-51.htm:用表单的形式,提供需要修改数据记录的用户名、密码,表单的action指向ch4-51.jsp。同时又是“浏览修改”的入口,链接指向ch4-53.jsp

2.         ch4-51.jsp:连接数据库,查询找到需要修改的数据记录。将每个字段数据,放入一个表单,供用户进行修改。修改的数据,提交后交给ch4-52.jsp去更新数据库表中的数据记录。(这是本范例的重点网页)

3.         ch4-52.jsp:从ch4-51.jsp获得数据,连接数据库,使用SQL更新语句,修改指定记录的数据。然后再查询数据库,从表中读取更新的数据记录,送到屏幕上显示。

4.         ch4-53.jsp:“浏览修改”的操作界面,设计的思路是,查询数据库表中所有数据记录,在显示界面,将每条记录的尾部添加一个“修改”链接。这个链接指向ch4-51.jsp,用户点击“修改”链接时,同时将该条记录中的“用户名”、“密码”一并提交给ch4-51.jsp

四个网页的代码如下:

◇-◇-◇-◇-◇-◇-◇-◇-◇-◇修改数据库◇-◇-◇-◇-◇-◇-◇-◇-◇-◇

范例ch4-51.htm

1)        <html>

2)        <head>

3)        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

4)        <title>修改数据库</title>

5)        <body bgcolor="#FFFFCC">

6)        <table width="600" border="0" align="center" cellpadding="0" cellspacing="0">

7)         <tr>

8)            <td height="40" colspan="2">单独修改请输入:</td>

9)            <td width="71">&nbsp;</td>

10)       </tr>

11)       <tr>

12)         <td width="70" height="159" align="center" valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>

13)         <td width="459" valign="top"><form name="form1" method="post" action="ch4-51.jsp">

14)             <table width="100%" height="131" border="0" cellspacing="0">

15)               <!--DWLayoutTable-->

16)               <tr>

17)                 <td height="32" colspan="2" valign="top">用户名:</td>

18)                 <td colspan="2" valign="top"><input type="text" name="name"></td>

19)               </tr>

20)               <tr>

21)                 <td height="33" colspan="2" valign="top">密码:</td>

22)                 <td colspan="2" valign="top"><input type="password" name="password"></td>

23)               </tr>

24)               <tr>

25)                 <td width="90" height="33">&nbsp;</td>

26)                 <td colspan="2" align="center" valign="top"> <input type="submit" name="Submit" value="提交"></td>

27)                 <td width="209">&nbsp;</td>

28)               </tr>

29)               <tr>

30)                 <td height="3"></td>

31)                 <td width="21"></td>

32)                 <td width="131"></td>

33)                 <td></td>

34)               </tr>

35)             </table>

36)           </form></td>

37)         <td>&nbsp;</td>

38)       </tr>

39)       <tr>

40)         <td height="49" colspan="2"><a href="ch4-53.jsp">浏览修改</a></td>

41)         <td>&nbsp;</td>

42)       </tr>

43)       <tr>

44)         <td height="49" colspan="2"><div align="left"><a href="ch4.htm" target="_top">返回主页</a></div></td>

45)         <td>&nbsp;</td>

46)       </tr>

47)     </table>

48)     </body>

49)     </html>

◇-◇-◇-◇-◇-◇-◇-◇-◇-◇修改数据◇-◇-◇-◇-◇-◇-◇-◇-◇-◇

范例ch4-51.jsp

1)        <%@page contentType="text/html;charset=gb2312" language="java" import="java.sql.*" %>

2)        <html>

3)        <head>

4)        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

5)        <title>修改数据</title>

6)        </head>

7)        <body bgcolor="#FFFFCC">

8)          <%

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

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

11)      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

12)      String url="jdbc:odbc:ch4";

13)      Connection con=DriverManager.getConnection(url,"","");

14)      Statement st=con.createStatement();

15)      String strSql="select * from st where 姓名='"+name+"' and 密码='"+password+"'";

16)      ResultSet rs=st.executeQuery(strSql);

17)      if (!rs.next())

18)       {out.print("用户名或密码输入错误!");%>

19)       <p align="center"><a href="ch4-51.htm">返回修改页面</a></p>

20)      <%return;}

21)        %>

22)     <table width="600" border="0" align="center" cellpadding="0" cellspacing="0">

23)       <tr>

24)         <td height="40" colspan="2" align="center" valign="top"><div align="left"><font color="#000000" size="4" face="幼圆"><strong>请修改信息内容</strong></font></div></td>

25)       <td width="80">&nbsp;</td>

26)       </tr>

27)       <tr>

28)         <td width="64" height="341">&nbsp;</td>

29)         <td width="456" valign="top"><form name="form1" method="post" action="ch4-52.jsp">

30)             <table width="100%" height="323" border="0" cellspacing="0">

31)               <tr>

32)                 <td height="48" colspan="2" align="right" valign="middle">用户名:</td>

33)                 <td colspan="2" valign="middle"><%=name%>&nbsp;

34)                 <input name="name" type="hidden" id="name" value="<%=rs.getString("姓名")%>">

35)                 &nbsp;&nbsp;</td>

36)                 <td colspan="2" valign="middle"><font color="#0000FF" size="2">不能更改</font></td>

37)               </tr>

38)               <tr>

39)                 <td height="40" colspan="2" align="right" valign="middle">密码:</td>

40)                 <td colspan="2" valign="middle"><%=password%>&nbsp; <input name="password" type="hidden" id="password" value="<%=rs.getString("密码")%>"></td>

41)                 <td colspan="2" valign="middle"><font color="#0000FF" size="2">不能更改</font></td>

42)               </tr>

43)               <tr>

44)                 <td height="41" colspan="2" align="right" valign="middle">班级:</td>

45)                 <td colspan="4" valign="middle"> <input name="clas" type="text" id="clas" value="<%=rs.getString("班级")%>"></td>

46)               </tr>

47)               <tr>

48)                 <td height="41" colspan="2" align="right" valign="middle">学号:</td>

49)                 <td colspan="4" valign="middle"> <input name="na" type="text" id="na" value="<%=rs.getString("学号")%>"></td>

50)               </tr>

51)               <tr>

52)                 <td height="41" colspan="2" align="right" valign="middle">性别:</td>

53)                 <td colspan="4" valign="middle"> <input name="sex" type="text" id="sex" value="<%=rs.getString("性别")%>"></td>

54)               </tr>

55)               <tr>

56)                 <td height="42" colspan="2" align="right" valign="middle">E-mail</td>

57)                 <td colspan="4" valign="middle"> <input name="email" type="text" id="email" value="<%=rs.getString("Email")%>"></td>

58)               </tr>

59)               <tr>

60)                 <td width="96" height="42">&nbsp;</td>

61)                 <td colspan="2" valign="middle"> <input type="submit" name="Submit" value="修改"></td>

62)                 <td width="51">&nbsp;</td>

63)                 <td width="49" valign="middle"> <input type="reset" name="Submit2" value="重填"></td>

64)                 <td width="201">&nbsp;</td>

65)               </tr>

66)               <tr>

67)                 <td height="3"></td>

68)                 <td width="21"></td>

69)                 <td width="26"></td>

70)               </tr>

71)             </table>

72)           </form></td>

73)         <td>&nbsp;</td>

74)       </tr>

75)       <tr>

76)         <td height="50">&nbsp;</td>

77)         <td><div align="left"><a href="ch4-51.htm">返回修改</a></div></td>

78)         <td>&nbsp;</td>

79)       </tr>

80)     </table>

81)     <%rs.close();

82)     st.close();%>

83)     </body>

84)     </html>

◇-◇-◇-◇-◇-◇-◇-◇-◇-◇修改数据◇-◇-◇-◇-◇-◇-◇-◇-◇-◇

范例ch4-52.jsp

1)        <html>

2)        <head>

3)        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

4)        <title>修改数据</title>

5)        </head>

6)        <body bgcolor="#FFFFCC">

7)        <%@page  contentType="text/html;charset=gb2312" language="java" import="java.sql.*" %>

8)          <%

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

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

11)      String sex=request.getParameter("sex");

12)      String clas=request.getParameter("clas");

13)      String na=request.getParameter("na");

14)      String email=request.getParameter("email");

15)     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

16)     String url="jdbc:odbc:ch4";

17)     Connection con=DriverManager.getConnection(url,"","");

18)       if(sex.equals("")||clas.equals("")||na.equals("")||email.equals(""))

19)          {  out.print("不能将信息修改为空值!");

20)            return;}

21)          %>

22)       <%Statement stmt=con.createStatement();

23)      String sql="update st set 班级='"+clas+"',学号='"+na+"',性别='"+sex+"',Email='"+email+"' where 姓名='"+name+"' and 密码='"+password+"'";

24)      stmt.executeUpdate(sql);

25)     Statement st=con.createStatement();

26)     String strSql="select * from st where 姓名='"+name+"'";

27)     ResultSet rs=st.executeQuery(strSql);

28)      if(!rs.next())

29)      return;

30)     %>

31)     <p><font color="#000000" size="5" face="隶书">信息修改成功!</font></p>修改后的信息为:<p>

32)     <table  border="1" >

33)       <tr>

34)         <td width="30%"> <p align="right">班级:</td>

35)         <td width="70%"> <%out.print(rs.getString("班级"));%> </td>

36)       </tr>

37)       <tr>

38)         <td width="30%"> <p align="right">学号:</td>

39)         <td width="70%"> <%out.print(rs.getString("学号"));%> </td>

40)       </tr>

41)       <tr>

42)         <td width="30%"> <p align="right"> 姓名:</td>

43)         <td width="70%"> <%out.print(rs.getString("姓名"));%> </td>

44)       </tr>

45)       <tr>

46)         <td width="30%"> <p align="right">性别:</td>

47)         <td width="70%"> <%out.print(rs.getString("性别"));%> </td>

48)       </tr>

49)       <tr>

50)         <td width="30%"> <p align="right">密码:</td>

51)         <td width="70%"> <%out.print(rs.getString("密码"));%> </td>

52)       </tr>

53)       <tr>

54)         <td width="30%"> <p align="right">E-mail</td>

55)         <td width="70%"> <%out.print(rs.getString("email"));%>  </td>

56)       </tr>

57)     </table>

58)     <p align="left"><a href="ch4-main.htm">返回主页</a> </p>

59)     <p align="left"><a href="ch4-53.jsp">返回浏览修改</a></p>

60)       <%

61)       rs.close();

62)       st.close();

63)       stmt.close();

64)       %>

65)     </body>

66)     </html>

◇-◇-◇-◇-◇-◇-◇-◇-◇-◇浏览修改数据◇-◇-◇-◇-◇-◇-◇-◇-◇-◇

范例ch4-53.jsp

1)        <html>

2)        <head>

3)        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

4)        <title>浏览修改数据</title>

5)        <style type="text/css">

6)        body {   background-color: #FFFFCC;}

7)        </style></head>

8)        <body><p>

9)          <%@page contentType="text/html;charset=gb2312" import="java.sql.*"%>

10)       <%

11)          String DBDriver="sun.jdbc.odbc.JdbcOdbcDriver";   

12)          String ConnStr="jdbc:odbc:ch4";                          

13)          String sql="select * from st";

14)          String temp1,temp2,temp3,temp4,temp5,temp6;

15)                   Class.forName(DBDriver);

16)                   Connection conn=DriverManager.getConnection(ConnStr," "," ");

17)                   ResultSet rs;

18)                   Statement stmt=conn.createStatement();

19)                   rs=stmt.executeQuery(sql);

20)                   out.println("数据库中数据如下:<br>");

21)                   out.println("<table border=1><tr align=center><td>班级<td>学号<td>姓名<td>性别<td>密码<td>E-mail<td align=center>修改<tr>");

22)                   while(rs.next())

23)                   {

24)                        temp1=rs.getString(1);

25)                        temp2=rs.getString(2);

26)                        temp3=rs.getString(3);

27)                        temp4=rs.getString(4);

28)                        temp5=rs.getString(5);

29)                        temp6=rs.getString(6);

30)          out.print("<tr><td>"+temp1+"<td align=center>"+temp2+"<td align=center>" +temp3 +"<td align=center>" +temp4 +"<td align=center>" +temp5 +"<td align=center>"+temp6+"<td><a href='ch4-51.jsp?name="+temp3+"&password="+temp5+"'><em>修改</em></a><tr>");

31)                   }

32)                   rs.close();

33)                   stmt.close();

34)                   conn.close();

35)     %>

36)     </table>

37)     <p>&nbsp;</p>

38)     </body>

39)     </html>

二、  网页重点代码的分析

静态网页(输入修改对象)ch4-51.htm

ch4-51.htm:本范例的起始网页。网页的主体是一个表单(单独修改),让用户输入需要修改数据记录对应的用户名和密码,表单的action指向ch4-51.jsp

表单下面,有一个链接“浏览修改”的入口,指向ch4-53.jsp

这个网页很简单,不再作具体分析。需要说明的是,在实际的网站设计中,“单独修改”和“浏览修改”不会设计到同一个页面上。“单独修改”是针对用户使用的,必须通过验证用户名和密码,以避免资料被他人非法修改。“浏览修改”是提供给系统管理员使用的,属于后台管理的组成部分,应该有方便批量处理数据的能力。

提取修改对象数据,提供修改界面,ch4-51.jsp的代码分析:

这个动态网页提供用户修改数据的界面,由以下几个部分构成:

第一部分:            获得ch4-51.htm提交的数据。(第910行)

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

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

将用户提交的用户名和密码数据,赋值给JSP变量namepassword

第二部分:            链接数据库。(第1113行)

11)     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

12)     String url="jdbc:odbc:ch4";

13)     Connection con=DriverManager.getConnection(url,"","");

11行:加载JDBC-ODBC驱动;

12行:定义一个字符串url,指明数据源,为连接数据库进行准备;

13行:连接数据库。

需要说明的是,这里没有使用异常的抛出和捕捉机制,使得代码行非常简练。但是连接数据库的操作有误时,程序将被挂起。

第三部分:            从数据库表中提取需要修改的数据。(第1421行)

14)     Statement st=con.createStatement();

15)     String strSql="select * from st where 姓名='"+name+"' and 密码='"+password+"'";

16)     ResultSet rs=st.executeQuery(strSql);

17)      if (!rs.next())

18)       {out.print("用户名或密码输入错误!");%>

19)       <p align="center"><a href="ch4-51.htm">返回修改页面</a></p>

20)      <%return;}

21)        %>

14行:为运行SQL语句,准备一个对象st。(注意:这里的对象st和表st使用了同样的名称,但它们不是一回事。编制代码时,应注意避免这种情况发生)

15行:准备查询用的SQL语句,赋值给字符串变量strSql

         SQL语句是标准的复合条件查询语句,含义为,在st表中查询“姓名”、“密码”两个字段的值,都符合用户输入条件的数据记录。

16行:运行SQL语句,将符合条件的数据记录,放入结果集rs中。

1720行:拦截错误数据的代码。如果用户输入的用户名不存在,或者是密码错误,在SQL查询语句运行时,就找不到相应的数据记录,数据指针移动到最后,“!rs.next()”条件成立,程序运行第1820行,提示用户返回重新输入用户名和密码。

第四部分:            用户修改数据界面。(第2280行)。

采用方法是,将查询获得的数据,放入一个表单,使用户能够修改,修改后提交给ch4-52.jsp更新数据库的记录。具体的设计方法是,在Dreamweaver图形设计方式下,依据数据库表中的字段项目,在前三部分代码行之后,创建一个表单,如图466所示:

 

466

每个表单项的属性设置,如表4-2所示:

 

Type

(类型)

Name

(表单项名称)

Value

(初始值)

用户名:

hidden(隐藏)

name

<%=rs.getString("姓名")%>

密码:

hidden(隐藏)

password

<%=rs.getString("密码")%>

班级:

text (文本)

clas

<%=rs.getString("班级")%>

学号:

text (文本)

na

<%=rs.getString("学号")%>

性别:

text (文本)

sex

<%=rs.getString("性别")%>

E-mail

text (文本)

email

<%=rs.getString("Email")%>

4-2

每个表单项的初始值,设定为从结果集rs中读取的对应数据(也就是数据库表中的字段值)。有初始值的表单项,运行时显示初始值,这样就把需要修改的数据,从数据库表中提取出来,放置到了表单中。允许用户修改的项目(班级、学号、性别、E-mail),将表单项的类型设置为text(文本框),不允许用户修改的项目(用户名、密码),将表单项的类型设置为hidden(隐藏域)。表单中文本框的数据,可以随意修改。而隐藏域中的数据,屏幕不显示,无法进行改动。

为了整齐美观,将表单放置在表格当中。又考虑到,不允许用户修改的项目(用户名、密码)在运行时屏幕不显示,会造成用户操作不便。于是在隐藏域所在单元格中,添加了可显示而不能修改的对应变量。第33行的<%=name%> 和第40行的<%=password%>

表单的action指向ch4-52.jsp

第五部分:            关闭rsst两个对象。(第8182行)

81)     <%rs.close();

82)     st.close();%>

这个动态网页,在使用Dreamweaver编制设计的过程中,需要在“代码”和“设计”两种方式下切换几次。第四部分的表单,主要在图形“设计”方式下进行,而33行的<%=name%> 40行的<%=password%>的插入,又只能在“代码”方式下进行

更新修改数据库数据,ch4-52jsp的代码分析:

这个动态网页,接收ch4-51.jsp提交的修改数据,并用这些数据更新修改数据库表中的记录。修改完成后,再从数据库读取更新后的数据记录,送到屏幕显示。具体构成如下:

第一部分:            获得ch4-51.jsp提交的修改数据(第914行)

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

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

11)     String sex=request.getParameter("sex");

12)     String clas=request.getParameter("clas");

13)     String na=request.getParameter("na");

14)     String email=request.getParameter("email");

第二部分:            连接数据库。(第1517行)

15)     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

16)     String url="jdbc:odbc:ch4";

17)     Connection con=DriverManager.getConnection(url,"","");

第三部分:            拦截非法修改的数据(1820行)

18)     if(sex.equals("")||clas.equals("")||na.equals("")||email.equals(""))

19)          {  out.print("不能将信息修改为空值!");

20)            return;}

21)        %>

18行,判断用户在修改数据时,如果将数据删除,形成了空值,就执行第1920行代码,提示用户“不能将信息修改为空值”

第四部分:            更新修改数据库表中的记录2224行)

22)       <%Statement stmt=con.createStatement();

23)      String sql=”update st set 班级=’”+clas+”’,学号=’”+na+”’,性别=’”+sex+”’,Email=’”+email+”’ where 姓名=’”+name+”’ and 密码=’”+password+”’”;

24)      stmt.executeUpdate(sql);

22行,为运行SQL语句,创建一个对象stmt

23行,将更新数据库表中记录的SQL语句,赋值给字符串变量sql

          语句的含义为,更新st表中“姓名”和“密码”字段的值都符合条件的数据记录,用clas的值更新“班级”字段,用na的值更新“学号”字段,用sex的值更新“性别”字段,用email的值更新“Email”字段。

24行,运行SQL语句,更新修改数据库

第五部分:            从数据库提取修改后的数据(第2530

25)     Statement st=con.createStatement();

26)     String strSql="select * from st where 姓名='"+name+"'";

27)     ResultSet rs=st.executeQuery(strSql);

28)      if(!rs.next())

29)      return;

30)     %>

25行,为运行SQL语句,创建一个对象st

26行,将查询被修改数据记录的SQL语句,赋值给字符串变量strSql

27行,运行SQL语句,将查询的结果放入结果集rs

2829行,查找完成后返回,停止语句运行,避免程序挂起出错。

第六部分:            从结果集中,提取被修改数据记录,送到屏幕显示(第3157

这部分在Dreamweaver图形“设计”方式下进行,创建一个六行两列的表格,第一列是每个字段的名称,第二列是从结果集rs中提取的对应数据,见图4-67所示:

 

4-67

第二列添入对应数据,要切换到Dreamweaver“设计”方式下进行,具体添入的数据,在代码的第35行、39行、43行、47行、5155行。

35)     <td width="70%"> <%out.print(rs.getString("班级"));%> </td>

39)     <td width="70%"> <%out.print(rs.getString("学号"));%> </td>

43)     <td width="70%"> <%out.print(rs.getString("姓名"));%> </td>

47)     <td width="70%"> <%out.print(rs.getString("性别"));%> </td>

51)     <td width="70%"> <%out.print(rs.getString("密码"));%> </td>

55)     <td width="70%"> <%out.print(rs.getString("email"));%> </td>

35行的代码<%out.print(rs.getString("班级"));%>是在对应的单元格显示输出结果集rs中“班级”的内容。其他各行的作用等同。

<%out.print(rs.getString("班级"));%>也可以书写成<%=rs.getString("班级")%>,这是前面范例介绍过两种不同书写方式的JSP语句,它们的作用相同。

第七部分:            关闭rsststmt三个对象(第6064行)

这里需要说明,前面范例的动态网页连接数据库后,或者只进行读取操作,查询数据;或者只进行写操作,写入数据。而在这个动态网页中,连接数据库后,先进行写操作,更新数据;然后又进行读操作,查询修改后的数据。连接一次,进行两种操作。这种代码在编写时要注意,要分别创建写操作对象stmt(第22行)和读操作对象st(第25行),两个对象不能重名,而且都产生于(第17行的)连接对象con

 

浏览修改据,ch4-53jsp的代码分析:

这个动态网页演示时,可以方便的选择任何表中一条记录,点击“修改”,无需输入“用户名”和“密码”,直接进入修改界面。如果仔细观察网页,不难发现,它和前面查询全部数据的范例网页ch4-32.jsp基本相同,只是在每一条数据记录后面,多了一个“修改”链接。它实际就是查询全部数据ch4-32.jsp网页的简单变形。

在代码上也是添加了一些新代码,使之能够方便进入对应数据记录的修改界面。另外这个网页,去掉了异常的抛出和捕捉的处理,删去了相关的代码。添加的新代码体现在代码行的第21行和第30行:

21)   out.println("<table border=1><tr align=center><td>班级<td>学号<td>姓名<td>性别<td>密码<td>E-mail<td align=center>修改<tr>");

30)out.print("<tr><td>"+temp1+"<td align=center>"+temp2+"<td align=center>"+temp3+"<td align=center>"+temp4+"<td align=center>"+temp5+"<td align=center>"+temp6+"<td><a href='ch4-51.jsp?name="+temp3+"&password="+temp5+"'><em>修改</em></a><tr>");

21行:显示输出表格的首行,只在原来代码的基础上添加了一个单元格,单元格中添加了“修改”两个汉字,代码是<td align=center>修改

30行:显示输出表中每一条记录,并在数据记录后面添加一个“修改”链接,添加的代码是<td><a href='ch4-51.jsp?name="+temp3+"&password="+temp5+"'><em>修改</em></a>被添加代码的含义是,链接到ch4-51.jsp,同时将temp3(姓名)的数值和temp5(密码)的数值也传送过去。temp3传给表单项nametemp5传给表单项password 。所有ch4-51.jsp就能自动读取到,需要获得的数据了。这实际上是JSP的输入语句,注意它的格式,在被输入的文件名后,要有一个“?”,之后是该文件获得数据语句中的表单项名称,再之后的“=”等号后是传送的具体数据。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值