?? 第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 + -