源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-01-19 10:57 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:一个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;         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);     } }
当前1/2页 [b]1[/b][url=http://www.1sucai.cn/article/10016_2.htm]2[/url][url=http://www.1sucai.cn/article/10016_2.htm]下一页[/url][url=http://www.1sucai.cn/article/10016_all.htm]阅读全文[/url]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部