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

首頁 > 編程 > JSP > 正文

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

2024-09-05 00:21:24
字體:
來源:轉載
供稿:網友

這是一個簡單的評論系統,使用了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頁 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区深夜福利| 国产欧美精品一区二区| 亚洲精品第一国产综合精品| 国产日本欧美一区二区三区在线| 一区二区三区回区在观看免费视频| 在线视频精品一| 国模视频一区二区| 久久久噜噜噜久久久| 精品视频在线播放免| 日本久久久久久久久久久| 国产精品视频yy9099| 97免费视频在线| 国语自产精品视频在线看一大j8| 亚洲第一区第一页| 欧美大全免费观看电视剧大泉洋| 国产精品一二三视频| 国产精品91久久久久久| 在线精品高清中文字幕| 精品免费在线观看| 国产精品久久久久久久久久三级| 成人a免费视频| 色综合色综合久久综合频道88| 欧美性videos高清精品| 日韩av资源在线播放| 海角国产乱辈乱精品视频| 精品香蕉在线观看视频一| 久久天天躁狠狠躁夜夜av| 亚洲男子天堂网| 日韩视频在线观看免费| 九九久久综合网站| 亚洲国产精品va在看黑人| 蜜臀久久99精品久久久无需会员| 一区二区三区回区在观看免费视频| 国产亚洲激情视频在线| 亚洲女性裸体视频| 欧美洲成人男女午夜视频| 国产亚洲精品一区二555| 成人午夜黄色影院| 欧美大全免费观看电视剧大泉洋| 成人深夜直播免费观看| 欧美综合激情网| 国产热re99久久6国产精品| 欧美激情视频网站| 在线观看欧美视频| 国产精品成人aaaaa网站| 日韩精品在线观看网站| 久久久久久久爱| 亚洲免费高清视频| 欧美日韩国产成人在线观看| 亚洲欧美制服综合另类| 2021国产精品视频| 欧美性xxxx在线播放| 日韩欧美在线看| 国产精品永久免费在线| 亚洲人成毛片在线播放| 国产91精品网站| 伊人激情综合网| 国产狼人综合免费视频| 中文字幕精品影院| 亚洲最大福利网| 国产日韩在线精品av| 亚洲精品视频在线播放| 欧美日韩国产中文精品字幕自在自线| 91高清视频免费观看| 日韩欧美在线免费观看| 日韩成人av在线播放| 国产99久久精品一区二区永久免费| 欧美激情videoshd| 欧美日韩国产一区在线| 日韩精品在线播放| 欧美精品成人91久久久久久久| 亚洲天堂色网站| 久久福利网址导航| 日本精品一区二区三区在线播放视频| 亚洲第一页在线| 日本19禁啪啪免费观看www| 国产精品视频精品| 日韩有码在线电影| 亚洲国产精品成人一区二区| 一区二区三区无码高清视频| 成人免费淫片视频软件| 最新国产成人av网站网址麻豆| 在线观看成人黄色| 精品高清一区二区三区| www.xxxx精品| 国产精品白丝jk喷水视频一区| 色偷偷噜噜噜亚洲男人的天堂| 欧美电影在线播放| 97在线精品视频| 久久在线观看视频| 亚洲精品视频中文字幕| 91爱视频在线| 亚洲人成网站777色婷婷| 国产成+人+综合+亚洲欧洲| 日韩亚洲欧美中文在线| 亚洲视频精品在线| 91超碰中文字幕久久精品| 日韩成人中文字幕| 欧美成人激情视频免费观看| 国产精品福利久久久| 91美女福利视频高清| 国产999精品久久久| 久久这里有精品视频| 日韩精品在线视频观看| 欧美国产日韩一区二区在线观看| 成人午夜在线视频一区| 国产男女猛烈无遮挡91| 久久久久久国产精品久久| 欧美激情视频播放| 亚洲第一区中文字幕| 中文字幕欧美精品日韩中文字幕| 欧美一级电影久久| 91在线视频成人| 亚洲国产精品专区久久| 欧美日韩国产一区在线| 国产成人jvid在线播放| 亚洲精品资源美女情侣酒店| 日韩禁在线播放| 不卡在线观看电视剧完整版| 亚洲日韩欧美视频一区| 久热99视频在线观看| 国产成人综合亚洲| 国产精品成人免费电影| 亚洲香蕉av在线一区二区三区| 午夜精品久久久久久久99热浪潮| 黄色一区二区三区| 黑人巨大精品欧美一区二区| 精品视频在线播放| 这里只有精品视频| 久久久久九九九九| 久久久久久久久综合| 亚洲人成电影网站色…| 羞羞色国产精品| 成人春色激情网| 欧美极品少妇全裸体| 日韩av在线免播放器| 97热在线精品视频在线观看| 日韩美女av在线免费观看| 3344国产精品免费看| 九九九久久国产免费| 亚洲一区二区国产| 欧美日韩一区二区在线播放| 亚洲国产一区二区三区在线观看| 亚洲国产精品yw在线观看| 欧美极品少妇xxxxⅹ裸体艺术| 国产色婷婷国产综合在线理论片a| 日韩电视剧在线观看免费网站| 国产精品高精视频免费| 91影院在线免费观看视频| 国产日韩精品视频| 亚洲精品一区二区三区婷婷月| 国产精品日韩久久久久| 爱福利视频一区| 91成人性视频| 日韩在线观看免费全集电视剧网站| 欧美日韩裸体免费视频| 日韩午夜在线视频| 国产一区二区三区高清在线观看| 色综合久久久久久中文网| 91久久国产精品91久久性色| 亚洲性线免费观看视频成熟| 欧美性受xxxx黑人猛交| 2019中文字幕全在线观看| 久久全球大尺度高清视频|