JSP的留言簿---XML实现

来源:http://blog.yesky.com/Blog/tiantian911/archive/2005/02/12/73848.html

最近一直在看XML,才发现XML真是个好东东,有了它,交换数据变得前所未有的方便,今天做了我的第一个XML应用,呵呵,一个基于XML技术的留言簿。
        放弃了数据库,而直接使用XML来存储信息,读取后通过XSLT转换成HTML直接显示,感觉方便极了。
        开发工具采用Eclipse作为Java IDE,XML操作使用JDOM,XML文件编辑使用Oxygen XML Editor(很好用的XML编辑器,纯JAVA)。
         这是guestbook.xml,所有的留言都存储在这里。
<? xml version="1.0" encoding="gb2312" ?>
<! DOCTYPE guestbook SYSTEM "file:/F:/site/xmlGuestbook/guestbook.dtd" >
<? xml-stylesheet type="text/xsl" href="guestbook.xsl" ?>
< guestbook >
    
< message >
        
< name > Vince Carter </ name >
        
< ip > 202.113.66.66 </ ip >
        
< content > a good site,do you think so? </ content >
    
</ message >
    
< message >
        
< name > Antony Walker </ name >
        
< ip > 202.113.22.123 </ ip >
        
< content > VC isn't right here,you should be traded. </ content >
    
</ message >
</ guestbook >
        这是DTD文件,直接用Oxygen XML Editor生成的,很方便。
<! ELEMENT message (#PCDATA | name | ip | content)* >
<! ELEMENT content (#PCDATA) >
<! ELEMENT guestbook (#PCDATA | message)* >
<! ELEMENT ip (#PCDATA) >
<! ELEMENT name (#PCDATA) >
        
        这是XSLT文件:
<? xml version="1.0" ?>
< xsl:stylesheet  xmlns:xsl ="http://www.w3.org/TR/WD-xsl" >
< xsl:template  match ="/" >
< html >
< body >
< table  border ="1"  bgcolor ="yellow" >
< tr >
< th > Name </ th >
< th > IP </ th >
< th > Content </ th >
</ tr >
< xsl:for-each  select ="guestbook/message" >
< tr >
< td >< xsl:value-of  select ="name" /></ td >
< td >< xsl:value-of  select ="ip" /></ td >
< td >< xsl:value-of  select ="content" /></ td >
</ tr >
</ xsl:for-each >
</ table >
</ body >
</ html >
</ xsl:template >
</ xsl:stylesheet >

        采用表格的形式组织,清晰易懂。下面是JAVA代码。
/*
 * 创建日期 2005-2-15
 
*/
package com.tiantian.xmlguestbook;
// com.tiantian

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.
* ;
import java.io.
* ;

/* *
 * @author tiantian
 
*/
public class XMLguestbookBean {

    public static 
void  main(String[] args) {
        XMLguestbookBean exam 
=   new  XMLguestbookBean(); // 声明XMLguestbookBean的一个实例
        exam.addmessage( " james " " 202.11.223.22 " " hahah " ); // 增加一个留言,测试
    }

    public Element root 
=   null ; // 定义根

    public XMLguestbookBean() {
        
// 空的构造函数
    }

    private 
void  addmessage(String name, String ip, String content) {
        
try  {
            SAXBuilder sb 
=   new  SAXBuilder();
            Document doc 
=  sb.build( " guestbook.xml " );
            root 
=  doc.getRootElement(); // 取得根元素
            Element newMessage  =   new  Element( " message " );
            Element newName 
=   new  Element( " name " );
            Element newContent 
=   new  Element( " content " );
            Element newIp 
=   new  Element( " ip " );
            newName.setText(name); 
// 填入名字
            newContent.setText(content); // 填入设置
            newIp.setText(ip); // 填入IP
            newMessage.addContent(newName); // 添加名字到message
            newMessage.addContent(newIp); // 添加ip地址到message
            newMessage.addContent(newContent); // 添加留言内容到message
            root.addContent(newMessage); // 把message添加到根上
            Format format  =  Format.getCompactFormat();
            format.setEncoding(
" gb2312 " );  // 设置xml文件的字符为gb2312
            format.setIndent( "      " );
            XMLOutputter XMLOut 
=   new  XMLOutputter(format); // 在元素后换行,每一层元素缩排四格
            XMLOut.output(doc,  new  FileOutputStream( " guestbook.xml " )); // 输出到文件
        }  catch  (FileNotFoundException e) {
            
//  文件未找到
            e.printStackTrace();
        } 
catch  (JDOMException e) {
            
//  JDOM异常
            e.printStackTrace();
        } 
catch  (IOException e) {
            
//  IO异常
            e.printStackTrace();
        }

    }
}


        使用了Eclispe的格式化之后漂亮多了,呵呵。在Jsp/Servlet中只需用调用这个bean就行了,显示的时候直接引用XML文件即可,是不是比上一个JSP实现简单清晰多了呢?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、设计目的 留言系统目前在各类网站中被广泛使用。通过综合运用JSP、Servlet、JavaBean、JDBC、MySQL和MVC + DAO等技术与方法,设计与实现一个留言管理系统,进一步理解和掌握Java Web编程开发的基本技术和方法,熟练使用开发工具。 二、课程设计内容 设计留言管理系统的目的是提供对留言的增加、删除、修改和显示的功能。 系统分前台和后台两个模块。 1)前台留言模块主要针对普通用户,按功能又分为以下模块。 (1) 发表留言(即添加留言) 普通用户可以在留言管理系统中随意留言,如果留言的字数太少如低于10个字符,系统将给出提示。 (2) 查看留言 可以浏览留言(即查看留言列表)、查看详细留言(即查看某条留言内容)、搜索留言(即查看符合条件的留言列表)、查看友情链接(即导航到别的网站)。 2)后台模块(管理模块)针对管理员提供操作,按功能又分为以下模块。 (1) 登录管理:需要输入管理员账号、口令和验证码,系统将验证、口令和验证码是否正确,如果验证成功,则进入管理员界面;否则,系统提示账号或密码错误的信息。 另外,登录后的管理员可以选择退出登录,进而退出管理界面。(实现提示:将退出请求提交给处理退出的Servlet,在该Servlet中将session失效,再将页面重定向到登录页面。) (2) 留言管理:可以查看所有的留言,可以增加留言(即回复留言)、修改留言、删除留言。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值