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

📄 mybbsbean.java

📁 java编程入门配套光盘第八章代码
💻 JAVA
字号:
package test;

import org.xml.sax.*; 
import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.io.*;

public class MyBBSBean
{
    private static Document doc=null;
    private String strCurrentId = null;
    
    public MyBBSBean(){}
    
    public void setDocument(Document doc)
    {
        this.doc=doc;
    }

	//下面的方法是向文档树中插入新的元素的方法
	public void insertElement(String strRootID, String strUserName, String strTitle, String strContent )
	{
		Element oRoot;
		if( null == strRootID || 0 == strRootID.length()) //如果是新发表文章
		      oRoot = doc.getDocumentElement();
		else   //如果是回复文章
		     oRoot = (Element)doc.getElementsByTagName( strRootID ).item(0).getParentNode();

		insert(oRoot, strUserName, strTitle, strContent);
	}

	//实际的插入工作在这格方法内完成
	public void insert( Element oRoot, String strUserName, String strTitle, String strContent)
	{
		 Element username = doc.createElement("username");
		 Text username_t= doc.createTextNode(strUserName);
		 username.appendChild(username_t);

		 Element title = doc.createElement("title");
		 Text title_t = doc.createTextNode(strTitle);
		 title.appendChild(title_t);

		 Element content = doc.createElement("content");
		 Text content_t = doc.createTextNode(strContent);
		 content.appendChild(content_t);
         //利用当前时间的微秒计时生成ID标识
		 Element oId = doc.createElement("id"+String.valueOf( System.currentTimeMillis()));

		 Element oNoteItem = doc.createElement("noteitem");
		 oNoteItem.appendChild(oId);
		 oNoteItem.appendChild(username);
		 oNoteItem.appendChild(title);
		 oNoteItem.appendChild(content);
		 oRoot.appendChild( oNoteItem);
	}

	//下面的方法输出文档信息
	public void put(Writer out, Element oTarget)
	{
		try{
			if( null == oTarget) return;
			NodeList oChildList = oTarget.getChildNodes();
			if( null == oChildList)
			{
				out.write("Error!");
				return;
			}
			int ChildCount = oChildList.getLength();

			if( oTarget.getNodeName().equals("notepad") || oTarget.getNodeName().equals("noteitem"))
			{
				if( oTarget.getNodeName().equals("noteitem")) out.write("<li>");
				out.write("<ul>");
				for( int i = 0 ; i < ChildCount ; i ++)
				{
					if( oChildList.item(i) instanceof Element)
					{
						put(out, (Element)oChildList.item(i));
					}
				}
				out.write("</ul>");
				if( oTarget.getNodeName().equals("noteitem")) out.write("</li>");
			}
			else if( oTarget.getNodeName().indexOf("id") == 0 )
			{
				strCurrentId = oTarget.getNodeName();
			}
			else if( oTarget.getNodeName().equals("username")|| oTarget.getNodeName().equals("content"))
			{
				out.write("<li>");
				if(oTarget.getNodeName().equals("username"))
					out.write("用户名为:");
				else
					out.write("内容为:");
				NodeList oTextList = oTarget.getChildNodes();
				for( int i = 0 ; i < oTextList.getLength() ; i ++ )
				{
					out.write( ((Text)oTextList.item(i)).getData());
				}
				out.write("</li>");
			}
			else if( oTarget.getNodeName().equals("title"))
			{
				out.write("<li>标题为:<a href='postform.jsp?reply="+strCurrentId+"'>");
				NodeList oTextList = oTarget.getChildNodes();
				for( int i = 0 ; i < oTextList.getLength() ; i ++ )
				{
					out.write( ((Text)oTextList.item(i)).getData());
				}
				out.write("</a></li>");
			}
		}catch(Exception e)
		{
			e.printStackTrace(System.err);
		}
	}
}

⌨️ 快捷键说明

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