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

📄 bbslistmore.jsp

📁 j2ee实现简单的bbs功能
💻 JSP
字号:
<%@ page language="java" contentType="text/html;charset=gb2312" %>
<%@ page import="java.sql.*"%>
<%@ page import="BeanLink.DBBean"%>
<jsp:useBean id="dBean" class="BeanLink.DBBean" scope="session"/>
<html>
<head>
<title>论坛列表</title>
</head>
<body>
<CENTER>
<br>
<%
	String loginSign = (String)session.getValue("loginSign");
	String username = (String)session.getValue("username");//作者名
	if(loginSign!=null&&loginSign.equals("OK"))
	{//显示主题文章及回复文章列表
		out.println("<font size='6' color='blue'>主题文章</font>");
	}
	else
	{//无此权限,定向到用户登录页面
		response.sendRedirect("../index.jsp");
	}
%>
</CENTER>
<%
	//变量初始化
	int pageLine = 2;//每页记录数
	int totalRec = 0;//数据集的总记录数
	int intPageCount = 0;//总页数
	int intPage = 0;//当前页号
%>
<%
   String sdriver="sun.jdbc.odbc.JdbcOdbcDriver";
   String sconn="jdbc:odbc:mydb";
   String suser="";
   String spass="";
   String tablename="board";
   
   dBean.openConn(sdriver,sconn,suser,spass);
   ResultSet rs=null;
   String sql = "";
%>
<%
   //显示相应主标题的内容并更新该记录的点击次数
   String titleMain = "";
   String speakerMain = "";
   java.util.Date provide_timeMain = null;
   long reply_numMain = 0;
   long click_numMain = 0;
   String contentMain = "";
   String serialNoMain = request.getParameter("serialNo");
   
   sql = "select * from "+tablename+" where serialNo="+serialNoMain;
   rs=dBean.executeQuery(sql);
   if(rs!=null&&rs.next())
   {
	titleMain = rs.getString("title");
	speakerMain = rs.getString("speaker");
	provide_timeMain = rs.getDate("provide_time");
	reply_numMain = rs.getLong("reply_num");
	click_numMain = rs.getLong("click_num");
	click_numMain++;
        reply_numMain++;//点击链接时或者提交回复时做参数
	contentMain = rs.getString("content");
%>
<table width="80%" align="center" bgcolor="#ccffff" height="38">
<tr>
<td align="center"><%=titleMain%></td>
</tr>
<tr>
<td align="center">发贴人:<%=speakerMain%>&nbsp;&nbsp;&nbsp;&nbsp;发贴时间:<%=provide_timeMain%></td>
</tr>
<tr>
<td align="left" color="#ffffcc">内   容:</td>
</tr>
<tr>
<td><%=contentMain%></td>
</tr>
</table>
<%
   }
   if(rs!=null)
   {
	rs.close();
        rs = null;
   }
   //更新该记录的点击次数
   sql = "update "+tablename+" set click_num="+click_numMain+" where serialNo="+serialNoMain; 
   dBean.executeUpdate(sql);
