jsp留言板源代码二: 给jsp初学者.

作 者: precom (皮蛋) 2000.12.10

guestbook.jsp

 1<html><head>
 2<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
 3<title>张家界电话黄页(网上114)</title></head>
 4<style type="text/css">   
 5<!--   
 6BODY { FONT-FAMILY: "宋体","Arial Narrow", "Times New Roman"; FONT-SI   
 7ZE: 9pt }   
 8.p1 { FONT-FAMILY: "宋体", "Arial Narrow", "Times New Roman"; FONT-SIZ   
 9E: 12pt }   
10A:link { COLOR: #00793d; TEXT-DECORATION: none }   
11A:visited { TEXT-DECORATION: none }   
12A:hover { TEXT-DECORATION: underline}   
13TD { FONT-FAMILY: "宋体", "Arial Narrow", "Times New Roman"; FONT-SIZE   
14: 9pt }   
15.p2 { FONT-FAMILY: "宋体", "Arial Narrow", "Times New Roman"; FONT-SIZ   
16E: 9pt; LINE-HEIGHT: 150% }   
17.p3 { FONT-FAMILY: "宋体", "Arial Narrow", "Times New Roman"; FONT-SIZ   
18E: 9pt; LINE-HEIGHT: 120% }   
19  
20\-->   
21</style>
22<body>   
23  
24  

@ page contentType="text/html; charset=GB2312"

@ page language="java" import="java.sql.*"

1<jsp:usebean class="ymbean.opDb" id="testInq" scope="page"></jsp:usebean>   

int pages=1;
int pagesize=10;
int count=0;
int totalpages=0;

String countsql="",inqsql="",lwhere="",insertsql="",st="";

String lw_title="",lw_author="",pagetitle="",author_http="",author_e
mail="",lw_ico="",
lw_content="",lw_class1="";
String author_ip="",lw_time="",lw_class2="",lw_type="",zt_time="",zt
_author="";
int answer_num=0,click_num=0;
int inquire_item=1;
String inquire_itemt="",inquire_value="";
String lurlt="<a "+inquire_itemt+"="" "iso8859_1"));="" '";="" '%"+inquire_value+"%="" (e.hasmoreelements())="" (exception="" *="" +"z";="" 59_1"));="" 8859_1"));="" 9_1"));="" ;="" =="st=&quot;','&quot;;" and="" answer_num="0;" author_email="new" author_http="new" author_ip="request.getRemoteAddr()" catch="" click_num="0;" e="request.getParameterNames();" e();="" e)="" e.nextelement();="" else="" enumeration="" es("iso8859_1"));="" href='guestbook.jsp?",llink="";' if(inquire_item="4)" if(lw_title.length()="" if(requestmethod.indexof("post")<0)="" inquire_item="new" inquire_itemt="lw_title" inquire_value="new" integer(request.getparameter("pages")).intvalue();="" integer(request.getparameter("range")).intvalu="" like="" lurlt='lurlt+"range="+inquire_item+"&amp;findstr="+inquire_value+"&amp;"' lw_author="new" lw_class1="new" lw_class2="2" lw_content="new" lw_ico='request.getParameter("gifface");' lw_time='testInq.getCurrentDate("yyyyMMddHHmmss");' lw_title="new" lw_type="" lwhere='lwhere+"' name="(String)" out.print("非法操作!");="" pages="new" pagetitle="new" requestmethod="requestMethod.toUpperCase();" return;="" s("iso8859_1"));="" so8859_1"));="" string="" string(request.getparameter("author_email").getbyte="" string(request.getparameter("author_http").getbytes(="" string(request.getparameter("findstr").getbyt="" string(request.getparameter("gbname").getbytes("iso885="" string(request.getparameter("lw_author").getbytes("iso="" string(request.getparameter("lw_content").getbytes("i="" string(request.getparameter("lw_title").getbytes("iso88="" string(request.getparameter("pagetitle").getbytes("iso="" try{="" while="" zt_author="lw_author;" zt_time="lw_time;" {="" {}="" }="" 主贴="" 保证留言所有数据项的长度在正常范围内="" 取得参数="" 取显示的页页序数="" 取查询参数="" 只显示主贴="" 形成其他数据项="" 留言内容="">50) lw_title=lw_title.substring(0,50);
if(lw_author.length()&gt;20) lw_author=lw_author.substring(0,20);
if(author_http.length()&gt;40) author_http=author_http.substring(0,40);

