亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

一個jsp+AJAX評論系統第1/2頁

2020-07-27 21:44:26
字體:
來源:轉載
供稿:網友
這是一個簡單的評論系統,使用了JDOM(這邊使用Jdom-b9),實例使用JSP作為視圖,結合使用AJAX(用到prototype-1.4),Servlet和JavaBean作為后臺處理,使用xml文件存儲數據。
1.應用目錄結構如下:
data
  |--comment.xml
js
  |--prototype.js
  |--ufo.js(UTF-8格式)                                                                     
css
  |--ufo.css
images
  |--loading.gif
ufo.jsp(UTF-8格式)
WEB-INF
  |-lib
      |-jdom.jar    
  |-classes
     ...
  |-web.xml

/*********************************************
*Author:Java619
*Time:2007-02-14
**********************************************/


2.后臺JavaBean  CommentBean.java

/** *//**
 * <P>外星人是否存在評論系統</p>
 * @author ceun
 * 聯系作者:<br>
 *    <a href="mailto:ceun@163.com">ceun</a><br>
 * @version 1.0 2007-01-30 實現基本功能<br>
 * CommentBean.java
 * Created on Jan 30, 2007 9:39:19 AM
 */
package com.ceun.bean;

import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;

import org.jdom.CDATA;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.Text;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;

/** *//**
 *<p> 封裝對XML的操作</p>
 * @author ceun
 * 聯系作者:<br>
 *    <a href="mailto:ceun@163.com">ceun</a><br>
 * @version 1.0 2007-01-30 實現基本功能<br>
 */
public class CommentBean ...{
    private String filepath;

    private SAXBuilder builder = null;

    private Document doc = null;

    public CommentBean() ...{

    }
/** *//**
 * 初始化XML文件路徑,加載文件
 * */
    public CommentBean(String path) ...{
        this.filepath = path;
        builder = new SAXBuilder();
        try ...{
            doc = builder.build(filepath);
        } catch (JDOMException e) ...{
            System.out.print("找不到指定的XML文件");
            e.printStackTrace();
        } catch (IOException e) ...{
            System.out.print("找不到指定的文件");
            e.printStackTrace();
        }
    }
 /** *//**
  * 添加評論
  * @param nikename 評論者昵稱
  * @param comment 評論內容
  * @param attitude 評論者的結論(yes-存在,no-不存在)
  * */
    public String addComment(String nikename, String comment, String attitude) ...{
        Element root = doc.getRootElement();

        Element el = new Element("comment");
        Random rand = new Random();
        int id = rand.nextInt(10000);
        el.setAttribute("id", "comment_" + id);
        el.setAttribute("attitude", attitude);

        Element name = new Element("nikename");
        CDATA cname = new CDATA(nikename);
        name.addContent(cname);

        Element data = new Element("data");
        CDATA ctext = new CDATA(comment);
        data.addContent(ctext);

        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        Text tdate = new Text(format.format(date));
        Element pubdate = new Element("pubdate");
        pubdate.addContent(tdate);

        el.addContent(name);
        el.addContent(data);
        el.addContent(pubdate);
        root.addContent(el);
        XMLOutputter outputter = new XMLOutputter("  ", true, "GB2312");
        // 清除comment元素間的空格
        outputter.setTrimAllWhite(true);
        try ...{
            outputter.output(doc, new FileWriter(filepath));
        } catch (IOException e) ...{
            System.out.println("指定路徑有錯");
            e.printStackTrace();
        }
        return tdate.getText();
    }
/** *//**
 * 刪除指定ID的評論
 * @param commentId 評論ID
 * @return 返回操作結果字符串(成功或失敗)
 * */
    public String removeComment(String commentId) ...{
        Element root = doc.getRootElement();
        List comments = root.getChildren();
        int size = comments.size();
        Element dist = null;
        for (int i = 0; i < size; i++) ...{
            Element comment = (Element) comments.get(i);
            String id = comment.getAttributeValue("id");
            if (id.equals(commentId)) ...{
                dist = comment;
                break;
            }
        }
        if (dist != null) ...{
            root.removeContent(dist);
            XMLOutputter outputter = new XMLOutputter("  ", true, "GB2312");
            // 清除comment元素間的空格
            outputter.setTrimAllWhite(true);
            try ...{
                outputter.output(doc, new FileWriter(filepath));
            } catch (IOException e) ...{
                System.out.println("重寫文件有出錯");
                e.printStackTrace();
            }
            return "成功刪除指定元素!";
        } else
            return "指定元素不存在!";
    }
/** *//**
 * 批量刪除評論
 * @param commentIdArgs 評論ID數組
 * @return 返回操作結果字符串(成功或失敗)
 * */
    public String removeComments(String[] commentIdArgs) ...{
        Element root = doc.getRootElement();
        List comments = root.getChildren();
        int size = comments.size();
        int len = commentIdArgs.length;
        List<Element> dist = new ArrayList<Element>();
        outer:for (int i = 0; i < size; i++) ...{
            Element comment = (Element) comments.get(i);
            String id = comment.getAttributeValue("id");

            for (int j = 0; j < len; j++)
                if (id.equals(commentIdArgs[j])) ...{
                    dist.add(comment);
                    continue outer;
                }
        }
        int dist_size=dist.size();
        if (dist_size != 0) ...{
            for (int i = 0; i < dist_size; i++)
                root.removeContent(dist.get(i));
            XMLOutputter outputter = new XMLOutputter("  ", true, "GB2312");
            // 清除comment元素間的空格
            outputter.setTrimAllWhite(true);
            try ...{
                outputter.output(doc, new FileWriter(filepath));
            } catch (IOException e) ...{
                System.out.println("重寫文件有出錯");
                e.printStackTrace();
            }
            return "成功刪除指定的元素集合!";
        } else
            return "指定元素集合的不存在!";
    }

    /** *//**
     * @return the filepath
     */
    public String getFilepath() ...{
        return filepath;
    }

    /** *//**
     * @param filepath
     *            the filepath to set
     */
    public void setFilepath(String filepath) ...{
        this.filepath = filepath;
    }

    /** *//**
     * @return the builder
     */
    public SAXBuilder getBuilder() ...{
        return builder;
    }

    /** *//**
     * @param builder
     *            the builder to set
     */
    public void setBuilder(SAXBuilder builder) ...{
        this.builder = builder;
    }
}

3.處理AJAX請求的Servlet  AddCommentServlet.java

package com.ceun.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.ceun.bean.CommentBean;
/** *//**
 * <p>后臺處理Servlet</p>
 *2007-01-30
 * * @author ceun
 * 聯系作者:<br>
 *    <a href="mailto:ceun@163.com">ceun</a><br>
 * @version 1.0 2007-01-30 實現基本功能<br>
 * */
public class AddCommentServlet extends HttpServlet ...{

    /** *//**
     * serialVersionUID long
     */
    private static final long serialVersionUID = 1L;

    /** *//**
     * The doGet method of the servlet. <br>
     * 
     * This method is called when a form has its tag value method equals to get.
     * 
     * @param request
     *            the request send by the client to the server
     * @param response
     *            the response send by the server to the client
     * @throws ServletException
     *             if an error occurred
     * @throws IOException
     *             if an error occurred
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException ...{
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        response.setHeader("Cache-Control", "no-cache");

        PrintWriter out = response.getWriter();
        String nikename = request.getParameter("nn");

        String comment = request.getParameter("rsn");
        String attitude = request.getParameter("atti");
        String filepath = request.getSession().getServletContext().getRealPath(
                "data/comment.xml");
        CommentBean bean = new CommentBean(filepath);
        String str = bean.addComment(nikename, comment, attitude);
        out.println(str);
    }

    /** *//**
     * The doPost method of the servlet. <br>
     * 
     * This method is called when a form has its tag value method equals to
     * post.
     * 
     * @param request
     *            the request send by the client to the server
     * @param response
     *            the response send by the server to the client
     * @throws ServletException
     *             if an error occurred
     * @throws IOException
     *             if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException ...{

        doGet(request, response);
    }

}
12下一頁閱讀全文
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲欧美日韩精品| 中文字幕亚洲欧美一区二区三区| 亚洲午夜国产成人av电影男同| 午夜精品久久久久久久久久久久| 精品中文字幕在线观看| 精品视频在线观看日韩| 97涩涩爰在线观看亚洲| 日韩国产欧美精品在线| 亚洲毛片在线观看.| 懂色av中文一区二区三区天美| 国产精品亚洲自拍| 日韩高清电影好看的电视剧电影| 国产精品流白浆视频| 成人久久久久久| 亚洲韩国欧洲国产日产av| 欧美制服第一页| 国产一区二区三区欧美| 欧美综合一区第一页| 国产亚洲人成a一在线v站| 国产精品女人久久久久久| 久久99久国产精品黄毛片入口| www.99久久热国产日韩欧美.com| 97香蕉超级碰碰久久免费的优势| 2021久久精品国产99国产精品| 欧美激情视频一区二区三区不卡| 欧日韩在线观看| 欧美激情亚洲视频| 中文字幕v亚洲ⅴv天堂| 国产精品久久久久久av下载红粉| 国产视频精品在线| 欧美激情二区三区| 亚洲精品欧美日韩| 97av在线视频免费播放| 欧美激情一级二级| 亚洲精品欧美日韩专区| 91黄色8090| 日韩高清有码在线| 中文字幕精品www乱入免费视频| 精品magnet| 在线视频国产日韩| 国产精品高潮在线| 欧美老女人bb| 国产精品私拍pans大尺度在线| 亚洲三级黄色在线观看| 亚洲精品日韩欧美| 亚洲va欧美va国产综合剧情| 亚洲免费电影一区| 欧美一区二三区| 亚洲精品国产综合区久久久久久久| 欧美与黑人午夜性猛交久久久| 亚洲成**性毛茸茸| 日韩激情av在线播放| 亚洲自拍偷拍色片视频| 日韩69视频在线观看| 成人免费视频网址| 欧美日韩国产精品| 国产伦精品免费视频| 国产精品中文字幕在线观看| 国产精品扒开腿爽爽爽视频| 中文字幕亚洲字幕| 国产精品福利网| 亚洲精品自拍视频| 国产日韩av在线| 国产69精品99久久久久久宅男| 国产精品香蕉国产| 亚洲午夜未满十八勿入免费观看全集| 欧美性猛交xxxx黑人| 国产精品扒开腿爽爽爽视频| 亚洲精品视频播放| 91欧美精品午夜性色福利在线| 97超级碰碰人国产在线观看| 欧美一级大片视频| 日本一区二区在线免费播放| 国产成人短视频| 亚洲国内精品在线| 韩国19禁主播vip福利视频| 日韩欧美一区二区三区久久| 日韩专区中文字幕| 国产精品18久久久久久麻辣| 国产一区欧美二区三区| 欧美性猛交xxxx免费看| 日韩一区二区三区xxxx| 欧美性受xxx| 影音先锋欧美精品| 亚洲精品理论电影| 欧美性xxxxx极品娇小| 亚洲精品欧美日韩专区| 久久99久久99精品免观看粉嫩| 日韩在线观看免费高清完整版| 91久久精品国产91性色| 久热国产精品视频| 久久久久久久色| 这里只有精品视频在线| 久久久精品国产网站| 欧美劲爆第一页| 亚洲老头同性xxxxx| 亚洲国产精品va在线观看黑人| 成人国产精品av| 国产精品激情自拍| 热久久这里只有| 亚洲变态欧美另类捆绑| 欧美小视频在线| 国产精品亚洲一区二区三区| 日韩欧美在线观看| 日韩av网址在线观看| 国产精品观看在线亚洲人成网| 日韩精品视频在线播放| 69影院欧美专区视频| 日韩av毛片网| 亚洲香蕉伊综合在人在线视看| 久久亚洲一区二区三区四区五区高| 久久精品国产一区二区三区| 精品中文字幕久久久久久| 深夜福利日韩在线看| 亚洲精品自产拍| 国产精品无码专区在线观看| 精品国产老师黑色丝袜高跟鞋| 久久影视电视剧凤归四时歌| 久久频这里精品99香蕉| 日韩av色综合| 亚洲第一精品自拍| 欧美孕妇毛茸茸xxxx| 亚洲成人网在线观看| 日韩精品免费在线| 一区二区三区国产在线观看| 亚洲xxxxx电影| 亚洲欧洲第一视频| 97精品在线观看| 国产精品扒开腿做| 亚洲成人亚洲激情| 亚洲免费视频网站| 日韩欧美在线视频日韩欧美在线视频| 欧美精品日韩www.p站| 欧美资源在线观看| 久久电影一区二区| 久久精品99国产精品酒店日本| 91免费精品国偷自产在线| 欧美性猛交xxxx乱大交蜜桃| 国产精品va在线播放我和闺蜜| 成人免费网站在线| 国内免费久久久久久久久久久| 欧美中文字幕视频| 日韩电影在线观看免费| 青青草精品毛片| 久久久国产一区二区| 另类图片亚洲另类| 国产精品麻豆va在线播放| 国产精品免费一区豆花| 精品色蜜蜜精品视频在线观看| 欧美成人免费va影院高清| 欧美日韩精品在线播放| 久久久伊人欧美| 欧美亚州一区二区三区| 亚洲一区二区三区久久| 中文字幕日韩av综合精品| 国模精品一区二区三区色天香| 成人综合国产精品| 国产精品久久久久久久久久新婚| 亚洲欧洲日韩国产| 成人做爽爽免费视频| 日韩a**中文字幕| 日韩av毛片网| 日韩美女在线观看| 欧美贵妇videos办公室|