📄 index.jsp
字号:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.util.*,com.alumni.bean.*" buffer="512kb"%>
<jsp:useBean id="dbConn" scope="page" class="com.alumni.bean.DBConnection"/>
<%
//驱动数据库
Connection conn=null;
Statement stmt=null;
ResultSet userInfo=null;
ResultSet subjectInfo=null;
ResultSet picRs=null;
ResultSet totalUserInfo=null;
//保存用户登陆的信息
String loginUserClass=null;
String loginUsername=null;
String loginUserPassword=null;
String loginRealname=null;
String loginHead=null;
String loginExp=null;
String loginTotalPub=null;
String loginTotalVote=null;
String loginTotalLogin=null;
String loginUserID=null;
//初始化总在线人数
int totalOnline=0;
Hashtable list=null;
Enumeration enList=null;
//连接到数据库
conn=dbConn.getConnectionToAccess(application.getRealPath("/db/alumni.mdb"));
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
//获得在线人员列表
list=(Hashtable)application.getAttribute("onlineList");
//list不存在就生成一个空的Hashtable,并添加到application中
if(list==null)
{
list=new Hashtable();
application.setAttribute("onlineList",list);
}
//是否已经登陆
boolean hasLogin=false;
//是否找到COOKIE
boolean hasCookie=false;
/*************************************************************************************************
处理登陆的代码 START
*************************************************************************************************/
Boolean bo=(Boolean)session.getAttribute("hasLogin");
if(bo==null||bo.booleanValue()==false)
{
hasLogin=false;
}
else
{
hasLogin=true;
}
if(hasLogin)
{
//如果该用户是从登陆界面登陆成功
//读取用户信息
loginUsername=(String)session.getAttribute("username");
loginUserID=(String)session.getAttribute("userID");
loginUserClass=(String)session.getAttribute("adminClass");
String userString="SELECT * FROM USERINFO WHERE ID="+loginUserID;
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
userInfo=stmt.executeQuery(userString);
userInfo.next();
loginRealname=userInfo.getString("REALNAME");
loginHead=userInfo.getString("HEAD");
loginExp=userInfo.getString("EXP");
loginTotalPub=userInfo.getString("TOTAL_PUBLISH");
loginTotalVote=userInfo.getString("TOTAL_VOTE");
loginTotalLogin=userInfo.getString("TOTAL_LOGIN");
}
else
{
//如果用户没有从登陆界面登陆,或登陆失败
//查看是否有COOKIE,有则使用COOKIE登陆
Cookie[] cookies=request.getCookies();
//查找cookie的值,获取用户名和密码
//查到COOLKIE
if(cookies!=null)
{
for(int i=0;i<cookies.length;i++)
{
Cookie c=cookies[i];
if(c.getName().equals("alumniID"))
{
loginUserID=(String)c.getValue();
}
if(c.getName().equals("alumniPassword"))
{
loginUserPassword=(String)c.getValue();
}
}
}
if(loginUserID!=null&&loginUserPassword!=null)
{
hasCookie=true;
}
else
{
hasCookie=false;
}
if(hasCookie)
{
//读取COOKIE的值后自动登陆
String sql="SELECT * FROM USERINFO WHERE ID="+loginUserID+" AND PASSWORD='"+loginUserPassword+"'";
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
userInfo=stmt.executeQuery(sql);
userInfo.next();
//读取记录
loginUsername=userInfo.getString("USERNAME");
loginUserClass=userInfo.getString("ADMIN_CLASS");
loginRealname=userInfo.getString("REALNAME");
loginHead=userInfo.getString("HEAD");
loginExp=userInfo.getString("EXP");
loginTotalPub=userInfo.getString("TOTAL_PUBLISH");
loginTotalVote=userInfo.getString("TOTAL_VOTE");
loginTotalLogin=userInfo.getString("TOTAL_LOGIN");
//先删除先前登陆的信息
list=(Hashtable)application.getAttribute("onlineList");
enList=list.elements();
while(enList.hasMoreElements())
{
HttpSession hs=(HttpSession)enList.nextElement();
String un=(String)hs.getAttribute("username");
if(un.equals(loginUsername))
{
hs.invalidate();
break;
}
}
session=request.getSession(true);
SessionListener listener=new SessionListener(application);
session.setAttribute("username",loginUsername);
session.setAttribute("hasLogin",new Boolean(true));
session.setAttribute("userID",loginUserID);
session.setAttribute("adminClass",loginUserClass);
//绑定SESSION属性接口,当SESSION发生变化时自动调用
session.setAttribute("listener",listener);
stmt.executeUpdate("UPDATE USERINFO SET TOTAL_LOGIN=TOTAL_LOGIN+1 WHERE ID="+loginUserID);
stmt.executeUpdate("UPDATE USERINFO SET EXP=EXP+1 WHERE ID="+loginUserID);
hasLogin=true;
}
else
{
//未查到COOKIE
//则该用户是访客
loginUsername="访客";
loginUserID="0";
loginHead="/image/login/not_login.gif";
session=request.getSession(true);
SessionListener listener=new SessionListener(application);
session.setAttribute("username",loginUsername);
session.setAttribute("listener",listener);
hasLogin=false;
}
}
/*************************************************************************************************
处理登陆的代码 END
*************************************************************************************************/
//读取所有注册的人员
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
totalUserInfo=stmt.executeQuery("SELECT * FROM USERINFO ORDER BY ID");
//读取所有发言记录
//获取当前页,默认为第1页,默认每页显示10条记录
String getPage=(String)request.getParameter("page");
String getRows=(String)request.getParameter("rows");
int currentPage=0;
int rows=0;
if(getPage!=null)
{
currentPage=Integer.parseInt(getPage);
}
else
{
currentPage=1;
}
if(getRows!=null)
{
rows=Integer.parseInt(getRows);
}
else
{
rows=10;
}
String sqlSubject="SELECT S.ID,S.CONTENT,S.STATE,S.MOOD,S.PUB_DATE,U.ID,U.USERNAME,U.EMAIL,U.REALNAME,U.HEAD,U.QQ,U.MSN,U.EXP,U.REG_DATE,U.ADMIN_CLASS,U.TOTAL_PUBLISH,U.TOTAL_VOTE,U.TOTAL_LOGIN FROM SUBJECT AS S LEFT JOIN USERINFO AS U ON S.USER_ID=U.ID ORDER BY S.STATE,S.PUB_DATE DESC";
ResultSetController rsc=new ResultSetController();
rsc.setConnectionObject(conn);
rsc.setQueryString(sqlSubject);
rsc.setCurrentPageNum(currentPage);
rsc.setRowsPerPage(rows);
rsc.run();
int totalCounts=rsc.getTotalCounts();
int currentPageNum=rsc.getCurrentPageNum();
int rowsPerPage=rsc.getRowsPerPage();
int totalPages=rsc.getTotalPages();
//读取所有上传的图片
String sqlPic="SELECT * FROM UPLOADPIC";
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
picRs=stmt.executeQuery(sqlPic);
//获取所有在线名单的集合,准备输出
totalOnline=list.size();
enList=list.elements();
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>上海师范大学校友录</title>
<link href="css/index.css" rel="stylesheet" type="text/css">
<script language="javascript" language="javascript" type="text/javascript" src="js/index.js"></script>
</head>
<body>
<jsp:include page="include/top.htm"/>
<table width="95%" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#000000">
<tr>
<td bgcolor="#99cc66">在线统计:当前在线人数:<%=totalOnline%>人<a name="top"></a></td>
</tr>
<tr>
<td bgcolor="#e7e7e7">
<%
while(enList.hasMoreElements())
{
HttpSession se=(HttpSession)enList.nextElement();
out.print("<img src='image/index/guest.gif' border=0 width='12' height='11'> ");
out.print(se.getAttribute("username").toString());
out.print(" ");
}
%>
</td>
</tr>
</table>
<br>
<table width="95%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#000000">
<tr>
<td colspan="3" bgcolor="#99cc66">用户信息:</td>
</tr>
<tr>
<td width="100" rowspan="2" align="center" valign="middle" bgcolor="#e7e7e7">
<%
if(loginUsername.equals("访客"))
{
out.println("<img src='image/login/not_login.gif' width='100' height='58' border='0'>");
}
else
{
out.println("<img src='"+loginHead+"' width=90 height=90 border=0>");
}
%>
</td>
<td height="20" valign="middle" bgcolor="#e7e7e7">
<%
if(!loginUsername.equals("访客"))
{
out.print("欢迎<a title='修改个人信息' href='userinfo.jsp?uid="+loginUserID+"'><strong><font color='red'>"+loginUsername+"</font></strong></a>登陆我的校友录! ");
out.print("您目前的经验值为<strong><font color='red'>"+loginExp+"</font></strong>,总发言为<strong><font color='red'>"+loginTotalPub+"</font></strong>,有您发起的投票为<strong><font color='red'>"+loginTotalVote+"</font></strong>,总登陆次数为<strong><font color='red'>"+loginTotalLogin+"</font></strong>次");
}
else
{
out.print("您还未登陆,目前还不能发言,请先 <a href='login.jsp' target='_self'>登陆</a> 或 <a href='register.jsp' target='_self'>注册</a> ......");
}
%></td>
<td width="88" rowspan="2" align="center" valign="middle" bgcolor="#e7e7e7">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="82" height="82" align="right">
<param name="flash_component" value="ImageViewer.swc">
<param name="movie" value="image/flash/clock141.swf">
<param name="quality" value="high">
<param name="FlashVars" value="flashlet={imageLinkTarget:'_blank',captionFont:'Verdana',titleFont:'Verdana',showControls:true,frameShow:false,slideDelay:5,captionSize:10,captionColor:#333333,titleSize:10,transitionsType:'Random',titleColor:#333333,slideAutoPlay:false,imageURLs:['img1.jpg','img2.jpg','img3.jpg'],slideLoop:false,frameThickness:2,imageLinks:['http://macromedia.com/','http://macromedia.com/','http://macromedia.com/'],frameColor:#333333,bgColor:#FFFFFF,imageCaptions:[]}"><param name="SCALE" value="exactfit"><param name="BGCOLOR" value="#E7E7E7">
<embed src="image/flash/clock141.swf" width="82" height="82" align="right" quality="high" flashvars="flashlet={imageLinkTarget:'_blank',captionFont:'Verdana',titleFont:'Verdana',showControls:true,frameShow:false,slideDelay:5,captionSize:10,captionColor:#333333,titleSize:10,transitionsType:'Random',titleColor:#333333,slideAutoPlay:false,imageURLs:['img1.jpg','img2.jpg','img3.jpg'],slideLoop:false,frameThickness:2,imageLinks:['http://macromedia.com/','http://macromedia.com/','http://macromedia.com/'],frameColor:#333333,bgColor:#FFFFFF,imageCaptions:[]}" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" scale="exactfit" bgcolor="#E7E7E7"></embed>
</object></td>
</tr>
<tr>
<td valign="top" bgcolor="#e7e7e7">目前班级成员有:<br><br>
<%while(totalUserInfo.next()){out.print("<img src='image/index/ren.gif' border=0 width='11' height='14'><a href='userinfo.jsp?uid="+totalUserInfo.getString("ID")+"'>"+totalUserInfo.getString("USERNAME")+"</a> ");}%></td>
</tr>
</table>
<br>
<table width="95%" border="0" align="center" cellpadding="0" cellspacing="1">
<tr>
<td width="200"><a href="#addPost"><img src="image/index/topic.gif" width="90" height="25" border="0"></a> </td>
<td align="center">本校友录共有<font color="#FF0000"><strong><%=totalCounts%></strong></font>条发言,每页显示<font color="#FF0000"><strong><%=rowsPerPage%></strong></font>条发言,当前显示第<font color="#FF0000"><strong><%=currentPageNum%></strong></font>页/共<font color="#FF0000"><strong><%=totalPages%></strong></font>页</td>
<td align="right">
<%if(currentPageNum!=1){%><a href="index.jsp?page=1"><img src="image/subject/firstpage.gif" width="59" height="21" border="0"></a>
<%}%>
<%if(currentPageNum!=1){%><a href="index.jsp?page=<%=currentPageNum-1%>"><img src="image/subject/previouspage.gif" width="59" height="21" border="0"></a>
<%}%>
<%if(currentPageNum!=totalPages){%><a href="index.jsp?page=<%=currentPageNum+1%>"><img src="image/subject/nextpage.gif" width="59" height="21" border="0"></a>
<%}%>
<%if(currentPageNum!=totalPages){%><a href="index.jsp?page=<%=totalPages%>"><img src="image/subject/lastpage.gif" width="59" height="21" border="0"></a>
<%}%> </td>
<form action="index.jsp" method="post" name="subjectForm" target="_self" id="subjectForm">
<td width="50" align="right"><input name="page" type="text" class="form" id="page" size="4" maxlength="10"></td>
<td width="40"><input name="imageField" type="image" src="image/subject/fav_add.gif" alt="直接跳转" width="24" height="24" border="0"></td>
</form>
</tr>
</table>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -