📄
字号:
password="";
if(!(session.isNew()))
{logname=request.getParameter("logname");
if(logname==null)
{logname="";
}
logname=codeString(logname);
password=request.getParameter("password");
if(password==null)
{password="";
}
password=codeString(password);
}
%>
<%
if(!(logname.equals("")))
{
%>
<jsp:setProperty name= "login" property="logname" value="<%=logname%>" />
<jsp:setProperty name= "login" property="password" value="<%=password%>" />
<%
message=login.getMessage(); //获取返回的验证信息。
if(message==null)
{message="";
}
}
%>
<% if(!(session.isNew()))
{ if(message.equals("ok"))
{String meb=response.encodeURL("showMember.jsp");
response.sendRedirect(meb);
}
else
{out.print(message);
}
}
%>
</Body>
</HTML>
浏览会员页面使用的beans
PageNumber.java:
package tom.jiafei;
public class PageNumber
{ int rowCount=1, //总的记录数。
pageSize=1, //每页显示的记录数。
showPage=1, //设置欲显示的页码数。
pageCount=1; //分页之后的总页数。
public void setRowCount(int n)
{ rowCount=n;
}
public int getRowCount()
{ return rowCount;
}
public void setPageCount(int r,int p)
{ rowCount=r;
pageSize=p;
int n=(rowCount%pageSize)==0?(rowCount/pageSize):(rowCount/pageSize+1) ;
pageCount=n;
}
public int getPageCount()
{return pageCount;
}
public void setShowPage(int n)
{showPage=n;
}
public int getShowPage()
{ return showPage;
}
public void setPageSize(int n)
{ pageSize=n;
}
public int getPageSize()
{ return pageSize;
}
}
浏览会员页面(效果如图7.8、7.9所示)
showMemeber.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<%@ page import="tom.jiafei.Login" %>
<%@ page import="tom.jiafei.PageNumber" %>
<%@ page import="java.io.*" %>
<jsp:useBean id="handlePage" class="tom.jiafei.PageNumber" scope="session" >
</jsp:useBean>
<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" %>
<P> 会员列表:
<%! //声明一个共享的连接对象:
Connection con=null;
//显示数据库记录的方法:
public void showList(ResultSet rs,javax.servlet.jsp.JspWriter out,int n,String find)
{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>"+"email"+"</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");
String email=rs.getString("email");
out.print("<TR>");
out.print("<TD >"+logname+"</TD>");
out.print("<TD >"+rs.getString("sex")+"</TD>");
out.print("<TD >"+email+"</TD>");
//在每个会员的后面显示一个表单,该表单将内容提交到find.jsp,
//以便查看该会员的详细信息:
String s1="<Form action="+find+" method=get>";
String s2="<input type=hidden name=logname value="+logname+">";
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);
rs=sql.executeQuery("SELECT * FROM member"); //返回可滚动的结果集。
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);
rs=sql.executeQuery("SELECT * FROM member"); //返回可滚动的结果集。
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);
}
}
}
%>
<%--选择显示某页的表单 --%>
<%String str=response.encodeURL("showMember.jsp");
String find=response.encodeURL("find.jsp");
%>
<Form action="<%=str%>" 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(),find); //显示该页的内容。
%>
</FONt>
</BODY>
</HTML>
查找会员页面使用的beans
HandleMessage.java:
package tom.jiafei;
import java.io.*;
public class HandleMessage
{ String content=null;
public void setContent(String s)
{content=s;
}
//获取属性content的值,为了能显示HTML或JSP源文件,需进行流的处理技术:
public String getContent()
{ try{ StringReader in=new StringReader(content) ;//指向字符串的字符流。
PushbackReader push=new PushbackReader(in);
StringBuffer stringbuffer=new StringBuffer();
int c;
char b[]=new char[1];
while ( (c=push.read(b,0,1))!=-1)//读取1个字符放入字符数组b。
{ String s=new String(b);
if(s.equals("<")) //回压的条件
{ push.unread('&');
push.read(b,0,1); //push读出被回压的字符字节,放入数组b.
stringbuffer.append(new String(b));
push.unread('L');
push.read(b,0,1); //push读出被回压的字符字节,放入数组b.
stringbuffer.append(new String(b));
push.unread('T');
push.read(b,0,1); //push读出被回压的字符字节,放入数组b.
stringbuffer.append(new String(b));
}
else if(s.equals(">")) //回压的条件
{ push.unread('&');
push.read(b,0,1); //push读出被回压的字符字节,放入数组b.
stringbuffer.append(new String(b));
push.unread('G');
push.read(b,0,1); //push读出被回压的字符字节,放入数组b.
stringbuffer.append(new String(b));
push.unread('T');
push.read(b,0,1); //push读出被回压的字符字节,放入数组b.
stringbuffer.append(new String(b));
}
else if(s.equals("\n"))
{ stringbuffer.append("<BR>");
}
else
{ stringbuffer.append(s);
}
}
push.close();
in.close();
return content=new String(stringbuffer);
}
catch(IOException e)
{return content=new String("不能读取内容");
}
}
}
查找会员页面(效果如图7.10所示)
find.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<%@ page import="tom.jiafei.Login" %>
<%@ page import="tom.jiafei.HandleMessage" %>
<jsp:useBean id="login" class="tom.jiafei.Login" scope="session" >
</jsp:useBean>
<jsp:useBean id="handle" class="tom.jiafei.HandleMessage" scope="page" >
</jsp:useBean>
<%!//处理字符串的一个常用方法:
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;
}
%>
<% //如果客户直接进入该页面将被转向登录页面。
if(session.isNew())
{response.sendRedirect("login.jsp");
}
//如果没有成功登录将被转向登录页面
String success=login.getSuccess();
if(success==null)
{success="";
}
if(!(success.equals("ok")))
{response.sendRedirect("login.jsp");
}
%>
<% //获取本页面或showMember页面表单提交的会员名字:
String logname=request.getParameter("logname");
if(logname==null)
{logname="";
}
logname=getString(logname);
%>
<HTML>
<BODY bgcolor=pink ><Font size=1>
<%@ include file="head.txt" %>
<%String find=response.encodeURL("find.jsp");
%>
<FORM action="<%=find%>" Method="post">
<BR>输入你想浏览的会员的名字:
<BR><Input type=text name="logname" >
<BR><Input type=submit name="g" value="提交">
</FORM>
<% try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException event){}
//验证身份:
Connection con=null;
Statement sql=null;
ResultSet rs=null;
boolean modify=false;
try{ con=DriverManager.getConnection("jdbc:odbc:friend","","");
sql=con.createStatement();
String condition="SELECT * FROM member WHERE logname = "+"'"+logname+"'";
rs=sql.executeQuery(condition);
while(rs.next())
{ StringBuffer str=new StringBuffer();
String 会员名=rs.getString("logname"),
sex=rs.getString("sex"),
age=rs.getString("age"),
email=rs.getString("email"),
phone=rs.getString("phone"),
address=rs.getString("address"),
message=rs.getString("message");
str.append("会员名字:"+会员名+"\n");
str.append("性别:"+sex+"\n");
str.append("年龄:"+age+"\n");
str.append("email:"+email+"\n");
str.append("电话:"+phone+"\n");
str.append("地址:"+address+"\n");
str.append("主要简历和交友条件:"+message+"\n");
//为了能显示会员信息中的原始HTML标记信息,信息做回压流处理:
String content=new String(str);
handle.setContent(content);
out.print(handle.getContent());
}
}
catch(SQLException e1)
{ out.print("<BR>查找失败");
}
%>
</FONT>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -