作 者: precom (皮蛋) 2000.12.10
  
reply.
jsp   
==================================== 
  
<html><head> 
  
<META content="text/html; charset=gb2312 " http-equiv=Content-Type>   
  
<title>张家界电话黄页(网上114)</title></head> 
  
<style type="text/css"> 
  
<!-- 
  
BODY { FONT-FAMILY: "宋体","Arial Narrow", "Times New Roman"; FONT-SI 
  
ZE: 9pt } 
  
.p1 { FONT-FAMILY: "宋体", "Arial Narrow", "Times New Roman"; FONT-SIZ 
  
E: 12pt } 
  
A:link { COLOR: #00793d; TEXT-DECORATION: none } 
  
A:visited { TEXT-DECORATION: none } 
  
A:hover { TEXT-DECORATION: underline} 
  
TD { FONT-FAMILY: "宋体", "Arial Narrow", "Times New Roman"; FONT-SIZE 
  
: 9pt } 
  
.p2 { FONT-FAMILY: "宋体", "Arial Narrow", "Times New Roman"; FONT-SIZ 
  
E: 9pt; LINE-HEIGHT: 150% } 
  
.p3 { FONT-FAMILY: "宋体", "Arial Narrow", "Times New Roman"; FONT-SIZ 
  
E: 9pt; LINE-HEIGHT: 120% }   
  
--> 
  
</style>   
  
  
<body>   
  
  
<%@ page contentType="text/html; charset=GB2312" %> 
  
<%@ page language="java" import="java.sql.*" %> 
  
<
jsp:useBean id="testInq" scope="page" class="ymbean.opDb" /> 
  
<% 
  
int pages=1; 
  
int pagesize=10; 
  
int count=0; 
  
int totalpages=0;   
  
String countsql="",inqsql="",updatesql="",lwhere="",insertsql="",st= 
  
"";   
  
String lw_title="\",lw_author="",pagetitle="\",author_http="",author_e 
  
mail="",lw_ico="0", 
  
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 href=reply.jsp?";   
  
lwhere=" where "; //只显示主贴   
  
/* 
  
Enumeration e = request.getParameterNames(); 
  
while (e.hasMoreElements()) { 
  
String name = (String) e.nextElement(); 
  
*/ 
  
try{ 
  
//取显示的页页序数 
  
pages = new Integer(request.getParameter("pages")).intValue(); 
  
} catch (Exception e) {} 
  
try{ 
  
//取查询参数 
  
lw_class1=new String(request.getParameter("lw_class1").getBytes 
  
("ISO8859_1")); 
  
lw_class2=new String(request.getParameter("lw_class2").getBytes 
  
("ISO8859_1")); 
  
zt_time=new String(request.getParameter("zt_time").getBytes("IS 
  
O8859_1")); 
  
zt_author=new String(request.getParameter("zt_author").getBytes 
  
("ISO8859_1"));   
  
lwhere=" where ( lw_class1='"+lw_class1+"' and lw_class2='"+lw_ 
  
class2+ 
  
"' and (lw_time='"+ zt_time+"' or zt_time='"+zt_time+ 
  
"') and (author_email='"+zt_author+"' or zt_author='"+zt 
  
_author+"') ) "; 
  
lurlt=lurlt+"lw_class1="+lw_class1+"&lw_class2="+lw_class2+"&zt 
  
_time="+zt_time+ 
  
"&zt_author="+zt_author+"&"; 
  
//out.print(lwhere); 
  
} catch (Exception e) { //out.print("error1: "+e+"<hr>"); 
  
}   
  
try{ 
  
//取得参数 留言内容 
  
lw_class1=new String(request.getParameter("lw_class1").getBytes("ISO 
  
8859_1")); 
  
lw_class2=new String(request.getParameter("lw_class2").getBytes("ISO 
  
8859_1")); 
  
lw_title=new String(request.getParameter("lw_title").getBytes("ISO88 
  
59_1")); 
  
lw_author=new String(request.getParameter("lw_author").getBytes("ISO 
  
8859_1")); 
  
pagetitle=new String(request.getParameter("pagetitle").getBytes("ISO 
  
8859_1")); 
  
author_http=new String(request.getParameter("author_http").getBytes( 
  
"ISO8859_1")); 
  
author_email=new String(request.getParameter("author_email").getByte 
  
s("ISO8859_1")); 
  
zt_time=new String(request.getParameter("zt_time").getBytes("ISO8859 
  
_1")); 
  
zt_author=new String(request.getParameter("zt_author").getBytes("ISO 
  
8859_1")); 
  
lw_ico=request.getParameter("gifface");   
  
} catch (Exception e) {}   
  
try{ 
  
lw_content=new String(request.getParameter("lw_content").getBytes("I 
  
SO8859_1")); 
  
String requestMethod=request.getMethod(); 
  
requestMethod=requestMethod.toUpperCase(); 
  
if(requestMethod.indexOf("POST")<0) 
  
{ out.print("非法操作!"); 
  
return; 
  
}   
  
//形成其他数据项 
  
author_ip=request.getRemoteAddr() ; 
  
lw_time=testInq.getCurrentDate("yyyyMMddHHmmss"); 
  
lw_type=""+"c"; //从贴 
  
answer_num=0; 
  
click_num=0; 
  
//================ 
  
st="','"; 
  
//保证留言所有数据项的长度在正常范围内 
  
if(lw_title.length()>50) lw_title=lw_title.substring(0,50); 
  
if(lw_author.length()>20) lw_author=lw_author.substring(0,20); 
  
if(author_http.length()>40) author_http=author_http.substring(0,40);   
  
if(author_email.length()>50) author_email=author_email.substring(0,4 
  
0); 
  
if(zt_author.length()>50) zt_author=zt_author.substring(0,40); 
  
if(lw_content.length()>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{ 
  
st=testInq.executeUpdate(insertsql); 
  
if(st.indexOf("executeUpdate ok")<0) 
  
out.print("msg="+st); 
  
else 
  
{ 
  
updatesql="update guestbook set answer_num=answer_num + 1 "+l 
  
where; 
  
//增加回复人数统计 
  
try{ 
  
st=testInq.executeUpdate(updatesql); 
  
if(st.indexOf("executeUpdate ok")<0) 
  
out.print("msg="+st); 
  
}catch (Exception e) { } 
  
} 
  
}catch (Exception e) { out.print("留言出错:"+e);} 
  
} catch (Exception e) {} 
  
%>   
  
<% 
  
//验证留言输入项合法性的javascript 
  
String ljs=" <SCRIPT language=JavaScript> 
"+ 
  
" <!-- 
"+ 
  
" function ValidInput() 
"+ 
  
" {if(document.sign.lw_author.value=="") 
"+ 
  
" {alert("请填写您的大名
。"); 
"+ 
  
" document.sign.lw_author.focus(); 
"+ 
  
" return false;} 
"+ 
  
" if(document.sign.lw_title.value=="") 
"+ 
  
" {alert("请填写留言主题
。"); 
"+ 
  
" document.sign.lw_title.focus(); 
"+ 
  
" return false;} 
"+ 
  
" if (document.sign.author_email.value!="") 
"+ 
  
" { if ((document.sign.author_email.value.indexOf("@")<0)//(document 
  
.sign.author_email.value.indexOf(":")!=-1)) 
"+ 
  
" {alert("您填写的EMail无效
,请填写一个有效的Email!"); 
"+ 
  
" document.sign.author_emaill.focus(); 
"+ 
  
" return false; 
"+ 
  
" } 
"+ 
  
" } 
"+ 
  
" return true; 
"+ 
  
" } 
"+ 
  
" function ValidSearch() 
"+ 
  
" { if(document.frmsearch.findstr.value=="") 
"+ 
  
" {alert("不能搜索空串!"); 
"+ 
  
" document.frmsearch.findstr.focus(); 
"+ 
  
" return false;} 
"+ 
  
" } 
"+ 
  
" //--> 
"+ 
  
" </SCRIPT> "; 
  
out.print(ljs); 
  
%>   
  
  
<% 
  
//显示最近时间发表的一页留言 
  
countsql="select count(lw_title) from guestbook "+lwhere; 
  
inqsql ="select lw_title,lw_author,lw_time,lw_content,author_ip, "+ 
  
" author_email from guestbook "+lwhere+" order by lw_time desc 
  
" ; 
  
updatesql="update guestbook set click_num=click_num + 1 "+lwhere;   
  
//增加浏览人数统计 
  
try{ 
  
st=testInq.executeUpdate(updatesql); 
  
if(st.indexOf("executeUpdate ok")<0) 
  
out.print("msg="+st); 
  
}catch (Exception e) { }   
  
//out.print(inqsql); 
  
if(pages>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>totalpages*pagesize) totalpages++; 
  
st=""+ 
  
" <TABLE align=center border=0 cellPadding=0 cellSpacing= 
  
0 width="95%"> "+ 
  
" <TBODY> <TR> <TD align=middle bgColor=#97badd width="1 
  
00%"><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 > 0 ) 
  
{ 
  
ResultSet rs = testInq.executeQuery(inqsql); 
  
ResultSetMetaData metaData = rs.getMetaData();   
  
int i; 
  
// 跳过pages -1 页,使cursor指向pages并准备显示 
  
for(i=1;i<=(pages - 1)*pagesize;i++) rs.next(); 
  
//显示第pages页开始 
  
st= " <CENTER> <TABLE border=0 cellSpacing=1 width="95%" 
  
> <TBODY> "; 
  
out.print(st); 
  
String linestr=""; 
  
for(i=1;i<=pagesize;i++) 
  
if(rs.next()) 
  
{ 
  
lw_title=rs.getString("lw_title"); 
  
lw_author=rs.getString("lw_author"); 
  
lw_time=rs.getString("lw_time"); 
  
lw_content=rs.getString("lw_content"); 
  
author_ip=rs.getString("author_ip"); 
  
author_email=rs.getString("author_email"); 
  
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); 
  
try{lw_content=testInq.addBr(testInq.removeComment(lw_co 
  
ntent));} catch (Exception e) {} 
  
linestr =""+ 
  
" <TR bgColor=#bed9fc> "+ 
  
" <TD align=left width="75%"><FONT "+ 
  
" color=#0000cd>留言主题:</FONT><STRONG>" 
  
+lw_title+"</STRONG></TD> "+ 
  
" <TD align=left width="25%"><FONT color= 
  
#0000cd>留言时间:</FONT>"+st+"</TD></TR> "+ 
  
" <TR bgColor=#e7f1fe> "+ 
  
" <TD colSpan=2 "+ 
  
" width="700" wrap=yes><BR>"+lw_content+" 
  
<BR><br></TD></TR> "+ 
  
" <TR bgColor=#bed9fc> "+ 
  
" <TD align=right colSpan=2 width="100%"> 
  
<FONT "+ 
  
" color=#0000cd>作者:</FONT>"+lw_author+" 
  
<FONT "+ 
  
" color=#0000cd>来源:</FONT>"+author_ip+" 
  
</TD></TR>"; 
  
out.println(linestr);   
  
} 
  
rs.close(); 
  
//显示第pages页结束 
  
st= " </TBODY></TABLE></CENTER></DIV><BR> "+   
  
" <CENTER><A "+ 
  
" href="guestbook.jsp"><FONT "+ 
  
" color=blue face=楷体_GB2312 size=4>返回留言板 
  
首页</FONT></A></CENTER><BR> "+ 
  
" <HR align=center noShade SIZE=1 width="95%" 
  
> ";   
  
out.print(st);   
  
int iFirst=1,iLast=totalpages,iPre,iNext; 
  
if(pages<=1) iPre=1; 
  
else iPre=pages - 1;   
  
if(pages>=totalpages) iNext=totalpages; 
  
else iNext=pages + 1;   
  
int n=(int)(count/pagesize); 
  
if(n*pagesize<count) n++; 
  
if(n>1) 
  
{ 
  
//for(i=1;i<=n;i++) out.print("<a href=inquire.jsp?pages= 
  
"+i+">"+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+"><FONT color=red>"+lt2+"&nbs 
  
p; </a>"+ 
  
lurlt + "pages="+iPre+"><FONT color=red>"+lt3+" 
  
</a>" + 
  
lurlt + "pages="+iNext+"><FONT color=red>"+lt4+" 
  
; </a>" + 
  
lurlt + "pages="+iLast+"><FONT color=red>"+lt5+" 
  
; </a>"; 
  
st=""+ 
  
" <TABLE align=center border=0 cellPadding=0 cellSpacing= 
  
0 width="95%"> "+ 
  
" <TBODY> <TR> <TD align=middle bgColor=#97badd width="1 
  
00%"><FONT color=#ff0000>"+ 
  
lt6+ 
  
" </FONT></TD></TR></TBODY></TABLE><BR> ";   
  
out.print(st);   
  
}   
  
} 
  
} catch (Exception e) { out.println("error: "+e); } 
  
}   
  
  
%>   
  
  
<% 
  
//留言板界面尾部 
  
String lbottom=""; 
  
lbottom=lbottom+ 
  
" <center> 
"+ 
  
" <FORM action=reply.jsp method=post name=sign> 
"+ 
  
" <INPUT name=lw_class1 type=hidden value=cnzjj_gt> 
"+ 
  
" <INPUT name=lw_class2 type=hidden value="+lw_class2+"> 
" 
  
+ 
  
" <INPUT name=pages type=hidden value=1> 
"+ 
  
" <INPUT name=zt_time type=hidden value="+zt_time+"> 
"+ 
  
" <INPUT name=zt_author type=hidden value="+zt_author+"> 
" 
  
+ 
  
" <TABLE bgColor=#d5e8fd border=0 cellSpacing=1 width="95%"> 
"+   
  
" <TBODY> 
"+ 
  
" <TR> 
"+ 
  
" <TD align=middle bgColor=#e6e6fa colSpan=2 noWrap><STRONG><FONT 
  
color=blue 
"+ 
  
" face=楷体_GB2312 size=5>发 表 意 见</FONT></STRONG> &nbs 
  
p; [加*的内容必须填写] </TD></TR> 
"+ 
  
" <TR> 
"+ 
  
" <TD noWrap width="45%"> 
"+ 
  
" <DIV align=left> 
"+ 
  
" <TABLE bgColor=#d5e8fd border=0 cellSpacing=1 width="100%"> 
  
"+ 
  
" <TBODY> 
"+ 
  
" <TR> 
"+ 
  
" <TD noWrap width="100%">*留言主题:<INPUT maxLength=40 n 
  
ame=lw_title 
"+ 
  
" size=36></TD></TR> 
"+ 
  
" <TR> 
"+ 
  
" <TD noWrap width="100%">*网上大名:<INPUT maxLength=18 n 
  
ame=lw_author 
"+ 
  
" size=36></TD></TR> 
"+ 
  
" <TR> 
"+ 
  
" <TD noWrap width="100%"> 主页标题:<INPUT maxLength 
  
=40 name=pagetitle 
"+ 
  
" size=36></TD></TR> 
"+ 
  
" <TR> 
"+ 
  
" <TD noWrap width="100%"> 主页地址:<INPUT maxLength 
  
=255 name=author_http 
"+ 
  
" size=36></TD></TR> 
"+ 
  
" <TR> 
"+ 
  
" <TD noWrap width="100%">*电子邮件:<INPUT maxLength=40 n 
  
ame=author_email 
"+ 
  
" size=36></TD></TR></TBODY></TABLE></DIV></TD> 
"+ 
  
" <TD noWrap vAlign=top width="55%"> 
"+ 
  
" <DIV align=left> 
"+ 
  
" <TABLE bgColor=#b6d7fc border=0 cellSpacing=1 width="100%"> 
  
"+ 
  
" <TBODY> 
"+ 
  
" <TR> 
"+ 
  
" <TD width="100%">请在下面填写你的留言:</TD></TR> 
"+   
  
" <TR> 
"+ 
  
" <TD width="100%"><TEXTAREA cols=50 name=lw_content rows= 
  
7></TEXTAREA></TD></TR></TBODY></TABLE></DIV></TD></TR> 
"+ 
  
" <TR> 
"+ 
  
" <TD bgColor=#fbf7ea colSpan=2 noWrap>表情
"+ 
  
" <INPUT name=gifface type=radio value=1 checked><IMG 
"+ 
  
" alt="1.gif (152 bytes)" height=15 src="1.gif" width=15> <I 
  
NPUT 
"+ 
  
" name=gifface type=radio value=2><IMG alt="2.gif (174 bytes)" 
  
height=15 
"+ 
  
" src="2.gif" width=15> <INPUT name=gifface type=radio value=3 
  
><IMG 
"+ 
  
" alt="3.gif (147 bytes)" height=15 src="3.gif" width=15> <I 
  
NPUT 
"+ 
  
" name=gifface type=radio value=4><IMG alt="4.gif (172 bytes)" 
  
height=15 
"+ 
  
" src="4.gif" width=15> <INPUT name=gifface type=radio value=5 
  
><IMG 
"+ 
  
" alt="5.gif (118 bytes)" height=15 src="5.gif" width=15> <I 
  
NPUT 
"+ 
  
" name=gifface type=radio value=6><IMG alt="6.gif (180 bytes)" 
  
height=15 
"+ 
  
" src="6.gif" width=15> <INPUT name=gifface type=radio value=7 
  
><IMG 
"+ 
  
" alt="7.gif (180 bytes)" height=15 src="7.gif" width=15> <I 
  
NPUT 
"+ 
  
" name=gifface type=radio value=8><IMG alt="8.gif (96 bytes)" 
  
height=15 
"+ 
  
" src="8.gif" width=15> <INPUT name=gifface type=radio value=9 
  
><IMG 
"+ 
  
" alt="9.gif (162 bytes)" height=15 src="9.gif" width=15> <I 
  
NPUT 
"+ 
  
" name=gifface type=radio value=10><IMG alt="10.gif (113 bytes) 
  
" height=15 
"+ 
  
" src="10.gif" width=15> <INPUT name=gifface type=radio value= 
  
11><IMG 
"+ 
  
" alt="11.gif (93 bytes)" height=15 src="11.gif" width=15> < 
  
INPUT 
"+ 
  
" name=gifface type=radio value=12> <IMG alt="12.gif (149 bytes 
  
)" height=14 
"+ 
  
" src="12.gif" width=15> 
"+ 
  
" <INPUT 
"+ 
  
" name=gifface type=radio value=13> <IMG alt="13.gif (149 bytes 
  
)" height=14 
"+ 
  
" src="13.gif" width=15> 
"+ 
  
" <INPUT 
"+ 
  
" name=gifface type=radio value=14> <IMG alt="14.gif (149 bytes 
  
)" height=14 
"+ 
  
" src="14.gif" width=15> 
"+ 
  
" <INPUT 
"+ 
  
" name=gifface type=radio value=15> <IMG alt="15.gif (149 bytes 
  
)" height=14 
"+ 
  
" src="15.gif" width=15> 
"+ 
  
" <INPUT 
"+ 
  
" name=gifface type=radio value=16> <IMG alt="16.gif (149 bytes 
  
)" height=14 
"+ 
  
" src="16.gif" width=15> </TD> 
"+ 
  
" </TR> 
"+ 
  
" <TR> 
"+ 
  
" <TD align=middle colSpan=2 noWrap><INPUT name=cmdGO onclick="re 
  
turn ValidInput()" type=submit value="提 交"> 
"+   
  
" <INPUT name=cmdPrev onclick="return ValidInput()" type=submit valu 
  
e="预 览"> 
"+ 
  
" <INPUT name=cmdCancel type=reset value="重 写"> <INPU 
  
T name=cmdBack onclick=javascript:history.go(-1) type=button value="返 
  
回"> 
"+ 
  
" </TD></TR></TBODY></TABLE></FORM></CENTER></DIV> "; 
  
out.print(lbottom);   
  
%>   
  
</body></html>   
  
作 者: precom (皮蛋) 2000.12.10