`
soboer
  • 浏览: 1309794 次
文章分类
社区版块
存档分类
最新评论

jsp留言板源代码一

 
阅读更多

http://www.doozz.com 2000-12-18 00:00 T|T

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

作 者: precom (皮蛋)

oracle数据表创建.

create table guestbook (

lw_title varchar2(100) not null, --留言主题

lw_author varchar2(20) not null, --网上大名 pk

author_http varchar2(40) , --主页地址

author_email varchar2(40) not null,--电子信箱 pk

expression varchar2(2) not null,--表情

lw_time varchar2(14) not null,--发表回应时间

answer_num number(3) not null,--回应数

click_num number(4) not null,--点击数

author_ip varchar2(16) ,--来源ip

lw_class1 varchar2(10) not null,--留言板大类 pk

lw_class2 varchar2(20) not null,--论坛栏目 pk

lw_type varchar2(1) not null,--留言类别,即是否为主贴

zt_time varchar2(14) ,--主贴时间

zt_author varchar2(40) ,--主贴email

lw_content varchar2(4000) ,--内容

constraint pk_guestbook primary key(lw_class1,lw_class2,lw

_time,lw_author)

) storage (initial 5M next 5M pctincrease 1);

本文来自: 站长之家(http://www.doozz.com) 详细出处参考:http://www.doozz.com/View/30/30010403/5553.html

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

http://www.doozz.com 2000-12-18 00:00 T|T

作 者: precom (皮蛋) 2000.12.10

guestbook.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="",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 href=guestbook.jsp?",llink="";

lwhere=" where lw_type='z' "; //只显示主贴

/*

Enumeration e = request.getParameterNames();

while (e.hasMoreElements()) {

String name = (String) e.nextElement();

*/

try{

//取显示的页页序数

pages = new Integer(request.getParameter("pages")).intValue();

} catch (Exception e) {}

try{

//取查询参数

inquire_item=new Integer(request.getParameter("range")).intValu

e();

inquire_value=new String(request.getParameter("findstr").getByt

es("ISO8859_1"));

if(inquire_item==0) inquire_itemt="lw_title";

else if(inquire_item==1) inquire_itemt="lw_content";

else if(inquire_item==2) inquire_itemt="lw_author";

else if(inquire_item==3) inquire_itemt="lw_time";

else if(inquire_item==4) inquire_itemt="lw_title";

lwhere=lwhere+" and "+inquire_itemt+" like '%"+inquire_value+"%

'";

lurlt=lurlt+"range="+inquire_item+"&findstr="+inquire_value+"&"

;

} catch (Exception e) {}

try{

//取得参数 留言内容

lw_class1=new String(request.getParameter("gbname").getBytes("ISO885

9_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"));

lw_ico=request.getParameter("gifface");

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_class2="2";

lw_type=""+"z"; //主贴

zt_time=lw_time;

zt_author=lw_author;

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(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{

String lmsg=testInq.executeUpdate(insertsql);

if(lmsg.indexOf("executeUpdate ok")<0)

out.print("lmsg="+lmsg);

}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);

%>

<%

//留言板界面首部

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 color=#ffffff face=楷体_GB2312 \n"+

" 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:dzx@mail.zj.hn.cninfo.net\"><FONT color=#ffffff>

一民</FONT></A> \n"+

" >><A \n"+

" href=\"http://www.zj.hn.cn \"><FONT \n"+

" color=#ffffff>管理</FONT></A> >><A \n"+

" href=\" http://www.zj.hn.cn \"><FONT \n"+

" color=#ffffff>申请</FONT></A> </TD> \n"+

" <TD align=right width=\"50%\"><SELECT class=ourfont name=range s

ize=1> \n"+

" <OPTION selected value=0>按主题</OPTION> <OPTION value=1>按内

容</OPTION> \n"+

" <OPTION value=2>按作者</OPTION> <OPTION value=3>按日期</OPTI

ON> <OPTION \n"+

" value=4>按主题&内容</OPTION></SELECT> <INPUT name=findst

r> <INPUT name=search onclick=\"return ValidSearch()\" type=submit val

ue=\"搜 索\"> \n"+

" </TD></TR></TBODY></TABLE></FORM> \n"+

" <HR align=center noShade SIZE=1 width=\"95%\"> \n"+

" </CENTER></div> ";

out.print(ltop);

%>

<%

//显示最近时间发表的一页留言

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>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页开始

String linestr="";

for(i=1;i<=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+"&lw_class2="+lw_

class2+"&zt_time="+lw_time+

"&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<=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+

" \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

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>

本文来自: 站长之家(http://www.doozz.com) 详细出处参考:http://www.doozz.com/View/30/30010403/5552.html

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

http://www.doozz.com 2000-12-18 00:00 T|T

作 者: 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*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> \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>

本文来自: 站长之家(http://www.doozz.com) 详细出处参考:http://www.doozz.com/View/30/30010403/5551.html

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

http://www.doozz.com 2000-12-18 00:00 T|T

作 者: precom (皮蛋)

其中的opDb.java

============================================

package ymbean;

import java.sql.*;

import java.util.*;

import java.text.*;

import com.chinazjj.sql.dsql;

import com.chinazjj.util.dutil;

//其他的包dsql,dutil中的内容我就不再贴了,在本文件中用到的两个函数都很简

public class opDb {

private String inquire_value="",inquire_item="",disptype="",inqtyp

e="";

private String inquire_num="",inquire_addr="",inquire_name="";

private dutil ldutil=new dutil();

public opDb() {

}

public void setinquire_item(String name) { inquire_item= name

;}

public void setinquire_value( String name ) { inquire_value = ldut

il.chineseToUnicode(name);}

public void setdisptype(String name) { disptype=name;}

public void setinqtype(String name) { inqtype=name;}

public void setinquire_num( String name ) { inquire_num = ldutil.c

hineseToUnicode(name);}

public void setinquire_addr( String name ) { inquire_addr = ldutil

.chineseToUnicode(name);}

public void setinquire_name( String name ) { inquire_name = ldutil

.chineseToUnicode(name);}

public String getinquire_dndata()

{

return "";

}

public ResultSet executeQuery(String sql)

{

ResultSet rs = null;

Statement lstmt = null;

try {

lstmt = connectdb();

rs = lstmt.executeQuery(sql);

System.out.println("executeQuery: "+sql);

} catch(SQLException ex) { System.err.println("executeQuery: " +

ex.getMessage());}

return rs;

}

public Statement getStmt()

{

Statement lstmt = null;

lstmt = connectdb();

return lstmt;

}

public String executeUpdate(String sql)

{

ResultSet rs = null;

Statement lstmt = null;

try {

lstmt = connectdb();

lstmt.executeUpdate(sql);

System.out.println("executeUpdate: "+sql);

lstmt.executeUpdate("commit");

}

catch(SQLException ex) { System.err.println("executeQuery: " + e

x.getMessage());

return(ex.getMessage());

}

return("executeUpdate ok");

}

public Statement connectdb()

{

Statement lstmt=null;

Connection conn=null;

final String connect_string="jdbc:oracle:thin:scott/tiger@192.168.

0.1:1521:clubdb";

final String driver_string="oracle.jdbc.driver.OracleDriver";

dsql mysql=new dsql();

lstmt=mysql.dconnectdb(driver_string,connect_string);

return lstmt;

}

public Statement connectdb(String connect_string)

{

Statement lstmt=null;

Connection conn=null;

final String driver_string="oracle.jdbc.driver.OracleDriver";

dsql mysql=new dsql();

lstmt=mysql.dconnectdb(driver_string,connect_string);

return lstmt;

}

//=========other function ===================================

public String getCurrentDate(String ldateform)

{

return(new SimpleDateFormat(ldateform).format(new java.util.Date(

)));

}

//========"/n" to "<br>" =====================================

//去掉奇怪的:

public String removeComment(String Content){

String makeContent=new String();

StringTokenizer strToken=new StringTokenizer(Content,"\n");

String tempToken=null;

while(strToken.hasMoreTokens()){

tempToken=strToken.nextToken();

if(tempToken.indexOf(":")!=0)

makeContent=makeContent+tempToken+"\n";

}

return makeContent;

}

//将/n转换成为回车<br>

public String addBr(String Content){

String makeContent=new String();

StringTokenizer strToken=new StringTokenizer(Content,"\n");

while(strToken.hasMoreTokens()){

makeContent=makeContent+"<br>"+strToken.nextToken();

}

return makeContent;

}

//将<br>转换成为回车/n

public String addCr(String Content){

String makeContent=new String();

StringTokenizer strToken=new StringTokenizer(Content,"<br>");

while(strToken.hasMoreTokens()){

makeContent=makeContent+"\n"+strToken.nextToken();

}

return makeContent;

}

//====================================================================

=====

public boolean getIdentify(String name1,String pwd1)

{

try

{

String sql="select * from club_users where username='" + name1 + "'

and password='" + pwd1 + "'";

ResultSet rs = executeQuery(sql);

if(rs.next()) { rs.close(); return(true);}

else { rs.close();return(false);}

}catch (Exception e) { return(false);}

}

public void counts(String pagename)

{

executeUpdate("update call_count set counts=counts + 1 where pagenam

e='"+pagename+"'");

}

//==================张家界市民虚拟社区管理============================

======

public String getDeptSuper(String vp) //取版主

{

String vst="未知";

try{

String sql="select administrator from club_cvcdept where deptno=

'"+vp+"'";

ResultSet rs = executeQuery(sql);

if(rs.next()) vst=rs.getString(1);

rs.close();

} catch (Exception e) {}

return vst;

}

public String getDeptName(String vp) //取版名

{

String vst="未知";

try{

String sql="select deptnote from club_cvcdept where deptno='"+vp

+"'";

ResultSet rs = executeQuery(sql);

if(rs.next()) vst=rs.getString(1);

rs.close();

} catch (Exception e) {}

return vst;

}

public String getUserEmail(String vp) //取社区用户email

{

String vst="未知";

try{

String sql="select email from club_users where username='"+vp+"'

";

ResultSet rs = executeQuery(sql);

if(rs.next()) vst=rs.getString(1);

rs.close();

} catch (Exception e) {}

return vst;

}

public Object getaValue(String vp) //取社区用户email及其他

{

Object vst=null;

try{

String sql=vp;

ResultSet rs = executeQuery(sql);

if(rs.next()) vst=rs.getObject(1);

rs.close();

} catch (Exception e) {}

return vst;

}

public String getsValue(String vp) //取社区用户email及其他

{

String vst="";

try{

String sql=vp;

ResultSet rs = executeQuery(sql);

if(rs.next()) vst=rs.getString(1);

rs.close();

} catch (Exception e) {}

return vst;

}

}//end opDb.java

本文来自: 站长之家(http://www.doozz.com) 详细出处参考:http://www.doozz.com/View/30/30010403/5550.html

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics