在這個(gè)例子中,我們創(chuàng)建一個(gè)發(fā)表評(píng)論的表單。表單數(shù)據(jù)保存在數(shù)據(jù)庫(kù)中,所有發(fā)布的注釋列表顯示在注釋表單下方。
需要按照以下步驟操作:
• 在數(shù)據(jù)庫(kù)中創(chuàng)建表
• 加載org.json.jar文件
• 創(chuàng)建評(píng)論表單
• 創(chuàng)建服務(wù)器端頁(yè)面以保存表單數(shù)據(jù)并列出所有發(fā)布的評(píng)論
在此頁(yè)面中,我們創(chuàng)建了一個(gè)從用戶(hù)獲取輸入的表單。當(dāng)用戶(hù)單擊“發(fā)表評(píng)論”按鈕時(shí),將調(diào)用postComment()函數(shù)。在這個(gè)函數(shù)中編寫(xiě)了所有的ajax代碼。
文件:index.html
<!DOCTYPE html>
<html>
<head>
<script>
var request;
function postComment() {
var comment = document.commentform.comment.value;
var email = document.commentform.email.value;
var url = "index.jsp?comment=" + comment + "&email=" + email;
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
request = new ActiveXObject("Microsoft.XMLHTTP");
}
try {
request.onreadystatechange = function () {
if (request.readyState == 4) {
var val = request.responseText;
document.getElementById('mylocation').innerHTML = val;
}
}//end of function
request.open("GET", url, true);
request.send();
} catch (e) { alert("Unable to connect to server"); }
}
</script>
</head>
<body>
<h1>Comment Form</h1>
<form name="commentform">
Enter Comment:<br />
<textarea name="comment" style="width:300px;height:100px" required>
</textarea><br />
Enter Email:<br />
<input type="text" name="email" required /><br /><br />
<input type="button" value="Post Comment" onclick="postComment()">
</form>
<span id="mylocation"></span>
</body>
</html>
創(chuàng)建服務(wù)器端頁(yè)面以處理請(qǐng)求
在這個(gè)jsp頁(yè)面中,編寫(xiě)數(shù)據(jù)庫(kù)代碼以保存注釋并打印所有注釋。
<!DOCTYPE html>
<html>
<head>
<style>
div.box {
margin: 2px;
border: 1px solid pink;
padding: 10px;
background-color: #e3e3e3
}
</style>
</head>
<body>
<%@ page import="java.sql.*" %>
<%
String comment=request.getParameter("comment");
String email=request.getParameter("email");
if(comment==null||email==null||comment.trim().equals("")||email.trim().equals("")){
out.print("<p>Please write comment</p>");
}else{
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","oracle");
PreparedStatement ps=con.prepareStatement("insert into usercomment(comment1,email) values(?,?)");
ps.setString(1,comment);
ps.setString(2,email);
int i=ps.executeUpdate();
PreparedStatement ps2=con.prepareStatement("select * from usercomment order by id desc");
ResultSet rs=ps2.executeQuery();
out.print("<hr/><h2>Comments:</h2>");
while(rs.next()){
out.print("<div class='box'>");
out.print("<p>"+rs.getString(2)+"</p>");
out.print("<p><strong>By: "+rs.getString(3)+"</strong></p>");
out.print("</div>");
}
con.close();
}catch(Exception e){out.print(e);}
}//end of else
%>
</body>
</html>