if(author_email.length()&gt;50) author_email=author_email.substring(0,4
0);
if(lw_content.length()&gt;4000) lw_content=lw_content.substring(0,4000)
;

insertsql="insert into guestbook values('"+lw_title+st+lw_author+st+
author_http+st+
author_email+st+lw_ico+st+lw_time+"',"+answer_num+","+cli
ck_num+",'"+
author_ip+st+lw_class1+st+lw_class2+st+lw_type+st+zt_time
+st+zt_author+st+
lw_content+"')";
//out.print(insertsql);
//插入留言
try{
String lmsg=testInq.executeUpdate(insertsql);
if(lmsg.indexOf("executeUpdate ok")&lt;0)
out.print("lmsg="+lmsg);

}catch (Exception e) { out.print("错误:"+e);}
} catch (Exception e) {}

1  

//验证留言输入项合法性的javascript
String ljs=" <script language="JavaScript"> \n"+
" <!-- \n"+
" function ValidInput() \n"+
" {if(document.sign.lw_author.value=="") \n"+
" {alert("请填写您的大名。"); \n"+
" document.sign.lw_author.focus(); \n"+
" return false;} \n"+
" if(document.sign.lw_title.value=="") \n"+
" {alert("请填写留言主题。"); \n"+
" document.sign.lw_title.focus(); \n"+
" return false;} \n"+
" if (document.sign.author_email.value!="") \n"+
" { if ((document.sign.author_email.value.indexOf("@")<0)//(document
.sign.author_email.value.indexOf(":")!=-1)) \n"+
" {alert("您填写的EMail无效,请填写一个有效的Email!"); \n"+
" document.sign.author_emaill.focus(); \n"+
" return false; \n"+
" } \n"+
" } \n"+
" return true; \n"+
" } \n"+
" function ValidSearch() \n"+
" { if(document.frmsearch.findstr.value=="") \n"+
" {alert("不能搜索空串!"); \n"+
" document.frmsearch.findstr.focus(); \n"+
" return false;} \n"+
" } \n"+
" //--> \n"+
" </script> ";
out.print(ljs);

1  

//留言板界面首部
String ltop=" <div align="center"> \n"+
" <center> \n"+
" <form action="guestbook.jsp" method="post" name="frmsearch"> \n"+
" <input name="gbname" type="hidden" value="cnzjj_gt"/> \n"+
" <table align="center" border="0" cellspacing="1" width='"95%"'> \n"+
" <tbody> \n"+
" <tr> \n"+
" <td bgcolor="#336699" colspan="2" width='"100%"'> \n"+
" <p align="center"><font "="" \n"+="" color="#ffffff" face="楷体_GB2312" size="5">欢迎远方的朋友来张家界旅游观光</font></p></td></tr> \n"
+
" <tr bgcolor="#6699cc"> \n"+
" <td align="left" nowrap="" width='"50%"'>主页: <a "="" \n"+="" href='"http://www.zj.hn.cn"' target="_blank"><font "="" \n"+="" color="#ffffff">张家界旅游</font></a> 管理员: <a "="" +="" \n"="" href='"mailto:[email protected]"'><font color="#ffffff">
一民</font></a> \n"+
" &gt;&gt;<a "="" "="" \n"+="" href='"http://www.zj.hn.cn'><font "="" \n"+="" color="#ffffff">管理</font></a> &gt;&gt;<a "="" "="" \n"+="" href='"' http:="" www.zj.hn.cn=""><font "="" \n"+="" color="#ffffff">申请</font></a> </td> \n"+
" <td align="right" width='"50%"'><select class="ourfont" ize="1" name="range" s=""> \n"+
" <option selected="" value="0">按主题</option> <option value="1">按内
容</option> \n"+
" <option value="2">按作者</option> <option value="3">按日期 <option "="" \n"+="" value="4">按主题&amp;内容</option></option></select> <input name="findst" r=""/> <input name="search" onclick='"return' type="submit" ue='"搜' val="" validsearch()"="" 索"=""/> \n"+
" </td></tr></tbody></table></form> \n"+
" <hr align="center" noshade="" size="1" width='"95%"'/> \n"+
" </center></div> ";
out.print(ltop);

