• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    一个jsp+AJAX评论系统第1/2页
    这是一个简单的评论系统,使用了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;
            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
     * 联系作者: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下一页阅读全文
    您可能感兴趣的文章:
    • 使用MongoDB和JSP实现一个简单的购物车系统实例
    • 基于jsp实现新闻管理系统 附完整源码
    • JSP学生信息管理系统
    • JSP学生信息管理系统设计
    上一篇:ajax+jsp草稿自动保存的实现代码
    下一篇:什么是eclipse,eclipse的意思解析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    一个jsp+AJAX评论系统第1/2页 一个,jsp+AJAX,评论,系统,