Как использовать JSP+MySQL для создания гостевой книги (3)
Автор:Eve Cole
Время обновления:2009-07-02 17:13:14
下面我们开始建立留言的页面!
<%@страница
импорт = "java.util.*"
импорт = "java.text.*"
импорт="java.sql.*"
импорт = "java.io.*"
импорт = "java.lang.*"
contentType="text/html; charset=gb2312"
%>
<%
класс CommentError// выдает исключение java.lang.NullPointerException
{ public String Username="",Sex="",Address="",Postal="",Oicq="",Icq="",Tel="",Comment="";
общедоступное логическое значение NoError=true;//false;
общественный ИНТ ErrorCount = 0;
частное логическое значение IsNumber(String s1) {}
общедоступный шрифт String (String se) {}
общественная строка Comment_Er(String se) {}
public void Имя пользователя (String se) {}
public void Sex (String se) {}
общедоступный недействительный адрес (String se) {}
public void Комментарий (String se) {}
public void Tel (String se) {}
public void Postal (String se) {}
public void Oicq (String se) {}
общественный недействительный Icq (String se) {}
}
класс ФорматКомментарий
{ public String replace (источник строки, строка oldString, строка newString) {}
общедоступная строка formatint (String se) {}
публичная строка fromatcomment(String se) {}
общественная строка toHtmlInput (String str) {}
общественная строка 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>
</голова>
<тело>
<p align="center"><center><font style="ЦВЕТ: синий; СЕМЕЙСТВО ШРИФТОВ: 方正舒体,华文行楷,隶书,宋体; РАЗМЕР ШРИФТА: 16pt">萍慧jsp留言薄</font </center></p>
<p выравнивание="центр">
<%! Строка имя пользователя, пол, адрес, сообщение, oicq, icq, номер телефона, комментарий, адрес электронной почты, URL.urltitle;
%>
<%
попробуйте {username=request.getParameter("имя");
}catch (NullPointerException e){username="";}
попробуйте {comment=request.getParameter("комментарий");
}catch (NullPointerException e){ comment="";}
попробуйте {sex=request.getParameter("секс");
}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("telphone");
}catch (NullPointerException e) { telnumber = ""; }
попробуйте {email=request.getParameter("электронная почта");
}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 ("гггг-ММ-дд чч:мм:сс", Locale.US )).format(new java.util.Date());
Строка userid="";
Строка MyQuery="";
此处我调用了一个对留言进行合法检验的类
CommentError testcomment = новый CommentError();
testcomment.Username(имя пользователя);
testcomment.Postal (сообщение);
testcomment.Sex(секс);
testcomment.Address(адрес);
testcomment.Tel(номер телефона);
тесткомментарий.Комментарий(комментарий);
testcomment.Oicq(oicq);
тесткомментарий.Icq(icq);
if (testcomment.NoError) // 留言中没有错误,写数据库
попробуй {//写数据库成功
java.sql.Соединение 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);
сообщение = FC.formatint (сообщение);
номер телефона = FC.formatint (номер телефона);
имя пользователя = FC.toSql (имя пользователя);
комментарий = FC.toSql (комментарий);
MyQuery="вставить в комментарий (имя пользователя,пол,адрес,ip,пост,oicq,icq,номер телефона,комментарий,время,url,электронная почта) значения ('"+имя пользователя+"','"+секс+"','"+ адрес+"','"+ip+"',"+post+","+oicq+","+icq+",'"+telnumber+"','"+комментарий+"',now(),'"+url+"' ,'"+электронная почта+"');";
sqlRst=sqlStmt.executeQuery (MyQuery); //向数据库中加入数据
sqlRst.close();//Обработка данных в режиме реального времени
sqlStmt.close ();//Отправка сообщений по электронной почте
sqlConn.закрыть(); //关闭数据库连接
out.print (время);
%>
<font size="5" face="华文行楷">留言成功, 谢谢!</font>
<table border="0" cellpadding="0" cellpacing="0" width="100%">
<тело>
<тр>
<td width="25%">Нажмите здесь: <%=username%></td>
<td width="25%">性别:<%=sex%></td>
<td colspan="2" width="50%">Доставка: <%=адрес %></td>
</tr>
<тр>
<td width="25%">Отображение: <%=telnumber%></td>
<td width="25%">Решение: <%=post%></td>
<td width="25%">OICQ: <%=oicq%></td>
<td width="25%">ICQ: <%=icq%></td>
</tr>
<тр>
<td colspan="2" width="50%">Электронная почта: <a href="mailto:" title="写信给留言者"></a></td>
<td colspan="2" width="50%">Обозначение: <a href target="_blank"></a></td>
</tr>
<тр>
<td colspan="4"><font style="ЦВЕТ: зеленый; LINE-HEIGHT: 150%">Цвет:</font><%=comment%><font style="ЦВЕТ: зеленый; LINE-HEIGHT: 150%"><br>
-</font><%=time %><font style="COLOR: green; LINE-HEIGHT: 150%">(来自</font><%=ip %><font style="ЦВЕТ: зеленый; LINE-HEIGHT: 150%">)</font></td>
</tr>
</tbody>
</таблица>
<hr color="#0080c0" noshade size="1" width="100%">
<%
} catch (SQLException e) // 写数据库失败
{ out.print ("<font color=red>留言失败</font>");
out.print (MyQuery);
out.print (идентификатор пользователя);
}
еще
{
out.print ("<font color=red>总共有"+testcomment.ErrorCount+"条错误数据,请修改!</font>");
%>
<script Language="JavaScript">
<!--
функция test_comments(theForm)
{
if (theForm.name.value == "")
{ alert("姓名不能为空!:-)");
форма.имя.фокус();
возврат (ложь);
}
если (имя формы.значение.длина > 12)
{ alert("姓名太长,不能多于12个字符(既六个汉字)!");
форма.имя.фокус();
возврат (ложь);
}
если (Форма.адрес.значение.длина > 40)
{ alert("地址太长,不能多于40个字符(20个汉字)!");
форма.имя.фокус();
возврат (ложь);
}
если (theForm.comment.value == "")
{ alert("抱歉,留言不能为空!你必须输入留言");
theForm.comment.focus();
возврат (ложь);
}
если (theForm.comment.value.length > 1000)
{ alert("抱歉,你的留言太长,最多为1000个字符!");
theForm.comment.focus();
возврат (ложь);
}
возврат (истина);
} -->
<таблица>
<тр>
<тд>
<таблица cellpacing="0" cellpadding="0">
<тр>
<td><!--表单开始-->
<form action="addmysql.jsp" метод="POST" name="all_comments" onsubmit="javascript:return (test_comments(this))">
<table border="0" width="100%" cellpacing="0" cellpadding="0">
<тр>
<td width="60%">昵 称:<input name="name" size="20" value="<%if (имя пользователя != null) out.print (имя пользователя);%>">< %=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 ("выбрать"); %>>女</option>
<option value="保密" <%if(sex=="保密") out.print ("выбрать"); %>>保密</option>
</select><%=testcomment.Comment_Er("sex")%></td>
</tr>
<тр>
<td colspan="2">地 址: <input name="address" size="40" value="<%if (address!=null) out.print(address);%>"><% =testcomment.Comment_Er("адрес")%></td>
</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>
<тр>
<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>
<тр>
<td colspan="2">Электронная почта:<input name="email" size="25" value="<%if(email!=null) out.print(email);%>"><%//= testcomment.Comment_Er("")%></td>
</tr>
<тр>
<td colspan="2">网 址:<input name="url" size="40" value="<%if(url!=null)out.print(url);%>"><% //=testcomment.Comment_Er("")%></td>
</tr>
<тр>
<td colspan="2"><textarea cols="80" name="comment" rows="10" Wrap="physical"><%if (comment!=null)out.print (comment);%>< /текстовая область>
<тр>
<td align="right"><input name="put_submit" type="submit" value="确定" ?></td>
<td align="left"><input name="r" type="reset" value="重置"></td>
</tr>
</таблица>
</форма>
<!----------->
</td>
<td><%=testcomment.Comment_Er("comment")%>请注意:你所输入的内容中,昵称和留言为必须输入的项目!<br>
不支持html标志</td>
</tr>
</таблица>
</td>
</tr>
</таблица>
<%
}
%>
</тело>