1  

//显示最近时间发表的一页留言
countsql="select count(lw_title) from guestbook "+lwhere;
inqsql ="select lw_title,answer_num,click_num,lw_author,lw_time,expres
sion,"+
" author_email,lw_class1,lw_class2 from guestbook "+lwhere+" o
rder by lw_time desc" ;

if(pages&gt;0)
{
try {
try{
ResultSet rcount=testInq.executeQuery(countsql);
if(rcount.next())
{
count = rcount.getInt(1);
}
rcount.close();
} catch (Exception el1) { out.println("count record error
"+el1+"<br/>" );
out.println(countsql);
}

totalpages=(int)(count/pagesize);
if(count&gt;totalpages*pagesize) totalpages++;
st=""+
" <table align="center" border="0" cellpadding="0" cellspacing="0" width='"95%"'> "+
" <tbody> <tr> <td 00%"="" align="middle" bgcolor="#97badd" width='"1'><font color="#ff0000">"+
" 共 "+totalpages+" 页,"+count+"
条. "+" 当前页: "+pages+
" </font></td></tr></tbody></table><br/> ";

out.print(st);

//out.print(" 共 "+totalpages+" 页,"+
count+" 条. "+" 当前页: "+pages+"<br/>");

st=" <center> "+
" <table border="0" cellpadding="2" cellspacing="1" width='"95%"'> "+
" <tbody> "+
" <tr> "+
" <td align="middle" bgcolor="#6699cc" width='"55%"'><font "="" "+="" color="#ffffff">留言主题</font></td> "+
" <td align="middle" bgcolor="#6699cc" width="50"><font "="" "+="" color="#ffffff">回应数</font></td> "+
" <td align="middle" bgcolor="#6699cc" width="40"><font "="" "+="" color="#ffffff">点击数</font></td> "+
" <td align="middle" bgcolor="#6699cc" width="100"><font "="" "+="" color="#ffffff">作者名</font></td> "+
" <td align="middle" bgcolor="#6699cc" width="140"><font "="" "+="" color="#ffffff">发表/回应时间</font></td></tr> ";
out.print(st);

if(count &gt; 0 )
{
ResultSet rs = testInq.executeQuery(inqsql);
ResultSetMetaData metaData = rs.getMetaData();

int i;
// 跳过pages -1 页,使cursor指向pages并准备显示
for(i=1;i&lt;=(pages - 1)*pagesize;i++) rs.next();
//显示第pages页开始
String linestr="";
for(i=1;i&lt;=pagesize;i++)
if(rs.next())
{
lw_title=rs.getString("lw_title");
answer_num=rs.getInt("answer_num");
click_num=rs.getInt("click_num");
lw_author=rs.getString("lw_author");
lw_time=rs.getString("lw_time");
st=lw_time.substring(0,4)+"-"+lw_time.substring(4,6)+"-"
+lw_time.substring(6,8)+":"+
lw_time.substring(8,10)+":"+lw_time.substring(10,12)+
":"+lw_time.substring(12,14);
lw_ico=rs.getString("expression");
author_email=rs.getString("author_email");
lw_class1=rs.getString("lw_class1");
lw_class2=rs.getString("lw_class2");
llink="reply.jsp?lw_class1="+lw_class1+"&amp;lw_class2="+lw_
class2+"&amp;zt_time="+lw_time+
"&amp;zt_author="+author_email;
linestr=" <tr bgcolor="#d5e8fd"> \n" +
" <td bgcolor="#d5e8fd"><img "="" src='""+lw_ico+".gif'/><a "="" "+="" "="" href='""+llink+"'>"+lw_title+"</a></td> "+
" <td align="middle">["+answer_num+"]</td>"+
" <td align="middle">"+click_num+"</td>"+
" <td align="middle"><a href='"mailto:"+author_ema' il+""="">"+lw_author+"</a></td>"+
" <td align="middle">"+st+"</td></tr>";

out.println(linestr);

}
rs.close();
//显示第pages页结束
st="</tbody></table><br/>";
out.print(st);

int iFirst=1,iLast=totalpages,iPre,iNext;
if(pages&lt;=1) iPre=1;
else iPre=pages - 1;

if(pages&gt;=totalpages) iNext=totalpages;
else iNext=pages + 1;

int n=(int)(count/pagesize);
if(n*pagesize<count) if(n="" n++;="">1)
{
//for(i=1;i&lt;=n;i++) out.print("<a "+i+"="" href="inquire.jsp?pages=">"+i+" </a>");
//out.print("<hr "="" align="center" noshade="" size="1" width='"95%'/>");
String lt1="返回主页",lt2="第一页",lt3="上一页",lt4="下一
页",lt5="最后一页",lt6="";
lt6="<a href="http://www.zj.hn.cn">"+ lt1 + " </a>"+
lurlt + "pages="+iFirst+"&gt;<font color="red">"+lt2+"&amp;nbs
p; </font></count)></center></a>"+
lurlt + "pages="+iPre+"&gt;<font color="red">"+lt3+"
" +
lurlt + "pages="+iNext+"&gt;<font color="red">"+lt4+"
; " +
lurlt + "pages="+iLast+"&gt;<font color="red">"+lt5+"
; ";
st=""+
" <table align="center" border="0" cellpadding="0" cellspacing="0" width='"95%"'> "+
" <tbody> <tr> <td 00%"="" align="middle" bgcolor="#97badd" width='"1'><font color="#ff0000">"+
lt6+
" </font></td></tr></tbody></table><br/> ";

out.print(st);

}

}
} catch (Exception e) { out.println("error: "+e); }
}

