📄 第7章(2).txt
字号:
public void showList(ResultSet rs,javax.servlet.jsp.JspWriter out,int n,tom.jiafei.HandleMessage h)
{try
{
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=50>"+"<Font size=1>"+"会员名"+"</FONT>");
out.print("<TH width=70>"+"<Font size=1>"+"留言信息"+"</FONT>");
out.print("<TH width=70>"+"<Font size=1>"+"留言时间"+"</FONT>");
out.print("<TH width=70>"+"<Font size=1>"+"删除留言"+"</FONT>");
out.print("</TR>");
for(int i=1;i<=n;i++)
{
String logname=rs.getString("logname");
if(logname==null)
{logname="";
}
String message=rs.getString("message");
if(message==null)
{message="";
}
String time =rs.getString("time"); //获取该信息的留言时间
if(time==null)
{time="";
}
//为了能显示原始的HTML或JSP文件格式的信息,需对信息进行流处理:
h.setContent(message);
message=h.getContent();
//将信息显示在表格中:
out.print("<TR>");
out.print("<TD >"+logname+"</TD>");
out.print("<TD >"+message+"</TD>");
out.print("<TD >"+time+"</TD>");
//添加一个删除该信息的表单:
String s1="<Form action=delete.jsp method=post>";
String s2="<input type=hidden name=time value ="+time+">";
String s3="<input type=submit value=删除该留言></FORM> ";
String s=s1+s2+s3;
out.print("<TD >"+s+"</TD>");
out.print("</TR>") ;
rs.next();
}
out.print("</Table>");
}
catch(Exception e1) {}
}
%>
<% Statement sql=null;
ResultSet rs=null;
int rowCount=0; //总的记录数。
String logname="";
//第一个客户负责建立连接对象:
if(con==null)
{ try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{out.print(e);
}
try
{con=DriverManager.getConnection("jdbc:odbc:friend","","");
sql=
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
String s=login.getLogname();
if(s==null)
{s="";
}
//得到自己的私人留言:
String condition="SELECT * FROM secretwordpad WHERE logname = "+"'"+s+"'";
rs=sql.executeQuery(condition); //返回可滚动的结果集。
rs.last(); //将游标移动到最后一行。
int number=rs.getRow(); //获取最后一行的行号。
rowCount=number; //获取记录数。
handlePage.setPageSize(3); //设置每页显示的记录数。
handlePage.setShowPage(1); //设置欲显示的页码数。
handlePage.setPageCount(rowCount,handlePage.getPageSize()); //计算总页数。
out.print("共有"+handlePage.getPageCount()+"页,");
out.print("每页显示"+ handlePage.getPageSize()+"条记录");
}
catch(SQLException e)
{out.print(e);
}
}
//其它客户通过同步块使用这个连接:
else
{ synchronized(con)
{ try { sql=
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
String s=login.getLogname();
if(s==null)
{s="";
}
//得到自己的私人留言:
String condition="SELECT * FROM secretwordpad WHERE logname = "+"'"+s+"'";
rs=sql.executeQuery(condition); //返回可滚动的结果集。
rs.last(); //将游标移动到最后一行。
int number=rs.getRow(); //获取最后一行的行号。
rowCount=number; //获取记录数。
handlePage.setPageSize(3); //设置每页显示的记录数。
handlePage.setShowPage(1); //设置欲显示的页码数。
handlePage.setPageCount(rowCount,handlePage.getPageSize()); //计算总页数。
out.print("共有"+handlePage.getPageCount()+"页,");
out.print("每页显示"+ handlePage.getPageSize()+"条记录");
}
catch(SQLException e)
{out.print(e);
}
catch(IOException ee ){}
}
}
%>
<%--选择显示某页的表单 --%>
<Form action="" method="post" >
输入欲要显示的页<Input type="text" name="ok" value="1">
<Input type="submit" value="submit">
</FORM>
<% //获取表单提交的信息:
String s=request.getParameter("ok");
if(s==null)
{s="1";
}
int m=Integer.parseInt(s);
handlePage.setShowPage(m);
out.print("目前显示第"+handlePage.getShowPage()+"页");
int n=handlePage.getShowPage();
//将游标移到:
rs.absolute((n-1)*handlePage.getPageSize()+1);
showList(rs,out,handlePage.getPageSize(),handle); //显示该页的内容。
%>
</FONt>
</BODY>
</HTML>
删除私人留言的页面
delete.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<%@ page import="tom.jiafei.Login" %>
<jsp:useBean id="login" class="tom.jiafei.Login" scope="session" >
</jsp:useBean>
<% //如果客户直接进入该页面将被转向登录页面。
if(session.isNew())
{response.sendRedirect("login.jsp");
}
//如果没有成功登录将被转向登录页面
String success=login.getSuccess();
if(success==null)
{success="";
}
if(!(success.equals("ok")))
{response.sendRedirect("login.jsp");
}
%>
<HTML>
<BODY ><Font size=1>
<%@ include file="head.txt" %>
<% //获取提交的信息的时间:
String time=request.getParameter("time");
if(time==null)
{time="";
}
byte b[]=time.getBytes("ISO-8859-1");
time=new String(b);
Connection con=null;
Statement sql=null;
ResultSet rs=null;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException event){}
try
{con=DriverManager.getConnection("jdbc:odbc:friend","","");
sql=con.createStatement();
//删除操作:
String s=login.getLogname();
String condition1=
"DELETE FROM secretwordpad WHERE logname ="+"'"+s+"'";
String condition2=
"AND time ="+"'"+time+"'";
String condition=condition1+condition2;
sql.executeUpdate(condition);
out.print("删除了该留言");
con.close();
}
catch(SQLException event)
{out.print(""+event);
}
%>
</BODY>
</HTML>
修改密码页面
modifyPassword.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<%@ page import="tom.jiafei.Login" %>
<jsp:useBean id="login" class="tom.jiafei.Login" scope="session" >
</jsp:useBean>
<% //如果客户直接进入该页面将被转向登录页面。
if(session.isNew())
{response.sendRedirect("login.jsp");
}
//如果没有成功登录将被转向登录页面
String success=login.getSuccess();
if(success==null)
{success="";
}
if(!(success.equals("ok")))
{response.sendRedirect("login.jsp");
}
%>
<HTML>
<BODY bgcolor=cyan ><Font size=1>
<%@ include file="head.txt" %>
<P>修改密码,密码长度不能超过30个字符:
<%String str=response.encodeURL("modifyPassword.jsp");
%>
<FORM action="<%=str%>" Method="post">
<BR>输入您的会员名:
<BR><Input type=text name="logname" value="<%=login.getLogname()%>" >
<BR>输入您的密码:
<BR><Input type=password name="password">
<BR>输入您的新的密码:
<BR><Input type=text name="newPassword1">
<BR>请再输入一次新密码:
<BR><Input type=text name="newPassword2">
<BR><Input type=submit name="g" value="提交">
</FORM>
<%!//处理字符串的一个常用方法:
public String getString(String s)
{ if(s==null) s="";
try {byte a[]=s.getBytes("ISO-8859-1");
s=new String(a);
}
catch(Exception e)
{ }
return s;
}
%>
<% //获取提交的会员名:
String logname=request.getParameter("logname");
logname=getString(logname);
//获取提交的密码:
String password=request.getParameter("password");
password=getString(password);
//获取提交的新密码:
String newPassword1=request.getParameter("newPassword1");
newPassword1=getString(newPassword1);
//获取提交的新密码:
String newPassword2=request.getParameter("newPassword2");
newPassword2=getString(newPassword2);
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException event){}
//验证身份:
Connection con=null;
Statement sql=null;
boolean modify=false;
boolean ifEquals=false;
ifEquals=(newPassword1.equals(newPassword2))&&(newPassword1.length()<=30);
if(ifEquals==true)
{ try{ con=DriverManager.getConnection("jdbc:odbc:friend","","");
sql=con.createStatement();
boolean bo1=logname.equals(login.getLogname()),
bo2=password.equals(login.getPassword());
if(bo1&&bo2)
{//修改密码:
modify=true;
out.print("您的密码已经更新");
String c="UPDATE member SET password = "+"'"+newPassword1+"'"+
" WHERE logname = "+"'"+logname+"'";
sql.executeUpdate(c);
}
con.close();
}
catch(SQLException e1) {}
}
else
{ out.print("你两次输入的密码不一致或长度过大");
}
if(modify==false&&ifEquals==true)
{ out.print("<BR>您没有输入密码帐号或<BR>您输入的帐号或密码不正确"+logname+":"+password);
}
%>
</FONT>
</BODY>
</HTML>
修改个人信息页面
ModifyMessage.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<%@ page import="tom.jiafei.Login" %>
<jsp:useBean id="login" class="tom.jiafei.Login" scope="session" >
</jsp:useBean>
<% //如果客户直接进入该页面将被转向登录页面。
if(session.isNew())
{response.sendRedirect("login.jsp");
}
//如果没有成功登录将被转向登录页面
String success=login.getSuccess();
if(success==null)
{success="";
}
if(!(success.equals("ok")))
{response.sendRedirect("login.jsp");
}
%>
<HTML>
<BODY bgcolor=pink ><Font size=1>
<%@ include file="head.txt" %>
<%String str=response.encodeURL("modifyMessage.jsp");
%>
<P>修改您的基本信息:性别、年龄、电话、电子邮件、地址、简历。
<FORM action="<%=str%>" Method="post">
<BR>输入您的会员名:
<BR><Input type=text name="logname" value="<%=login.getLogname()%>" >
<BR>输入您的密码:
<BR><Input type=password name="password">
<BR>选择新的性别
<Input type=radio name="sex" checked="o" value="男">男
<Input type=radio name="sex" value="女">女
<BR>输入新的年龄<Input type=text name="age" >*
<BR>输入新的电话<Input type=text name="phone" >*
<BR>输入新的email<Input type=text name="email" >*
<BR>输入新的地址<Input type=text name="address" >*
<BR>输入新的简历和交友条件:
<BR><TextArea name="message" Rows="4" Cols="32">
</TextArea>
<BR><Input type=submit name="g" value="提交">
</FORM>
<%!//处理字符串的一个常用方法:
public String getString(String s)
{ if(s==null) s="?";
try {byte a[]=s.getBytes("ISO-8859-1");
s=new String(a);
}
catch(Exception e)
{s="?";
}
return s;
}
%>
<% //获取提交的用户名:
String logname=request.getParameter("logname");
logname=getString(logname);
//获取提交的密码:
String password=request.getParameter("password");
password=getString(password);
//获取新的性别:
String sex=request.getParameter("sex");
sex=getString(sex);
String age=request.getParameter("age");
age=getString(age);
//获取新email:
String email=request.getParameter("email");
email=getString(email);
//获取新电话:
String phone=request.getParameter("phone");
phone=getString(phone);
//获取新地址:
String address=request.getParameter("address");
address=getString(address);
String message=request.getParameter("message");
message=getString(message);
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException event){}
//验证身份:
Connection con=null;
Statement sql=null;
boolean modify=false;
try{ con=DriverManager.getConnection("jdbc:odbc:friend","","");
sql=con.createStatement();
boolean bo1=logname.equals(login.getLogname()),
bo2=password.equals(login.getPassword());
if(bo1&&bo2)
{//修改信息:
String c1="UPDATE member SET sex = "+"'"+sex+"'"+
" WHERE logname = "+"'"+logname+"'";
String c2="UPDATE member SET age = "+"'"+age+"'"+
" WHERE logname = "+"'"+logname+"'";
String c3="UPDATE member SET email = "+"'"+email+"'"+
" WHERE logname = "+"'"+logname+"'";
String c4="UPDATE member SET phone = "+"'"+phone+"'"+
" WHERE logname = "+"'"+logname+"'";
String c5="UPDATE member SET address = "+"'"+address+"'"+
" WHERE logname = "+"'"+logname+"'";
String c6="UPDATE member SET message = "+"'"+message+"'"+
" WHERE logname = "+"'"+logname+"'";
sql.executeUpdate(c1);
sql.executeUpdate(c2);
sql.executeUpdate(c3);
sql.executeUpdate(c4);
sql.executeUpdate(c5);
sql.executeUpdate(c6);
out.print("<BR>您的信息已经更新");
}
else
{out.print("<BR>您还没有输入密码或您输入的密码或用户名有错误");
}
con.close();
}
catch(SQLException e1)
{ out.print("<BR>更新失败");
}
%>
</FONT>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -