如何使用JSP+MySQL建立留言本(三)
作者:Eve Cole
更新時間:2009-07-02 17:13:14
下面我們開始建立留言頁面!
<%@頁
導入=“java.util.*”
導入=“java.text.*”
導入=“java.sql.*”
導入=“java.io.*”
導入=“java.lang.*”
contentType="text/html; 字元集=gb2312"
%>
<%
類別 CommentError // 拋出 java.lang.NullPointerException
{ public String 使用者名稱=“”,性別=“”,地址=“”,郵政=“”,Oicq=“”,Icq=“”,電話=“”,評論=“”;
公共布爾NoError = true; // false;
公共int錯誤計數=0;
私有布爾 IsNumber(String s1) {}
公有字串字型(字串se){}
公共字串Comment_Er(字串se){}
公共無效使用者名稱(字串se){}
公共無效性別(字串se){}
公共無效地址(字串se){}
公共無效註解(字串se){}
公共無效電話(字串se){}
公共無效郵政(字符串se){}
公共無效Oicq(字串se){}
公共無效Icq(字串se){}
}
類別格式註釋
{ 公共字串替換(字串來源,字串oldString,字串newString){}
公有字串formatint(字串se){}
公共字串 fromatcomment(String se) {}
公共字串toHtmlInput(字串str){}
公共字串toHtml(字串str){}
public String toSql(String str) {}//轉換成可以加入Myqal的格式
}
%>
<html>
<頭>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>使用MYsql資料庫</title>
</頭>
<正文>
<palign="center"><center><font style="COLOR: blue; FONT-FAMILY: 方正舒體,華文行楷,隸書,宋體; FONT-SIZE: 16pt">萍慧jsp留言薄</font > </中心></p>
<p對齊=“中心”>
<%! String 使用者名稱、性別、地址、貼文、oicq、icq、電話號碼、評論、電子郵件、url.urltitle;
%>
<%
嘗試{ 使用者名稱=request.getParameter("name");
}catch (NullPointerException e){ 使用者名稱="";}
嘗試{ comment=request.getParameter("comment");
}catch (NullPointerException e){ comment="";}
嘗試{ sex=request.getParameter("sex");
}catch (NullPointerException e){ sex="";}
嘗試{ 位址=request.getParameter("位址");
}catch (NullPointerException e){ 位址="";}
嘗試{ post=request.getParameter("郵政");
}catch (NullPointerException e){ post="";}
嘗試{ oicq=request.getParameter("oicq");
}catch (NullPointerException e){ oicq="";}
嘗試{ icq=request.getParameter("icq");
}catch (NullPointerException e){ icq="";}
嘗試{ telnumber=request.getParameter("電話");
}catch (NullPointerException e) { 電話號碼=“”; }
嘗試{ email=request.getParameter("email");
}catch (NullPointerException e) { email= ""; }
嘗試{ url=request.getParameter("url");
}catch (NullPointerException e) { url= ""; }
嘗試{ urltitle=request.getParameter("urltitle");
}catch (NullPointerException e) { urltitle= ""; }
String ip=request.getRemoteAddr();//取得IP位址
String time=(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.US )).format(new java.util.Date());
字串用戶ID=“”;
字串 MyQuery="";
這裡我引用了一個對留言進行合法檢驗的類
CommentError testcomment = new CommentError();
測試評論.用戶名(用戶名);
testcomment.Postal(郵寄);
測試評論.Sex(性別);
測試評論.Address(地址);
測試評論.Tel(電話號碼);
測試評論.評論(評論);
測試評論.Oicq(oicq);
測試評論.Icq(icq);
if (testcomment.NoError) //留言中沒有錯誤,寫資料庫
try {//寫入資料庫成功
java.sql.Connection sqlConn; // 資料庫連線對象
java.sql. 語句 sqlStmt; // 語句對象
java.sql.ResultSet sqlRst; //結果集對象
//登記JDBC驅動對象
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
//連接資料庫
sqlConn= java.sql.DriverManager.getConnection("jdbc:mysql://localhost/pinghui","test","");
//建立語句對象
sqlStmt=sqlConn.createStatement (java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
//執行Sql語句
這裡呼叫了一個對留言進行處理的類,是留言能被Mysql承認的,
FormatComment FC= new FormatComment();
oicq=FC.formatint(oicq);
icq=FC.formatint(icq);
post=FC.formatint(post);
電話號碼=FC.formatint(電話號碼);
用戶名=FC.toSql(用戶名);
評論=FC.toSql(評論);
MyQuery =“插入評論(用戶名,性別,地址,ip,帖子,oicq,icq,電話號碼,評論,時間,url,電子郵件)值('“+用戶名+”','“+性別+” ','“+地址+"','"+ip+"',"+post+","+oicq+","+icq+",'"+電話號碼+"','"+評論+"',now (),'"+url+"' ,'"+電子郵件+"');";
sqlRst=sqlStmt.executeQuery(MyQuery); //向資料庫新增數據
sqlRst.close();//關閉結果集對象
sqlStmt.close();//關閉語句對象
sqlConn.close(); //關閉資料庫連接
輸出.列印(時間);
%>
<font size="5"face="華文行楷">留言成功,謝謝!
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<正文>
<tr>
<td width="25%">暱稱:<%=username%></td>
<td width="25%">性別:<%=sex%></td>
<td colspan="2" width="50%">地址:<%=地址 %></td>
</tr>
<tr>
<td width="25%">電話:<%=telnumber%></td>
<td width="25%">郵編:<%=post%></td>
<td width="25%">OICQ:<%=oicq%></td>
<td width="25%">ICQ:<%=icq%></td>
</tr>
<tr>
<td colspan="2" width="50%">信箱:<a href="mailto:" title="寫信給留言者"></a></td>
<td colspan="2" width="50%">網址:<a href target="_blank"></a></td>
</tr>
<tr>
<td colspan="4"><font style="COLOR: green; LINE-HEIGHT: 150%">留言:</font><%=comment%><font style="COLOR: green; LINE-HEIGHT: 150%"><br>
-</font><%=time %><font style="COLOR: green; LINE-HEIGHT: 150%">(取自</font><%=ip %><font style= "COLOR: green; LINE-HEIGHT: 150%">)</font></td>
</tr>
</tbody>
</表>
<hr color="#0080c0" noshade size="1" width="100%">
<%
} catch (SQLException e) // 寫入資料庫失敗
{ out.print("<font color=red>留言失敗</font>");
輸出.print(MyQuery);
輸出.print(用戶ID);
}
別的
{
out.print("<font color=red>總共有"+testcomment.ErrorCount+"條錯誤數據,請修改!</font>");
%>
<腳本語言=“JavaScript”>
<!--
函數 test_comments(theForm)
{
if (theForm.name.value == "")
{alert("姓名不能為空!:-)");
theForm.name.focus();
返回(假);
}
if (theForm.name.value.length > 12)
{alert("姓名太長,不能多於12個字(既六個漢字)!");
theForm.name.focus();
返回(假);
}
if (theForm.address.value.length > 40)
{alert("地址太長,不能多於40個字元(20個漢字)!");
theForm.name.focus();
返回(假);
}
if (theForm.comment.value == "")
{alert("抱歉,留言不能為空!你必須輸入留言");
theForm.comment.focus();
返回(假);
}
if (theForm.comment.value.length > 1000)
{alert("抱歉,你的留言太長,最多為1000個字元!");
theForm.comment.focus();
返回(假);
}
返回(真);
} -->
<表>
<tr>
<td>
<table cellspacing="0" cellpadding="0">
<tr>
<td><!-- 表單開始-->
<form action="addmysql.jsp" method="POST" name="all_comments" onsubmit="javascript:return (test_comments(this))">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="60%">暱稱:<input name="name" size="20" value="<%if (username != null) out.print (username);%>">< %=testcomment .Comment_Er("用戶名")%></td>
<td nowrap width="40%">性別:<select name="sex" size="1">
<option selected value="男" <%if(sex=="男") out.print("select"); %>>男</選項>
<option value="女" <%if(sex=="女") out.print("select"); %>>女</選項>
<option value="保密" <%if(sex=="保密") out.print("select"); %>>保密</選項>
</select><%=testcomment.Comment_Er("性別")%></td>
</tr>
<tr>
<td colspan="2">網址:<input name="address" size="40" value="<%if (address!=null) out.print(address);%>"><% =testcomment .Comment_Er("位址")%></td>
</tr>
<tr>
<td>電話:<input name="telphone" size="15" value="<%if(telnumber!=null)out.print(telnumber);%>"><%=testcomment.Comment_Er( “電話” )%></td>
<td>郵編:<input name="postal" size="6" value="<%if(post!=null) out.print(post);%>"><%=testcomment.Comment_Er( “郵政” )%></td>
</tr>
<tr>
<td> OICQ:<input name="oicq" size="10" value="<%if(oicq!=null) out.print (oicq);%>"><%=testcomment.Comment_Er(" oicq")%></td>
<td> ICQ :<input name="icq" size="15" value="<%if(icq!=null)out.print(icq);%>"><%=testcomment.Comment_Er( “icq”)%></td>
</tr>
<tr>
<td colspan="2">郵箱:<input name="email" size="25" value="<%if(email!=null) out.print(email);%>"><%//= testcomment.Comment_Er("")%></td>
</tr>
<tr>
<td colspan="2">網址:<input name="url" size="40" value="<%if(url!=null)out.print(url);%>"><% //= testcomment.Comment_Er("")%></td>
</tr>
<tr>
<td colspan="2"><textarea cols="80" name="comment" rows="10" wrap="physical"><%if (comment!=null)out.print (comment);%>< /文字區域>
<tr>
<tdalign="right"><input name="put_submit" type="submit" value="確定" ?></td>
<tdalign="left"><input name="r" type="reset" value="重置"></td>
</tr>
</表>
</形式>
<!--提交表單結束-->
</td>
<td><%=testcomment.Comment_Er("comment")%>請注意:您所輸入的內容中,暱稱和留言為必須輸入的項目!
不支援html標誌</td>
</tr>
</表>
</td>
</tr>
</表>
<%
}
%>
</正文>