这个是使用JSP、JDBC技术构架一个关于JAVA语言的BBS讨论区

源代码在线查看: view.jsp

软件大小: 167 K
上传用户: scauliaorongjun
关键词: JDBC JAVA JSP BBS
下载地址: 免注册下载 普通下载 VIP

相关代码

								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();
				%>
				                                  
				     
							

相关资源