1  
2  

//留言板界面尾部
String lbottom="";
lbottom=lbottom+
" \n"+
" <form action="guestbook.jsp" method="post" name="sign"> \n"+
" <input name="gbname" type="hidden" value="cnzjj_gt"/> \n"+
" <input name="pages" type="hidden" value="1"/> \n"+
" <table bgcolor="#d5e8fd" border="0" cellspacing="1" width='"95%"'> \n"+

" <tbody> \n"+
" <tr> \n"+
" <td align="middle" bgcolor="#e6e6fa" colspan="2" nowrap=""><strong><font "="" \n"+="" color="blue" face="楷体_GB2312" size="5">发 表 意 见</font></strong> &amp;nbs
p; [加*的内容必须填写] </td></tr> \n"+
" <tr> \n"+
" <td nowrap="" width='"45%"'> \n"+
" <div align="left"> \n"+
" <table bgcolor="#d5e8fd" border="0" cellspacing="1" width='"100%"'>
\n"+
" <tbody> \n"+
" <tr> \n"+
" <td nowrap="" width='"100%"'>*留言主题:<input "="" \n"+="" ame="lw_title" maxlength="40" n="" size="36"/></td></tr> \n"+
" <tr> \n"+
" <td nowrap="" width='"100%"'>*网上大名:<input "="" \n"+="" ame="lw_author" maxlength="18" n="" size="36"/></td></tr> \n"+
" <tr> \n"+
" <td nowrap="" width='"100%"'> 主页标题:<input "="" \n"+="" maxlength="40" name="pagetitle" size="36"/></td></tr> \n"+
" <tr> \n"+
" <td nowrap="" width='"100%"'> 主页地址:<input "="" \n"+="" maxlength="255" name="author_http" size="36"/></td></tr> \n"+
" <tr> \n"+
" <td nowrap="" width='"100%"'>*电子邮件:<input "="" \n"+="" ame="author_email" maxlength="40" n="" size="36"/></td></tr></tbody></table></div></td> \n"+
" <td nowrap="" valign="top" width='"55%"'> \n"+
" <div align="left"> \n"+
" <table bgcolor="#b6d7fc" border="0" cellspacing="1" width='"100%"'>
\n"+
" <tbody> \n"+
" <tr> \n"+
" <td width='"100%"'>请在下面填写你的留言:</td></tr> \n"+

