结构上随便参考哪一个bbs
有用户登录,主题列表,发帖回复 。
可以在后台用一个数据库
用bean来访问数据库
将结果集用jsp显示出来
有用户登录,主题列表,发帖回复 。
可以在后台用一个数据库
用bean来访问数据库
将结果集用jsp显示出来
解决方案 »
- 求助:关于四则运算的程序
- Vector 还是ArrayList——哪一个更好
- java编程
- JAVA里面有Klass字样,一般是代表什么含义?
- 求一树形菜单,要求用数据库中数据做根节点和字节点
- 子类继承父类问题
- Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
- JTree刷新问题
- 我看到很多JSP留言本中都是用odbc来连数据库,请问大侠,在JSP留言本中连数据库有没有用ado来连数据库的啊?谢谢!
- 怎样去掉applet中的菜单和对话框下面的警告条???
- 各位高手,请问在Tomcat下怎么解决中文问题?
- 给点学java的建议
第二步:建立你自己的类文件,存放树形目录的文档就是留言的关系树;
第三步:完成JSP页面.
我曾经写过的一个类文件代码,可以参考一下:
****************************************
public class ForumList {
private LinkSQL ls=null;
private ResultSet rs=null;
private String viewXML=null;
private String xsl=""; //XSL解析文件
private Document document=null;
private int total=0; public int getTotal(){return this.total;} /**
* 设置XSL解析文档字串
* @return String
*/
public String getxsl(){
this.xsl="<?xml version=\"1.0\" encoding=\"gb2312\"?>"
+"<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" >"
+"<xsl:output method=\"xml\" indent=\"yes\" encoding=\"gb2312\"/>"
+"<xsl:template match=\"/\">"
+"<table width=\"98%\">"
+"<xsl:for-each select=\"bbs//notes|bbs//renotes|bbs//notes//renotes\">"
+"<tr><td><a>"
+"<xsl:attribute name=\"href\">content.jsp?id=<xsl:value-of select=\"id\"/></xsl:attribute>"
+"<xsl:attribute name=\"target\">InfoFrame</xsl:attribute>"
+"<xsl:value-of select=\"title\"/>"
+"</a></td></tr>"
+"</xsl:for-each>"
+"</table>"
+"</xsl:template>"
+"</xsl:stylesheet>";
return this.xsl;
} /**
* 从数据库里提取信息
* @return String
*/
public String getList(){
StringBuffer sb=new StringBuffer();
sb.append("<?xml version=\"1.0\" encoding=\"gb2312\"?>");
sb.append("<bbs>");
ls=new LinkSQL();
ls.setsql("select groupvalue from groupTable order by groupID desc");
try{
this.rs=ls.getResultSet();
while(rs.next()){
String s=rs.getString("groupvalue");
sb.append(s);
}
}catch(IOException ioe){ioe.printStackTrace();}
catch(ClassNotFoundException cnfe){cnfe.printStackTrace();}
catch(SQLException se){se.printStackTrace();}
finally{
try{
if(this.rs!=null) rs.close();
this.ls.closeAll();
}catch(Exception e){e.printStackTrace();}
}
sb.append("</bbs>");
return sb.toString();
} /**
* XML文档以HTML形式输出
* @return String
* @throws Exception
*/
public String getHtmlList(int nowpage) throws Exception{
String xml="";
int pageNumber=0 ,countInfo=0 ,pageTotalNumber=0 ,perNumber=10;
xml=this.getList(); //取得XML文档内容
StringBuffer newxml=new StringBuffer();
newxml.append("<?xml version=\"1.0\" encoding=\"gb2312\"?>");
newxml.append("<bbs>");
////////////
javax.xml.parsers.DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
org.xml.sax.InputSource is=new InputSource(new StringReader(xml));
javax.xml.parsers.DocumentBuilder builder=factory.newDocumentBuilder();
this.document=builder.parse(is);
NodeList idlist=this.document.getElementsByTagName("id");
NodeList titlelist=this.document.getElementsByTagName("title");
countInfo=idlist.getLength();
pageTotalNumber=countInfo/perNumber+1;
this.total=pageTotalNumber;
pageNumber=nowpage;
if(pageNumber<1) pageNumber=1;
if(pageNumber>pageTotalNumber) pageNumber=pageTotalNumber;
for(int i=(pageNumber-1)*perNumber;i<pageNumber*perNumber;i++){
if(i>=countInfo) break;
else{
newxml.append("<notes><id>"+idlist.item(i).getFirstChild().getNodeValue()+"</id>");
newxml.append("<title>"+titlelist.item(i).getFirstChild().getNodeValue()+"</title></notes>");
}
}
newxml.append("</bbs>");
System.out.println(newxml);
///////////
Transformer tf=TransformerFactory.newInstance().newTransformer(
new javax.xml.transform.stream.StreamSource(
new StringReader(this.getxsl())));
ByteArrayOutputStream bos=new ByteArrayOutputStream();
tf.transform(new StreamSource(new StringReader(newxml.toString()))
,new StreamResult(bos)); //XSL解析XML文档并输出
byte[] ba=bos.toByteArray();
return new String(ba);
} public String updatedocument(){
CharArrayWriter caw=new CharArrayWriter();//exporting the io into the EMS momory.
TransformerFactory tfFactory =TransformerFactory.newInstance();
try{
Transformer transformer = tfFactory.newTransformer();
DOMSource source=new DOMSource(this.document);
StreamResult result=new StreamResult(caw);
transformer.transform(source, result);
}catch(TransformerConfigurationException tce){tce.printStackTrace();}
catch(TransformerException tfe){tfe.printStackTrace();}
char[] ba=caw.toCharArray();
return new String(ba);//
} //test!!
public static void main(String[] args) throws Exception{
ForumList fl=new ForumList();
fl.getHtmlList(3);
System.out.println(fl.getTotal()+"");
}
}