%>
<%
   
   //取得该主题回复记录的总记录数
   sql="select count(*) as cnt from "+tablename+" where parent_no="+serialNoMain;
   rs=dBean.executeQuery(sql);
   if(rs!=null&&rs.next())
   	totalRec = rs.getInt("cnt");
   if(rs!=null)
   {
	rs.close();
        rs = null;
   } 
   //计算总页数
   if(totalRec==0)
	intPageCount = 0;
   else
   	intPageCount = (totalRec-1)/pageLine + 1;

   if(intPageCount>0)
   {//总页数大于0--if程序断开始
   
   //page是链接参数或者控件名称,表示当前页号,赋值给intPage
   if(request.getParameter("page")!=null)
	intPage = Integer.parseInt(request.getParameter("page"));
   if(intPage>intPageCount)
	intPage=intPageCount;//如果当前页数大于总页数,则当前页数等于总页数
   if(intPage<1)
	intPage=1;//如果当前页数小于1,则把它置为1
   
   //显示记录内容,再做一次查询
   sql="select * from "+tablename+" where parent_no="+serialNoMain+" order by provide_time desc";
   rs=dBean.executeQuery(sql);
%>
<br>
<center><font size="6" color="green">回复文章列表</font></center>
<br>
<table border="1" width="80%" align="center" bgcolor="#ccffff" height="38">
   <tr>
    <td width="10%" height="10">
      <p align="center">表情</p></td>
    <td width="40%" height="10">
      <p align="center">标题</p></td>
    <td width="20%" height="10">
      <p align="center">发表人</p></td>
    <td width="20%" height="10">
      <p align="center">发表时间</p></td>
    <td width="10%" height="10">
      <p align="center">点击数</p></td>
  </tr>
<%
      //记录指针走过当前页以前所有页的记录
      for(int i=1; i<=(intPage-1)*pageLine; i++)
      	rs.next();
      
      
      for(int i=1; i<=pageLine; i++)
      {//显示当前页的记录--for开始
      	if(rs.next())
      	{
      		long serialNo = rs.getLong("serialNo");
      		String title = rs.getString("title");
      		String speaker = rs.getString("speaker");
      		java.util.Date provide_time = rs.getDate("provide_time");
      		long click_num = rs.getLong("click_num");
      		String emote = rs.getString("emote");
      		emote = "../../images/"+emote+".gif";
%>
<tr>
    <td width="10%" bgcolor="#ffffcc" height="10">
      <p align="center"><image src="<%=emote%>" ></p></td>
    <td width="40%" bgcolor="#ffffcc" height="10">
      <p align="center"><a href="bbsreplycontent.jsp?serialNo=<%=serialNo%>&serialNoMain=<%=serialNoMain%>&titleMain=<%=titleMain%>&reply_numMain=<%=reply_numMain%>"><%=titleMain%></a></p></td>
    <td width="20%" bgcolor="#ffffcc" height="10">
      <p align="center"><%=speaker%></p></td>
   <td width="20%" bgcolor="#ffffcc" height="10">
      <p align="center"><%=provide_time%></p></td>
   <td width="10%" bgcolor="#ffffcc" height="10">
      <p align="center"><%=click_num%></p></td> 
</tr>
<%
   	}
   }//显示当前页的记录--for结束
%>
</table>
<%
  }//总页数大于0--if结束

   //关闭对象操作
   if(rs!=null)
   {
      	rs.close();
        rs = null;
   }
   dBean.closeConn();
%>
<%
//以下用于分页显示
out.println("<center>");
//form表单开始,注意action为当前页面
out.println("<form method='post' action='bbslistmore.jsp'>");
if(intPage<2)//如果当前页数小于2,则首页和上一页无链接
	out.print("<font color='#999966'>首页 上一页</font>&nbsp;");
else
//注意href链接中用?传递参数,多个参数用&符号隔开,其中参数的名字为page
//可以通过request.getParameter("page")得到
{
	out.print("<a href='bbslistmore.jsp?page=1'>首页</a>&nbsp;");
	out.print("<a href='bbslistmore.jsp?page="+(intPage-1)+"'>上一页</a>&nbsp;");
}
if(intPage-intPageCount>=0)//如果当前页数小于总页数,则下一页和尾页有链接
	out.print("<font color='#999966'>下一页 尾页</font>&nbsp;");
else
{
	out.print("<a href='bbslistmore.jsp?page="+(intPage+1)+"'>下一页</a>&nbsp;");
	out.print("<a href='bbslistmore.jsp?page="+intPageCount+"'>尾页</a>&nbsp;");
}
//显示页次:当前页数/总页数/总记录数/每页记录数
out.print("&nbsp;页次:<strong><font color=red>"+intPage+"</font>/"+intPageCount+" 总记录数/"+totalRec+" 每页记录数/"+pageLine+"</strong>");
//注意:input text控件的name为page
//与前面链接中的参数同名,以便通过request.getParameter("page")得到
out.print(" 转到第<input type='text' name='page' size=4 value="+intPage+">页");
out.print("<input type='submit' value='GO' >");
out.println("</form>");
//form表单结束
out.println("</center>");
%>
<center>
<font size="6" color="green">回复帖子</font>
<form method="post" action ="bbsdealreply.jsp?serialNoMain=<%=serialNoMain%>&reply_numMain=<%=reply_numMain%>">
  <P>发帖人:<%=username%></P>
  <p>主  题:<input type="text" name="title" size="70" value="<%="RE:"+titleMain%>"></p>
  <p>表  情:
  <% 
  for(int i=0; i<10; i++)
  {
	String imageNo = "0"+Integer.toString(i);
	String imageAddress = "../../images/"+imageNo+".gif";
	if(i==0)
		out.println("<input type='radio' value="+imageNo+" name='emote' checked><image src="+imageAddress+">&nbsp;");
	else
		out.println("<input type='radio' value="+imageNo+" name='emote'><image src="+imageAddress+">&nbsp;");
  }
  %>
  </p>
  <p>内  容:</p>
  <p><textarea rows="8" name="content" cols="80"></textarea></p>
  <p><input type="submit" value="提交" name="B1">
  <input type="reset" value="重写" name="B2"></p>
</form>
</center>

</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -