主頁 > 知識庫 > 一個jsp+AJAX評論系統(tǒng)第1/2頁

一個jsp+AJAX評論系統(tǒng)第1/2頁

熱門標(biāo)簽:電話機器人的特色和創(chuàng)新 地圖標(biāo)注人員兼職 騰訊地圖標(biāo)注商戶改名注冊入駐 怎樣把地圖標(biāo)注出來 商丘百應(yīng)電話機器人有沒有效果 開封便宜外呼系統(tǒng)報價 黃石智能營銷電銷機器人效果 漯河辦理400電話 淮南騰訊地圖標(biāo)注
這是一個簡單的評論系統(tǒng),使用了JDOM(這邊使用Jdom-b9),實例使用JSP作為視圖,結(jié)合使用AJAX(用到prototype-1.4),Servlet和JavaBean作為后臺處理,使用xml文件存儲數(shù)據(jù)。
1.應(yīng)用目錄結(jié)構(gòu)如下:
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>外星人是否存在評論系統(tǒng)/p>
 * @author ceun
 * 聯(lián)系作者:br>
 *    a href="mailto:ceun@163.com">ceun/a>br>
 * @version 1.0 2007-01-30 實現(xiàn)基本功能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
 * 聯(lián)系作者:br>
 *    a href="mailto:ceun@163.com">ceun/a>br>
 * @version 1.0 2007-01-30 實現(xiàn)基本功能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 評論內(nèi)容
  * @param attitude 評論者的結(jié)論(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 返回操作結(jié)果字符串(成功或失敗)
 * */
    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數(shù)組
 * @return 返回操作結(jié)果字符串(成功或失敗)
 * */
    public String removeComments(String[] commentIdArgs) ...{
        Element root = doc.getRootElement();
        List comments = root.getChildren();
        int size = comments.size();
        int len = commentIdArgs.length;
        ListElement> dist = new ArrayListElement>();
        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
 * 聯(lián)系作者:br>
 *    a href="mailto:ceun@163.com">ceun/a>br>
 * @version 1.0 2007-01-30 實現(xiàn)基本功能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下一頁閱讀全文
您可能感興趣的文章:
  • 使用MongoDB和JSP實現(xiàn)一個簡單的購物車系統(tǒng)實例
  • 基于jsp實現(xiàn)新聞管理系統(tǒng) 附完整源碼
  • JSP學(xué)生信息管理系統(tǒng)
  • JSP學(xué)生信息管理系統(tǒng)設(shè)計

標(biāo)簽:馬鞍山 岳陽 鄭州 紅河 亳州 大興安嶺 武威 拉薩

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《一個jsp+AJAX評論系統(tǒng)第1/2頁》,本文關(guān)鍵詞  一個,jsp+AJAX,評論,系統(tǒng),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《一個jsp+AJAX評論系統(tǒng)第1/2頁》相關(guān)的同類信息!
  • 本頁收集關(guān)于一個jsp+AJAX評論系統(tǒng)第1/2頁的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章