⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index.jsp

📁 jsp+javabean写的论坛
💻 JSP
📖 第 1 页 / 共 2 页
字号:
<%@ 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'>&nbsp;");
		out.print(se.getAttribute("username").toString());
		out.print("&nbsp;&nbsp;");
	}
	%>
	</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>登陆我的校友录!&nbsp;");
		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("您还未登陆,目前还不能发言,请先&nbsp;<a href='login.jsp' target='_self'>登陆</a>&nbsp;或&nbsp;<a href='register.jsp' target='_self'>注册</a>&nbsp;......");
	}
	%></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>&nbsp;");}%></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>&nbsp;&nbsp;&nbsp;</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 + -