" <tr> \n"+
" <td width='"100%"'><textarea cols="50" name="lw_content" rows="7"></textarea></td></tr></tbody></table></div></td></tr> \n"+
" <tr> \n"+
" <td bgcolor="#fbf7ea" colspan="2" nowrap="">表情\n"+
" <input checked="" name="gifface" type="radio" value="1"/><img "="" (152="" \n"+="" alt='"1.gif' bytes)"="" height="15" src='"1.gif"' width="15"/> <i "="" \n"+="" name="gifface" nput="" type="radio" value="2"><img "="" (174="" \n"+="" alt='"2.gif' bytes)"="" height="15" src='"2.gif"' width="15"/> <input name="gifface" type="radio" value="3"/><img "="" (147="" \n"+="" alt='"3.gif' bytes)"="" height="15" src='"3.gif"' width="15"/> <i "="" \n"+="" name="gifface" nput="" type="radio" value="4"><img "="" (172="" \n"+="" alt='"4.gif' bytes)"="" height="15" src='"4.gif"' width="15"/> <input name="gifface" type="radio" value="5"/><img "="" (118="" \n"+="" alt='"5.gif' bytes)"="" height="15" src='"5.gif"' width="15"/> <i "="" \n"+="" name="gifface" nput="" type="radio" value="6"><img "="" (180="" \n"+="" alt='"6.gif' bytes)"="" height="15" src='"6.gif"' width="15"/> <input name="gifface" type="radio" value="7"/><img "="" (180="" \n"+="" alt='"7.gif' bytes)"="" height="15" src='"7.gif"' width="15"/> <i "="" \n"+="" name="gifface" nput="" type="radio" value="8"><img "="" (96="" \n"+="" alt='"8.gif' bytes)"="" height="15" src='"8.gif"' width="15"/> <input name="gifface" type="radio" value="9"/><img "="" (162="" \n"+="" alt='"9.gif' bytes)"="" height="15" src='"9.gif"' width="15"/> <i "="" \n"+="" name="gifface" nput="" type="radio" value="10"><img "="" (113="" "="" \n"+="" alt='"10.gif' bytes)="" height="15" src='"10.gif"' width="15"/> <input name="gifface" type="radio" value="11"/><img "="" (93="" \n"+="" alt='"11.gif' bytes)"="" height="15" src='"11.gif"' width="15"/> &lt;
INPUT \n"+
" name=gifface type=radio value=12&gt; <img "="" (149="" )"="" \n"+="" alt='"12.gif' bytes="" height="14" src='"12.gif"' width="15"/> \n"+
" <input "="" \n"+="" name="gifface" type="radio" value="13"/> <img "="" (149="" )"="" \n"+="" alt='"13.gif' bytes="" height="14" src='"13.gif"' width="15"/> \n"+
" <input "="" \n"+="" name="gifface" type="radio" value="14"/> <img "="" (149="" )"="" \n"+="" alt='"14.gif' bytes="" height="14" src='"14.gif"' width="15"/> \n"+
" <input "="" \n"+="" name="gifface" type="radio" value="15"/> <img "="" (149="" )"="" \n"+="" alt='"15.gif' bytes="" height="14" src='"15.gif"' width="15"/> \n"+
" <input "="" \n"+="" name="gifface" type="radio" value="16"/> <img "="" (149="" )"="" \n"+="" alt='"16.gif' bytes="" height="14" src='"16.gif"' width="15"/> </i></i></i></i></i></td> \n"+
" </tr> \n"+
" <tr> \n"+
" <td align="middle" colspan="2" nowrap=""><input name="cmdGO" onclick='"re' turn="" type="submit" validinput()"="" value='"提' 交"=""/> \n"+

" <input e='"预' name="cmdPrev" onclick='"return' type="submit" validinput()"="" valu="" 览"=""/> \n"+
" <input name="cmdCancel" type="reset" value='"重' 写"=""/> <inpu name="cmdBack" onclick="javascript:history.go(-1)" t="" type="button" value='"返' 回"=""> \n"+
" </inpu></td></tr></tbody></table></form> ";
out.print(lbottom);

1  
2</font></font></font></body></html>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus