如何使用jsp+mysql创建留言本

4 篇文章 0 订阅
4 篇文章 0 订阅

1.分页显示留言

<%@page import="java.sql.*" 
import ="java.util.*" 
import ="java.io.*" 
contentType="text/html; charset=gb2312" 
%> 
<html> 
<head> 
<title>萍慧自由空间留言本</title> 
<meta name="GENERATOR" content="Microsoft FrontPage 4.0"> 
<meta name="ProgId" content="FrontPage.Editor.Document"> 
<style type="text/css"><!-- 
body { font-size: Arraypt} 
td { font-size: Arraypt}--> 
</style> 
</head> 
<body> 
<p align="center"><u><font size="5" face="华文新魏">萍慧自由空间留言本</font></u></p> 
<table width="75%" border="1" bgcolor="#FFCCFF" bordercolorlight="#0000FF"  
bordercolordark="#6666FF" cellpadding="0" cellspacing="0" align="center"> 
<tr>  
  <td colspan="5" height="202"> 
<%//下面处理用户的分页请求 
String string_page; 
int Page,RecoderPage,RecoderRow; 
try{string_page=request.getParameter("page"); 
}catch (NullPointerException e){string_page="";} 
try{Page=Integer.parseInt(string_page); 
}catch(NumberFormatException e) 
{Page=0; 
} 

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/p","test",""); 
//创建语句对象 
sqlStmt=sqlConn.createStatement  
(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); 
//执行Sql语句 
String sqlQuery="select count(*) from comment"; 
sqlRst=sqlStmt.executeQuery (sqlQuery); 
sqlRst.next(); 
int count=sqlRst.getInt(1); //取得总的留言记录数 
if (Page>=0)RecoderPage=Page;//处理页面 
else RecoderPage=0-Page*10; 
if (RecoderPage>count/15){ RecoderPage=count/15; Page=RecoderPage; }//页面越界 
  
RecoderRow=RecoderPage*15; //取得要显示的留言记录号 
sqlQuery="select * from comment order by userid desc limit "+RecoderRow+",15;"; //一次读取15条记录 
sqlRst=sqlStmt.executeQuery (sqlQuery); 
%> 总共有<%=count%>条留言  
<% while (sqlRst.next()) //显示留言 
{ //取得下一条记录 %> 第<%=sqlRst.getString("userid")%>条  
   <table width="Array5%" border="1" cellspacing="1" cellpadding="1"  
bordercolorlight="#6666FF" bordercolordark="#6666FF" bgcolor="#CCCCFF" align="center"> 
    <tr>  
     <td width="25%">昵称:<%=sqlRst.getString("username")%></td> 
     <td width="25%">性别:<%=sqlRst.getString("sex")%></td> 
     <td colspan="2" width="50%">地址:<%=sqlRst.getString("address") %></td> 
    </tr> 
    <tr>  
     <td width="25%">电话:<%=sqlRst.getString("telnumber")%></td> 
     <td width="25%">邮编:<%=sqlRst.getString("post")%></td> 
     <td width="25%">OICQ:<%=sqlRst.getString("oicq")%></td> 
     <td width="25%">ICQ:<%=sqlRst.getString("icq")%></td> 
    </tr> 
    <tr>  
     <td colspan="2" width="50%">Email: 
<a href="mailto:<%=sqlRst.getString("email")%>" title="写信给留言者"><%=sqlRst.getString("email")%></a></td> 
     <td colspan="2" width="50%">网址: 
<a href target="_blank"></a><a href="mailto:<%=sqlRst.getString("url")%>" title="写信给留言者"> 
<%=sqlRst.getString("urltitle")%></a></td> 
    </tr> 
    <tr>  
     <td colspan="4"><font style="line-height: 150%;color: green"> 
留言:<%=sqlRst.getString("comment")%><br> 
          -<%=sqlRst.getString("time") %>  
(来自<%=sqlRst.getString("ip") %>)</font></td> 
    </tr> 
   </table> 
   <hr align="center" noshade size="2" width="Array5%"> 
   <% } %> <% 
//下面对留言进行分页 
int i=count/15; //总页,每页显示15条记录 
int j=i/10; //总的大页 ,没10个页面分一大页 
//Page 显示的页面 
int StartPage; 
//int HrefPage; 
if (Page<0) Page=0-Page*10; //10页分一次 
StartPage=Page/10; //10页分一次 
out.print ("[共有"+(i+1)+"页]"); 
//out.print ("共有"+j+"屏"); 
//out.print ("显示第"+Page+"页"); 
//out.print ("StartPage="+StartPage); 
if (StartPage>0)  
  out.print ("|<a href="connectmysql.jsp?page=-"+Integer.toString(StartPage-1)+"">前10页</a>"); 
for (int k=0;k<10;k++) 
{ int p=StartPage*10+k; 
  if (p>i) break; 
  if (p==Page) 
   out.print ("|第"+Integer.toString(p+1)+"页"); 
  else 
   out.print ("|<a href="connectmysql.jsp?page="+p+"">第"+Integer.toString(p+1)+"页</a>"); 
} 
if (StartPage<j)  
  out.print ("|<a href="connectmysql.jsp?page=-"+Integer.toString(StartPage+1)+"">后10页</a>"); 
out.print ("|"); 
%> </td> 
</tr> 
</table> 
</body> 
<% 
//关闭结果集对象 
  sqlRst.close(); 
  //关闭语句对象 
sqlStmt.close (); 
//关闭数据库连接 
sqlConn.close(); 
%>


2.留言页面:

<%@page 
import ="java.util.*" 
import ="java.text.*" 
import="java.sql.*" 
import ="java.io.*" 
import ="java.lang.*" 
contentType="text/html; charset=gb2312" 
%> 
<% 
class CommentError// throws java.lang.NullPointerException 
{ public String Username="",Sex="",Address="",Postal="",Oicq="",Icq="",Tel="",Comment=""; 
public boolean NoError=true;//false; 
public int ErrorCount=0; 
private boolean IsNumber(String s1) {} 
public String font (String se) {} 
public String Comment_Er(String se) {} 
public void Username (String se) {} 
public void Sex (String se) {} 
public void Address (String se) {} 
public void Comment (String se) {} 
public void Tel (String se) {} 
public void Postal (String se) {} 
public void Oicq (String se) {} 
public void Icq (String se) {} 
} 
class FormatComment 
{ 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> 
<head> 
<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> 

<body> 

<p align="center"><center><font style="COLOR: blue; FONT-FAMILY: 方正舒体,华文行楷,隶书,宋体; FONT-SIZE: 16pt">萍慧jsp留言薄</font></center></p> 
<p align="center"> 

<%! String username,sex,address,post,oicq,icq,telnumber,comment,email,url.urltitle; 
%> 
<% 
try{ username=request.getParameter("name"); 
}catch (NullPointerException e){ username="";} 
                           
try{ comment=request.getParameter("comment"); 
}catch (NullPointerException e){ comment="";} 
                           
try{ sex=request.getParameter("sex"); 
}catch (NullPointerException e){ sex="";} 
                           
try{ address=request.getParameter("address"); 
}catch (NullPointerException e){ address="";} 
                           
try{ post=request.getParameter("postal"); 
}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("telphone"); 
}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()); 
String userid=""; 
String MyQuery=""; 
此处我调用了一个对留言进行合法检验的类 
CommentError testcomment= new CommentError(); 
testcomment.Username(username);                      
testcomment.Postal (post);                      
testcomment.Sex(sex); 
testcomment.Address(address); 
testcomment.Tel(telnumber); 
testcomment.Comment(comment);     
testcomment.Oicq(oicq);    
testcomment.Icq(icq); 

if (testcomment.NoError) //留言中没有错误,写数据库                      
try {//写数据库成功                      
  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= new FormatComment();                      
  oicq=FC.formatint(oicq);                      
  icq=FC.formatint(icq);                      
  post=FC.formatint(post);                      
  telnumber=FC.formatint(telnumber);         
  username=FC.toSql(username);         
  comment=FC.toSql(comment);         
  MyQuery="insert into comment (username,sex,address,ip,post,oicq,icq,telnumber,comment,time,url,email) values ("+username+","+sex+","+address+","+ip+","+post+","+oicq+","+icq+","+telnumber+","+comment+",now(),"+url+","+email+");"; 
  sqlRst=sqlStmt.executeQuery (MyQuery); //向数据库中加入数据 
   sqlRst.close();//关闭结果集对象 
  sqlStmt.close ();//关闭语句对象 
  sqlConn.close(); //关闭数据库连接 
  out.print (time); 
                       
%> 
<font size="5" face="华文行楷">留言成功,谢谢!</font> 
<table border="0" cellpadding="0" cellspacing="0" width="100%"> 
<tbody> 
  <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%">Email:<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> 
</table> 
<hr color="#0080c0" noshade size="1" width="100%"> 

<% 
} catch (SQLException e) //写数据库失败 
{ out.print ("<font color=red>留言失败</font>"); 
  out.print (MyQuery); 
  out.print (userid); 
} 
else 
{ 
  out.print ("<font color=red>总共有"+testcomment.ErrorCount+"条错误数据,请修改!</font>"); 
%> 

<script language="JavaScript"> 
<!-- 
function test_comments(theForm) 
{ 
if (theForm.name.value == "") 
{    alert("姓名不能为空!:-)"); 
  theForm.name.focus(); 
  return (false); 
} 
if (theForm.name.value.length > 12) 
{ alert("姓名太长,不能多于12个字符(既六个汉字)!"); 
  theForm.name.focus(); 
  return (false); 
} 

if (theForm.address.value.length > 40) 
{ alert("地址太长,不能多于40个字符(20个汉字)!"); 
  theForm.name.focus(); 
  return (false); 
} 

if (theForm.comment.value == "") 
{ alert("抱歉,留言不能为空!你必须输入留言"); 
  theForm.comment.focus(); 
  return (false); 
} 
if (theForm.comment.value.length > 1000) 
{ alert("抱歉,你的留言太长,最多为1000个字符!"); 
  theForm.comment.focus(); 
  return (false); 
} 
return (true); 
} --> 
<table> 
<tr> 
  <td> 
   <table cellspacing="0" cellpadding="0"> 
    <tr> 
     <td><!--表单开始--> 
      <form action="addmysql.jsp" method="POST" name="all_comments" οnsubmit="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("username")%></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> 
           <option value="保密" <%if(sex=="保密") out.print ("select"); %>>保密</option> 
          </select><%=testcomment.Comment_Er("sex")%></td> 
        </tr> 
        <tr> 
         <td colspan="2">地 址:<input name="address" size="40" value="<%if (address!=null) out.print(address);%>"><%=testcomment.Comment_Er("address")%></td> 
        </tr> 
        <tr> 
         <td>电 话:<input name="telphone" size="15" value="<%if(telnumber!=null)out.print(telnumber);%>"><%=testcomment.Comment_Er("tel")%></td> 
         <td>邮 编:<input name="postal" size="6" value="<%if(post!=null) out.print(post);%>"><%=testcomment.Comment_Er("postal")%></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">Email:<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);%></textarea> 
        <tr> 
         <td align="right"><input name="put_submit" type="submit" value="确定" ?></td> 
         <td align="left"><input name="r" type="reset" value="重置"></td> 
        </tr> 
       </table> 
      </form> 
      <!--提交表单结束--> 
     </td> 
     <td><%=testcomment.Comment_Er("comment")%>请注意:你所输入的内容中,昵称和留言为必须输入的项目!<br> 
      不支持html标志</td> 
    </tr> 
   </table> 
  </td> 
</tr> 
</table> 
<% 
} 
%> 
</body> 


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值