jsp留言板源代码三: 给jsp初学者.
作 者: 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> \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);
%>
%
//显示最近时间发表的一页留言
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*pagesizecount) 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> \n"+
" FORM action=reply.jsp method=post name=sign> \n"+
" INPUT name=lw_class1 type=hidden value=cnzjj_gt> \n"+
" INPUT name=lw_class2 type=hidden value="+lw_class2+"> \n"
+
" INPUT name=pages type=hidden value=1> \n"+
" INPUT name=zt_time type=hidden value="+zt_time+"> \n"+
" INPUT name=zt_author type=hidden value="+zt_author+"> \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
color=blue \n"+
" face=楷体_GB2312 size=5>发 表 意 见/FONT>/STRONG> 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 maxLength=40 n
ame=lw_title \n"+
" size=36>/TD>/TR> \n"+
" TR> \n"+
" TD noWrap width=\&;100%\&;>*网上大名:INPUT maxLength=18 n
ame=lw_author \n"+
" size=36>/TD>/TR> \n"+
" TR> \n"+
" TD noWrap width=\&;100%\&;> 主页标题:INPUT maxLength
=40 name=pagetitle \n"+
" size=36>/TD>/TR> \n"+
" TR> \n"+
" TD noWrap width=\&;100%\&;> 主页地址:INPUT maxLength
=255 name=author_http \n"+
" size=36>/TD>/TR> \n"+
" TR> \n"+
" TD noWrap width=\&;100%\&;>*电子邮件:INPUT maxLength=40 n
ame=author_email \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 name=gifface type=radio value=1 checked>IMG \n"+
" alt=\&;1.gif (152 bytes)\&; height=15 src=\&;1.gif\&; width=15> I
NPUT \n"+
" name=gifface type=radio value=2>IMG alt=\&;2.gif (174 bytes)\&;
height=15 \n"+
" src=\&;2.gif\&; width=15> INPUT name=gifface type=radio value=3
>IMG \n"+
" alt=\&;3.gif (147 bytes)\&; height=15 src=\&;3.gif\&; width=15> I
NPUT \n"+
" name=gifface type=radio value=4>IMG alt=\&;4.gif (172 bytes)\&;
height=15 \n"+
" src=\&;4.gif\&; width=15> INPUT name=gifface type=radio value=5
>IMG \n"+
" alt=\&;5.gif (118 bytes)\&; height=15 src=\&;5.gif\&; width=15> I
NPUT \n"+
" name=gifface type=radio value=6>IMG alt=\&;6.gif (180 bytes)\&;
height=15 \n"+
" src=\&;6.gif\&; width=15> INPUT name=gifface type=radio value=7
>IMG \n"+
" alt=\&;7.gif (180 bytes)\&; height=15 src=\&;7.gif\&; width=15> I
NPUT \n"+
" name=gifface type=radio value=8>IMG alt=\&;8.gif (96 bytes)\&;
height=15 \n"+
" src=\&;8.gif\&; width=15> INPUT name=gifface type=radio value=9
>IMG \n"+
" alt=\&;9.gif (162 bytes)\&; height=15 src=\&;9.gif\&; width=15> I
NPUT \n"+
" name=gifface type=radio value=10>IMG alt=\&;10.gif (113 bytes)
\&; height=15 \n"+
" src=\&;10.gif\&; width=15> INPUT name=gifface type=radio value=
11>IMG \n"+
" alt=\&;11.gif (93 bytes)\&; height=15 src=\&;11.gif\&; width=15>
INPUT \n"+
" name=gifface type=radio value=12> IMG alt=\&;12.gif (149 bytes
)\&; height=14 \n"+
" src=\&;12.gif\&; width=15> \n"+
" INPUT \n"+
" name=gifface type=radio value=13> IMG alt=\&;13.gif (149 bytes
)\&; height=14 \n"+
" src=\&;13.gif\&; width=15> \n"+
" INPUT \n"+
" name=gifface type=radio value=14> IMG alt=\&;14.gif (149 bytes
)\&; height=14 \n"+
" src=\&;14.gif\&; width=15> \n"+
" INPUT \n"+
" name=gifface type=radio value=15> IMG alt=\&;15.gif (149 bytes
)\&; height=14 \n"+
" src=\&;15.gif\&; width=15> \n"+
" INPUT \n"+
" name=gifface type=radio value=16> IMG alt=\&;16.gif (149 bytes
)\&; height=14 \n"+
" src=\&;16.gif\&; width=15> /TD> \n"+
" /TR> \n"+
" TR> \n"+
" TD align=middle colSpan=2 noWrap>INPUT name=cmdGO onclick=\&;re
turn ValidInput()\&; type=submit value=\&;提 交\&;> \n"+
" INPUT name=cmdPrev onclick=\&;return ValidInput()\&; type=submit valu
e=\&;预 览\&;> \n"+
" INPUT name=cmdCancel type=reset value=\&;重 写\&;> INPU
T name=cmdBack onclick=javascript:history.go(-1) type=button value=\&;返
回\&;> \n"+
" /TD>/TR>/TBODY>/TABLE>/FORM>/CENTER>/DIV> ";
out.print(lbottom);
%>
/body>/html>
作 者: precom (皮蛋) 2000.12.10
您可能感兴趣的文章:- JS实现留言板功能
- js使用DOM操作实现简单留言板的方法
- JS+CSS模拟可以无刷新显示内容的留言板实例
- JS实现留言板功能[楼层效果展示]
- js 实现的可折叠留言板(附源码下载)
- jsp留言板源代码二: 给jsp初学者.
- 本人ajax留言板的源程序 不错的应用js
- 用ReactJS和Python的Flask框架编写留言板的代码示例
- JS实现简易留言板(节点操作)
- js实现web留言板功能