JSP+MySQLを使ってゲストブックを作成する方法 (3)
著者:Eve Cole
更新時間:2009-07-02 17:13:14
以下我们開始建立留言的页面!
<%@page
インポート = "java.util.*"
インポート = "java.text.*"
import="java.sql.*"
インポート = "java.io.*"
インポート = "java.lang.*"
contentType="テキスト/html; charset=gb2312"
%>
<%
class CommentError// java.lang.NullPointerException をスローします
{ public String ユーザー名="",性別="",住所="",郵便番号="",Oicq="",Icq="",電話番号="",コメント="";
public boolean NoError=true;//false;
public int ErrorCount=0;
プライベートブール値 IsNumber(String s1) {}
public String font (String se) {}
public String Comment_Er(String se) {}
public void ユーザー名 (文字列 se) {}
public void Sex (String se) {}
public void アドレス (文字列 se) {}
public void コメント (文字列 se) {}
public void Tel (String se) {}
public void Postal (String se) {}
public void Oicq (String se) {}
public void Icq (String se) {}
}
クラス形式コメント
{ public String Replace(String source, String oldString, String newString) {}
public String formatint(String se) {}
public String fromatcomment(String se) {}
public String toHtmlInput(String str) {}
public String toHtml(String 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>
</head>
<本文>
<p align="center"><center><font style="COLOR: blue; FONT-FAMILY: 方正舒体,华文行楷,隶书,宋体; FONT-SIZE: 16pt">萍慧jsp留言薄</font ></center></p>
<p align="center">
<%!文字列 ユーザー名、性別、アドレス、投稿、oicq、icq、電話番号、コメント、電子メール、url.urltitle;
%>
<%
try{ username=request.getParameter("name");
}catch (NullPointerException e){ ユーザー名 = ";}
try{ comment=request.getParameter("コメント");
}catch (NullPointerException e){ comment="";}
try{ セックス=request.getParameter("セックス");
}catch (NullPointerException e){ セックス="";}
try{ address=request.getParameter("アドレス");
}catch (NullPointerException e){ アドレス="";}
try{ post=request.getParameter("郵便");
}catch (NullPointerException e){ post="";}
try{ oicq=request.getParameter("oicq");
}catch (NullPointerException e){ oicq="";}
try{ icq=request.getParameter("icq");
}catch (NullPointerException e){ icq="";}
try{ telnumber=request.getParameter("電話");
}catch (NullPointerException e) { telnumber= ""; }
try{ email=request.getParameter("email");
}catch (NullPointerException e) { email= ""; }
try{ url=request.getParameter("url");
}catch (NullPointerException e) { url= ""; }
try{ 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="";
ここでは、合法的な検査を実行するための 1 つの種類を使用しています
CommentError testcomment= new CommentError();
テストコメント.ユーザー名(ユーザー名);
testcomment.Postal (郵便);
testcomment.Sex(性別);
testcomment.Address(アドレス);
testcomment.Tel(電話番号);
テストコメント.コメント(コメント);
テストコメント.Oicq(oicq);
テストコメント.Icq(icq);
if (testcomment.NoError) //留言中没有错误,写数据库
試してみてください {//書き込みデータベース库成功
java.sql.Connection sqlConn; //データ接続オブジェクト
java.sql.Statement 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= 新しい FormatComment();
oicq=FC.formatint(oicq);
icq=FC.formatint(icq);
post=FC.formatint(post);
電話番号=FC.formatint(電話番号);
ユーザー名=FC.toSql(ユーザー名);
コメント=FC.toSql(コメント);
MyQuery="コメントに挿入 (ユーザー名,性別,アドレス,IP,投稿,oicq,icq,電話番号,コメント,時間,URL,電子メール) 値 ('"+ユーザー名+"','"+性別+"','"+ address+"','"+ip+"',"+post+","+oicq+","+icq+",'"+telnumber+"','"+comment+"',now(),'"+url+"' ,'"+メールアドレス+"');";
sqlRst=sqlStmt.executeQuery (MyQuery); //データをデータベースに追加する
sqlRst.close();//关闭結果集对オブジェクト
sqlStmt.close ();//关闭语句对象
sqlConn.close(); //关闭データ库接続
out.print (時間);
%>
<font size="5" face="华文行楷">留言成功、谢谢!</font>
<table border="0" cellpadding="0" cellpacing="0" width="100%">
<本体>
<tr>
<td width="25%">昵称:<%=username%></td>
<td width="25%">性癖:<%=sex%></td>
<td colspan="2" width="50%">地址:<%=address %></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" ノーシェード サイズ="1" width="100%">
<%
} catch (SQLException e) //写数据库失败
{ out.print ("<font color=red>留言失败</font>");
out.print (MyQuery);
out.print (ユーザーID);
}
それ以外
{
out.print ("<font color=red>总共有"+testcomment.ErrorCount+"条错误データベース,请修改!</font>");
%>
<スクリプト言語="JavaScript">
<!--
関数 test_comments(フォーム)
{
if (フォーム名.値 == "")
{alert("姓名は空にできません!:-)");
theForm.name.focus();
戻り値 (偽);
}
if (フォーム名.値の長さ > 12)
{alert("姓名太长,12文字以上は不可です!");
theForm.name.focus();
戻り値 (偽);
}
if (フォームのアドレス値の長さ > 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 cellpacing="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%" cellpacing="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>
<option value="女" <%if(sex=="女") out.print ("select"); %>>女</オプション>
<option value="保密" <%if(sex=="保密") out.print ("select"); %>>保密</option>
</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>
<td align="right"><input name="put_submit" type="submit" value="确定" ?></td>
<td align="left"><input name="r" type="reset" value="重置"></td>
</tr>
</テーブル>
</form>
<!--提交表单结束-->
</td>
<td><%=testcomment.Comment_Er("comment")%>请注意:私が入力した内容中、昵称と留言は必ず入力する項目です!<br>
不サポートhtml标志</td>
</tr>
</テーブル>
</td>
</tr>
</テーブル>
<%
}
%>
</body>