这个是使用JSP、JDBC技术构架一个关于JAVA语言的BBS讨论区
源代码在线查看: view.jsp
File Name:view.jsp
Author:fancy
Date:2001.6.1
Usage:view the topic
Address:Peking University 37#215,62762526,fancyrainbow@263.net,bbs.pku.edu.cn(id:javalover)
Note:1.这是一个Open Source项目,你可以自由的获取,修改,传播本项目的代码,无需经过本人的同意。
2.你不可以将本项目的源代码用于商业应用,除非获得本人的书面允许。
3.本项目的核心源代码所有权归原开发者所有,如果需要获取最新的核心代码,请与本人联系
--%>
Java论坛
//获取文章的信息。
String idstr=request.getParameter("id");
int currid=Integer.parseInt(idstr);
String topicSQL="SELECT * FROM data where id="+currid;
java.sql.Statement stmtTopic=conn.createStatement();
ResultSet rsTopic=stmtTopic.executeQuery(topicSQL);
rsTopic.next();
String group=rsTopic.getString(2);
String engroup=rsTopic.getString(3);
String topic=rsTopic.getString(1);
String author=rsTopic.getString(4);
int replycount=rsTopic.getInt(11);
Date posttime=rsTopic.getDate(7);
String content=rsTopic.getString(6);
String ipaddr=rsTopic.getString(9);
String mark=rsTopic.getString(14);
rsTopic.close();
stmtTopic.close();
//查询该文章所在的group的信息(-),包括总的文章数目,最小的id号,最大的id号 。
String topicSQL2="SELECT * FROM data where groupenname="+"'"+engroup.toLowerCase()+"' ORDER BY id";
//out.println(topicSQL2);
java.sql.Statement stmtTopic2=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rsTopic2=stmtTopic2.executeQuery(topicSQL2);
rsTopic2.last();
int totalRow=rsTopic2.getRow();
int maxid=rsTopic2.getInt(13);
rsTopic2.first();
int minid=rsTopic2.getInt(13);
rsTopic2.close();
stmtTopic2.close();
//获取当前文章的前一个id号,后一个id号
String firstlink="";
String lastlink="";
String prevlink="";
String nextlink="";
String backlink="";
String prevSQL="";
String nextSQL="";
String editlink="";
String deletelink="";
java.sql.Statement stmtindex=conn.createStatement();
if(currid==minid)
{
prevlink="";
nextSQL="SELECT * FROM data where groupenname="+"'"+engroup.toLowerCase()+"' and id>"+currid+" ORDER BY id";
ResultSet rstemp=stmtindex.executeQuery(nextSQL);
if(rstemp!=null)
{
rstemp.next();
nextlink="";
rstemp.close();
}
else
{
nextlink="";//防止当前group仅有一篇文章的情况。
}
}
else if(currid==maxid)
{
nextlink="";
prevSQL="SELECT * FROM data where groupenname="+"'"+engroup.toLowerCase()+"' and id ResultSet rstemp=stmtindex.executeQuery(prevSQL);
if(rstemp!=null)
{
rstemp.next();
prevlink="";
rstemp.close();
}
else
{
prevlink="";//防止当前group仅有一篇文章的情况。
}
}
else
{
prevSQL="SELECT * FROM data where groupenname="+"'"+engroup.toLowerCase()+"' and id ResultSet rstemp1=stmtindex.executeQuery(prevSQL);
//out.println(prevSQL);
rstemp1.next();
prevlink="";
rstemp1.close();
nextSQL="SELECT * FROM data where groupenname="+"'"+engroup.toLowerCase()+"' and id>"+currid+" ORDER BY id";
//out.println(nextSQL);
ResultSet rstemp2=stmtindex.executeQuery(nextSQL);
//out.println(prevSQL);
rstemp2.next();
nextlink="";
rstemp2.close();
}
stmtindex.close();
//查询当前文章所在板块的情况(二),包括斑竹的名字。
String groupSQL="SELECT * FROM forumgroup where groupenname="+"'"+engroup.toLowerCase()+"'";
java.sql.Statement stmtGroup=conn.createStatement();
ResultSet rsGroup=stmtGroup.executeQuery(groupSQL);
rsGroup.next();
String adminuser=rsGroup.getString(4);
rsGroup.close();
stmtGroup.close();
//获取用户的情况,包括签名档,昵称。
String userSQL="SELECT * FROM forumuser where username="+"'"+author+"'";
java.sql.Statement stmtUser=conn.createStatement();
ResultSet rsUser=stmtUser.executeQuery(userSQL);
rsUser.next();
String nickname=rsUser.getString(2);
String sign=rsUser.getString(8);
rsUser.close();
stmtUser.close();
//利用StringTokenizer类给文章的正文分行。
java.util.StringTokenizer st = new java.util.StringTokenizer(content);
String _content="";
content=_content;
while (st.hasMoreTokens())
{
content+=st.nextToken()+"";
}
//包装文章正文的显示形式。
content="在"+author+"["+nickname+"]"+"的大作中提到:"+content;
content+="来源于:"+ipaddr+"签名档:"+sign;
%>
//设定Session,可能用不上
session.putValue("prevlink",prevlink);
session.putValue("nextlink",nextlink);
session.putValue("firstlink",firstlink);
session.putValue("lastlink",lastlink);
session.putValue("editlink",editlink);
session.putValue("deletelink",deletelink);
session.putValue("backlink",backlink);
%>
Java技术讨论区(信区)
文章数:
斑竹:
编号
主题
作者
回文数
发表时间
状态
|
第一页
|
上一页
|
下一页
|
末一页
|
conn.close();
%>