天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

這是一個簡單的評論系統(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:[email protected]">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:[email protected]">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;
        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
 * 聯(lián)系作者:<br>
 *    <a href="mailto:[email protected]">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);
    }

}

jsp技術(shù)一個jsp+AJAX評論系統(tǒng)第1/2頁,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 性肥胖BWBWBW | 欧美成人一区二免费视频 | 丰满艳妇亲伦 | 人体内射精一区二区三区 | 879影视动漫h免费观看 | 区一区二视频免费观看 | 国产呦精品一区二区三区下载 | 国产欧美另类久久久品 | 吃胸亲吻吃奶摸下面免费视频 | 欧美白人战黑吊 | 丰满的美女射精动态图 | yellow日本高清在线 | 在线超碰免费视频观看 | 欧美亚洲国内日韩自拍视频 | 九九精彩视频在线观看视频 | 十九禁啊啪射视频在线观看 | 白丝美女被狂躁免费漫画 | 国产一区2区 | chinesetoilet美女沟 | 伦理片2499电影伦理片 | 亚洲视频无码中字在线 | 一个人在线观看免费高清视频在线观看 | 国产精品自在在线午夜蜜芽tv在线 | 亚洲热在线视频 | 蜜桃人妻无码AV天堂三区 | 久久精品麻豆国产天美传媒果冻 | 91久久精一区二区三区大全 | 日韩精品AV一区二区三区 | 99re久久热最新地址一 | 超碰caoporon最新视频 | GOGOGO高清在线播放韩国 | 亚洲精品拍拍央视网出文 | 国产精品2020观看久久 | 中文字幕在线久热精品 | NANANA在线观看高清影院 | 国内精品久久久久影院老司 | 宝贝乖女好紧好深好爽老师 | 亚洲国产第一 | 早乙女由依在线观看 | 国产深夜福利视频在线 | 亚洲国产在线精品第二剧情不卡 |