在制作本留言板之前,请先熟悉一下JSP连接Access数据库的方法。
推荐文章:http://www.numb1.com/com/jsp/show.php?no=05090201
我们先看一下我们要制作的留言板的外观如图
下载地址:http://www.numb1.com/download/download.php?id=numb1_jaatree
第一步. 表格设计
新建一数据库取名为numb1.mdb。新建一表格(命名为lyb)如图所示
字段包括ID(数字,该字段设为主键)、TITLE(文本)、NAME(文本)、MAIL(文本)、WEB(文本)、QQ(文本)、IP(文本)、TIM(日期/时间)、TEXT(备注)、RETXT(备注)和ISRE(文本),其中TEXT用来存放留言内容,RETXT用来存放回复留言内容,ISRE用来记录留言是否已经回复。
第二步. 建立数据源
打开“控制面板”→“管理工具”→“数据源 (ODBC)”,选择“系统DNS”选项卡,单击添加,选择“Dirver do Microsoft Access(*.mdb)”单击完成,数据源命名为:jspdata,单击选择按钮,选择新建数据库位置后点确定就OK了。如图所示
第三步. 编写代码
本留言板是又九个JSP页面组成,分别是显示留言列表(index.jsp,即首页)、显示留言页面(show.jsp)、留言页面(send.jsp)、处理留言页面(act.jsp)、处理回复留言页面(actre.jsp)、登录页面(log.jsp、log.jsp)和删除页面(drop.jsp和dell.jsp)。图片的加工再此不在讲解。
1) 首页编写
首页运行时如下图:
首页index.jsp代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%
String showmas="n";//showmas="y"时可在首页中填写留言,showmas="n"不可在首页中填写留言
String password="numb1.com";//管理员密码
String mm=null;mm=(String)session.getAttribute("pass");
int i=0,x=0;//计数器
int showrow=8;//每页显示条数
int pages=0;//当前页数
int start; //本页开始条数
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:numb1","","");//后面参数可为空
Statement st=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs=st.executeQuery("select id,title,name,tim,isre from lyb order by id desc");
String strp=(String)request.getParameter("pages");
int sig=1,alt;
if(strp==null){sig=1;}else{
for(int i1=0;i1<strp.length();i1++){
alt=strp.charAt(i1);
if(alt<48||alt>57){
sig=1;break;
}else{ sig=2;}
}
}
if(sig==1){pages=1;}else{pages=Integer.parseInt(strp);}
rs.last();
int count=rs.getRow();
int laspc;
int pa=count/showrow;
if(count%showrow>0){pa=pa+1;laspc=count%showrow;}else{laspc=showrow;}
if(pages<0)pages=1;
if(pages>pa)pages=pa;
start=(pages-1)*showrow+1;
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>请您留言</title>
<style type="text/css">
<!--
body {
background-image: url(img/bg.gif);
margin-top: 0px;
margin-bottom: 5px;
}
.style1 {color: #FF0000}
.style2 {color: #FFFFFF}
td{font-size:14px}
th{font-size:16px}
a:link{text-decoration:none;color:#006600}
a:visited{text-decoration:none;color:#006600}
a:hover{text-decoration:underline;color:#ff0000}
.l {font-size:13px}
.l a:link{text-decoration:none;color:#006600}
.l a:visited{text-decoration:none;color:#006600}
.l a:hover{text-decoration:none;color:#ff0000}
-->
</style>
<script language="JavaScript" type="text/JavaScript">
function check_form(theform)
{
if (theform.text.value=="")
{
alert("您还没留下您的意见呢!");
theform.text.focus();
return false;
}
if (theform.title.value=="")
{
alert("请留下您意见的主题!");
theform.title.focus();
return false;
}
if (theform.name.value=="")
{
alert("请输入您的大名!");
theform.name.focus();
return false;
}
}
function checkall(check) {
var i = <%=start%>;
var theObj;
for(; i<=<%=(showrow+start)%>; i++)
{
theObj = eval("form1.del" + i);
if (theObj != null)
theObj.checked = check;
}
}
function allcheck() {
if (document.form1.a.checked == true)
checkall(true);
else
checkall(false);
}
</script>
</head>
<body><form name="form1" method="post" action="dell.jsp">
<table width="780" border="0" align="center" cellspacing="0" bgcolor="#f8fff7">
<tr>
<td height="2"></td>
</tr>
<tr>
<td><img src="img/title.jpg" width="778" height="80"></td>
</tr>
<tr>
<td><hr></td>
</tr>
<tr>
<td class="l"> <a href="http://www.numb1.com" target="_blank">首页</a> > <span class="style1">您的意见</span> </td>
</tr>
<tr>
<td height="10"><% for(int y=0;y<showrow;y++){%><input name="d<%=y%>" type="hidden" id="a1"><% }%></td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="1" bgcolor="#c1d1c1">
<tr>
<td bgcolor="#f8f8f8"><%
%><table width="100%" border="0" cellspacing="0">
<tr>
<td width="41%" class="l"> 第<%=pages%>页 共<%=pa%>页 <% if(pages>1){%>
<a href="index.jsp">首页</a> <a href="index.jsp?pages=<%=pages-1%>">上页</a> <% } if(pages<pa){%>
<a href="index.jsp?pages=<%=pages+1%>">下页</a> <a href="index.jsp?pages=<%=pa%>">尾页</a> <% }%></td>
<td width="59%" class="l"><div align="right"><% if(password.equals(mm)){ %><input name="imageField" type="image" src="img/del1.jpg" width="76" height="21" border="0" onMouseOut="this.src='img/del1.jpg'" onMouseOver="this.src='img/del2.jpg'">
<input name="showrow" type="hidden" id="showrow" value="<%=showrow%>">
<input name="pages" type="hidden" id="pages" value="<%=pages%>">
<% }else{
if(showmas.equals("n")){%>
<a href="send.jsp"><img src="img/send1.jpg" width="77" height="21" border="0" onMouseOut="this.src='img/send1.jpg'" onMouseOver="this.src='img/send2.jpg'"></a> <% } %>
<a href="log.jsp"><img src="img/admin1.jpg" width="77" height="21" border="0" onMouseOut="this.src='img/admin1.jpg'" onMouseOver="this.src='img/admin2.jpg'"></a>
<% }%>
</div></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td height="10"></td>
</tr>
</table>
<table width="780" border="0" align="center" bgcolor="#EFF0E2" style="BORDER-BOTTOM: #4F7B0D 1px solid; BORDER-LEFT: #4F7B0D 1px solid; BORDER-RIGHT: #4F7B0D 1px solid; BORDER-TOP: #4F7B0D 1px solid">
<tr bgcolor="#4F7B0D">
<th width="53" height="20"><span class="style2"><% if(password.equals(mm)){out.print("<input type=/"checkbox/" id=/"a/" onclick=/"return allcheck()/">");}else{out.print("编号");}%></span></th>
<th width="336" bgcolor="#4F7B0D"><span class="style2">主题</span></th>
<th width="83"><span class="style2">留言者</span></th>
<th width="217"><span class="style2">留言时间</span></th>
<th width="69"><span class="style2">回复</span></th>
</tr>
<%
rs.absolute(start);
rs.previous();
while(rs.next()){
%>
<tr bgcolor="#F8FFF7">
<td><div align="center"><% if(password.equals(mm)){%><input name="del<%=rs.getRow()%>" type="checkbox" value="<%=rs.getString(1)%>"><%}else{out.print(rs.getRow());}%></div></td>br><td>
<div align="center"><a href="show.jsp?id=<%=rs.getString(1)%>" target="_blank"><%=rs.getString(2)%></a></div></td>
<td><div align="center"><%=rs.getString(3)%></div></td>
<td><div align="center"><%=rs.getString(4)%></div></td>
<td><div align="center" class="style1"><% if(rs.getString(5).equals("y")){out.print("已回复");}%></div></td>
</tr>
<%
i++;
if(i==showrow)break;
}
%>
</table>
<%
rs.close();
st.close();
con.close();
%>
<table width="780" border="0" align="center" cellspacing="0">
<tr>
<td height="10"></td>
</tr>
<tr>
<td><table width="100%" border="0" align="center" cellspacing="1" bgcolor="#c1d1c1">
<tr>
<td bgcolor="#f8fff7" class="l"><div align="right">
<%
if(pa<=5){
for(int j=1;j<pa+1;j++){
if(j==pages){%><font color=#ff0000>第<%=pages%>页</font> <% }else{%><a href="index.jsp?pages=<%=j%>">第<%=j%>页</a> <% }
}
}else if(pages<4){
for(int k=1;k<pages+3;k++){
if(k==pages){%><font color=#ff0000>第<%=k%>页</font> <% }else{ %><a href="index.jsp?pages=<%=k%>">第<%=k%>页</a> <% }
}
}else if((pa-pages)<4){
for(int l=pa-5;l<=pa;l++){if(l==pages){ %><font color="#FF0000">第<%=l%>页</font> <% }else{ %><a href="index.jsp?pages=<%=l%>">第<%=l%>页</a> <% }}
}else{
for(int m=pages-3;m<pages+3;m++){if(m==pages){ %><font color="#FF0000">第<%=m%>页</font> <% }else{ %><a href="index.jsp?pages=<%=m%>">第<%=m%>页</a> <% }}
}%> 共<%=pa%>页 <%=count%>条 </div></td>
</tr>
</table></td>
</tr>
</table></form>
<%
if(!password.equals(mm)){
if(showmas.equals("y")){
%>
<form name="form2" method="post" action="act.jsp" onSubmit="return check_form(this)">
<table width="780" border="0" align="center" cellspacing="1" bgcolor="#4F7B0D">
<tr bgcolor="#EFF3E7">
<td colspan="2"><table width="100%" border="0" cellspacing="1">
<tr>
<th bgcolor="#4F7B0D"><span class="style2">填 写 留 言</span></th>
</tr>
</table></td>
</tr>
<tr bgcolor="#EFF3E7">
<td width="459" bgcolor="#EFF3E7"><div align="center">
<table width="100%" border="0">
<tr>
<td class="l"><div align="center">留言内容 <span class="style1">*</span></div></td>
</tr>
<tr>
<td><div align="center">
<textarea name="text" cols="55" rows="8" id="text" style="BORDER: #4F7B0D 1px solid; background: #f8fff7;color: #4F7B0D; overflow:auto;"></textarea>
</div></td>
</tr>
</table>
</div></td>
<td width="314" bgcolor="#EFF3E7"><table width="98%" border="0" align="center">
<tr>
<td class="l"><div align="right">主题:</div></td>
<td><input name="title" type="text" id="title" style="BORDER: #4F7B0D 1px solid;color:#4F7B0D;background: #f8fff7;">
<span class="style1">*</span></td>
</tr>
<tr>
<td class="l"><div align="right">昵称:</div></td>
<td><input name="name" type="text" id="name" style="BORDER: #4F7B0D 1px solid;color:#4F7B0D;background: #f8fff7;">
<span class="style1">*</span></td>
</tr>
<tr>
<td class="l"><div align="right">E-mail:</div></td>
<td><input name="mail" type="text" id="mail" style="BORDER: #4F7B0D 1px solid;color:#4F7B0D;background: #f8fff7;"></td>
</tr>
<tr>
<td class="l"><div align="right">网站:</div></td>
<td><input name="web" type="text" id="web" style="BORDER: #4F7B0D 1px solid;color:#4F7B0D;background: #f8fff7;"></td>
</tr>
<tr>
<td class="l"><div align="right">Q Q: </div></td>
<td><input name="qq" type="text" id="qq" style="BORDER: #4F7B0D 1px solid;color:#4F7B0D;background: #f8fff7;"></td>
</tr>
<tr>
<th colspan="2"><input name="imageField" type="image" src="img/ok1.jpg" width="69" height="20" border="0" onMouseOut="this.src='img/ok1.jpg'" onMouseOver="this.src='img/ok2.jpg'"> <a href="http://www.numb1.com"><img src="img/back1.jpg" width="69" height="20" border="0" onMouseOver="this.src='img/back2.jpg'" onMouseOut="this.src='img/back1.jpg'"></a></th>
</tr>
</table></td>
</tr>
</table>
</form>
<% }}%>
<table width="780" border="0" align="center" cellspacing="1" bgcolor="#4F7B0D">
<tr>
<td bgcolor="#639A10" class="l"><div align="center" class="style2">欢迎进入本站留言板 <a href="http://www.numb1.com" target="_blank"><font color="#ffffff">版权所有 © 2004-2005</font></a></div></td>
</tr>
</table>
</body>
</html>
简述: String mm=null;mm=(String)session.getAttribute("pass"); 该语句是用来验证是否登录,当管理员登录后,删除留言按钮出现,发表留言按钮隐藏。在此页面,管理员可以一次删除多条留言。如:<% if(password.equals(mm)){ %><input name="imageField" type="image" src="img/del1.jpg" width="76" height="21" border="0" onMouseOut="this.src='img/del1.jpg'" onMouseOver="this.src='img/del2.jpg'"> <input name="showrow" type="hidden" id="showrow" value="<%=showrow%>"><input name="pages" type="hidden" id="pages" value="<%=pages%>"><% },验证,当登录密码与所设置(默认密码为:numb1.com)相同时,显示删除按钮,同时包含两个隐藏字段,用来控制所选与删除留言的语句对应,发送给删除页面(dell.jsp),连接数据库的几条语句再次不在多讲,可以参考:http://www.numb1.com/com/jsp/show.php?no=05090201 。
String strp=(String)request.getParameter("pages");
int sig=1,alt;
if(strp==null){sig=1;}else{
for(int i1=0;i1
alt=strp.charAt(i1);
if(alt<48||alt>57){
sig=1;break;
}else{ sig=2;}
}
}
if(sig==1){pages=1;}else{pages=Integer.parseInt(strp);}
此处语句用来从地址栏里得到页码,当留言多了的时候,需要分页处理。其中if(alt<48||alt>57){是用来严整输入的参数是否是数字,如果不是数字,页面默认进入第一页。
2) 显示页面编写
显示页面运行时如下图:
显示留言页面代码show.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%
String id=(String)request.getParameter("id");
String password="numb1.com";//管理员密码
String mm=null;mm=(String)session.getAttribute("pass");
if(id==null){
out.print("<font color=#FF0000><h3>ERROR!</h3></font>");}else{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:numb1");//,"","");
Statement st=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from lyb where id="+id;
ResultSet rs=st.executeQuery(sql);
rs.next();
%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>留言内容</title>
<style type="text/css">
<!--
body {
background-image: url(img/bg.gif);
margin-top: 0px;
margin-bottom: 5px;
}
.style2 {color: #FFFFFF}
td{font-size:14px}
th{font-size:16px}
a:link{text-decoration:none;color:#006600}
a:visited{text-decoration:none;color:#006600}
a:hover{text-decoration:underline;color:#ff0000}
.l {font-size:13px}
.l a:link{text-decoration:none;color:#006600}
.l a:visited{text-decoration:none;color:#006600}
.l a:hover{text-decoration:none;color:#ff0000}
.style3 {color: #FF0000}
-->
</style>
</head>
<body>
<table width="780" border="0" align="center" cellspacing="0" bgcolor="#f8fff7">
<tr>
<td height="2"></td>
</tr>
<tr>
<td><img src="img/title.jpg" width="778" height="80"></td>
</tr>
<tr>
<td><hr></td>
</tr>
<tr>
<td class="l"> <a href="http://www.numb1.com" target="_blank">首页</a> > <a href="index.jsp">留言列表</a> > <span class="style3">留言内容</span></td>
</tr>
<tr>
<td height="10"></td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="1" bgcolor="#c1d1c1">
<tr>
<td bgcolor="#f8f8f8"><table width="100%" border="0" cellspacing="0">
<tr>
<td class="l"><div align="right"><a href="index.jsp"><img src="img/back1.jpg" width="69" height="20" border="0" onMouseOut="this.src='img/back1.jpg'" onMouseOver="this.src='img/back2.jpg'"></a>
<% if(password.equals(mm)){%><a href="drop.jsp?id=<%=id%>"><img src="img/del1.jpg" width="76" height="21" border="0" onMouseOver="this.src='img/del2.jpg'" onMouseOut="this.src='img/del1.jpg'"></a>
<% }else{%>
<a href="send.jsp"><img src="img/send1.jpg" width="77" height="21" border="0" onMouseOut="this.src='img/send1.jpg'" onMouseOver="this.src='img/send2.jpg'"></a> <a href="log.jsp?id=<%=id%>"><img src="img/admin1.jpg" width="77" height="21" border="0" onMouseOut="this.src='img/admin1.jpg'" onMouseOver="this.src='img/admin2.jpg'"></a>
<% }%> </div></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td height="10"></td>
</tr>
</table>
<table width="780" border="0" align="center" bgcolor="#F8FFF7" style="BORDER-BOTTOM: #4F7B0D 1px solid; BORDER-LEFT: #4F7B0D 1px solid; BORDER-RIGHT: #4F7B0D 1px solid; BORDER-TOP: #4F7B0D 1px solid">
<tr>
<td height="20">
<table width="100%" border="0" cellspacing="1" bgcolor="#4F7B0D">
<tr>
<td width="40%"> <span class="style2"><%=rs.getString(2)%></span></td>
<td width="60%"><div align="right"><span class="style2"><%=rs.getString(3)%> 发表于:<%=rs.getString(8)%> IP地址:<% if(password.equals(mm)){out.print(rs.getString(7));}else{String str=rs.getString(7);int l=str.lastIndexOf(".");l++; String ip=str.substring(0,l);out.print(ip+"*");}%></span> </div></td>
</tr>
</table></td>
</tr>
<tr bgcolor="#F8FFF7">
<td><div align="center">
<table width="100%" border="0" cellspacing="0">
<tr>
<td width="7%"><div align="right">网站:</div></td>
<td width="33%"><%=rs.getString(5)%></td>
<td width="9%"><div align="right">Q Q:</div></td>
<td width="19%"><%=rs.getString(6)%></td>
<td width="13%"><div align="right">E-mail:</div></td>
<td width="19%"><%=rs.getString(4)%></td>
</tr>
</table>
</div> <div align="center"></div> <div align="center"></div> <div align="center"></div> <div align="center"></div></td>
</tr>
<tr bgcolor="#F8FFF7">
<td height="1" background="img/b.gif"></td>
</tr>
<tr bgcolor="#F8FFF7">
<td><table width="97%" border="0" align="center" cellspacing="5">
<tr>
<td><%=rs.getString(9)%></td>
</tr>
</table></td>
</tr>
<tr bgcolor="#F8FFF7">
<td><table width="98%" border="0" align="center" cellspacing="5">
<tr>
<td bgcolor="#d1e8c1"><table width="100%" border="0" cellspacing="8">
<tr>
<td><%=rs.getString(10)%></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table>
<% if(password.equals(mm)){%>
<br><form name="form1" method="post" action="actre.jsp">
<table width="780" border="0" align="center" cellspacing="1" bgcolor="#4F7B0D">
<tr bgcolor="#EFF3E7">
<td><table width="100%" border="0" cellspacing="1">
<tr>
<th bgcolor="#4F7B0D"><span class="style2">回 复 留 言</span></th>
</tr>
</table></td>
</tr>
<tr bgcolor="#EFF3E7">
<td bgcolor="#EFF3E7"><div align="center">
<table width="100%" border="0" cellspacing="5">
<tr>
<td><div align="center">
<textarea name="text" cols="100" rows="8" id="text" style="BORDER: #4F7B0D 1px solid; background: #f8fff7;color: #4F7B0D; overflow:auto;"></textarea>
</div></td>
</tr>
<tr>
<th><input name="imageField" type="image" src="img/ok1.jpg" width="69" height="20" border="0" onMouseOut="this.src='img/ok1.jpg'" onMouseOver="this.src='img/ok2.jpg'">
<input name="id" type="hidden" id="id" value="<%=id%>">
<a href="http://www.numb1.com"><img src="img/back1.jpg" width="69" height="20" border="0" onMouseOver="this.src='img/back2.jpg'" onMouseOut="this.src='img/back1.jpg'"></a></th>
</tr>
</table>
</div></td>
</tr>
</table>
</form><%}%>
<br>
<table width="780" border="0" align="center" cellspacing="1" bgcolor="#4F7B0D">
<tr>
<td bgcolor="#639A10" class="l"><div align="center" class="style2">欢迎进入本站留言板 <a href="http://www.numb1.com" target="_blank"><font color="#ffffff">版权所有 © 2004-2005</font></a></div></td>
</tr>
</table>
</body>
</html>
<% }%>
简述: 该页面必须要有一个参数,即show.jsp?id=1,否则要出错,if(id==null){ out.print("<font color=#FF0000><h3>ERROR!</h3></font>");},该语句是用来严重id是否为空的。管理员登录后,可以删除此留言,也可以回复此留言。
3) 填写留言页面编写
显示页面运行时如下图:
填写留言页面send.jsp代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>发表留言</title>
<style type="text/css">
<!--
body {
background-image: url(img/bg.gif);
margin-top: 0px;
margin-bottom: 5px;
}
.style1 {color: #FF0000}
.style2 {color: #FFFFFF}
td{font-size:14px}
th{font-size:16px}
a:link{text-decoration:none;color:#006600}
a:visited{text-decoration:none;color:#006600}
a:hover{text-decoration:underline;color:#ff0000}
.l {font-size:13px}
.l a:link{text-decoration:none;color:#006600}
.l a:visited{text-decoration:none;color:#006600}
.l a:hover{text-decoration:none;color:#ff0000}
-->
</style>
<script language="JavaScript" type="text/JavaScript">
function check_form(theform)
{
if (theform.text.value=="")
{
alert("您还没留下您的意见呢!");
theform.text.focus();
return false;
}
if (theform.title.value=="")
{
alert("请留下您意见的主题!");
theform.title.focus();
return false;
}
if (theform.name.value=="")
{
alert("请输入您的大名!");
theform.name.focus();
return false;
}
}
</script>
</head>
<body>
<form name="form1" method="post" action="act.jsp" onSubmit="return check_form(this)">
<table width="780" border="0" align="center" cellspacing="0" bgcolor="#f8fff7">
<tr>
<td height="3"></td>
</tr>
<tr>
<td><img src="img/title.jpg" width="778" height="80"></td>
</tr>
<tr>
<td><hr></td>
</tr>
<tr>
<td height="10"></td>
</tr>
<tr>
<td><table width="100%" border="0" align="center" cellspacing="1" bgcolor="#c1d1c1">
<tr>
<td bgcolor="#E6F9C8" class="l"> <a href="http://www.numb1.com" target="_blank">首页</a> > <a href="index.jsp">网友留言</a> > <span class="style1">发表留言</span> </td>
</tr>
</table></td>
</tr>
<tr>
<td height="10"></td>
</tr>
</table>
<table width="780" border="0" align="center" cellspacing="1" bgcolor="#4F7B0D">
<tr bgcolor="#EFF3E7">
<td colspan="2"><table width="100%" border="0" cellspacing="1">
<tr>
<th bgcolor="#4F7B0D"><span class="style2">填 写 留 言</span></th>
</tr>
</table></td>
</tr>
<tr bgcolor="#EFF3E7">
<td width="459" bgcolor="#EFF3E7" valign="top"><div align="center">
<table width="100%" border="0">
<tr>
<td class="l"><div align="center">留言内容 <span class="style1">*</span></div></td>
</tr>
<tr>
<td><div align="center">
<textarea name="text" cols="55" rows="8" id="text" style="BORDER: #4F7B0D 1px solid; background: #f8fff7;color: #4F7B0D; overflow:auto;"></textarea>
</div></td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</div></td>
<td width="314" bgcolor="#EFF3E7" valign="top"><table width="98%" border="0" align="center">
<tr>
<td class="l"><div align="right">主题:</div></td>
<td><input name="title" type="text" id="title" style="BORDER: #4F7B0D 1px solid;color:#4F7B0D;background: #f8fff7;">
<span class="style1">*</span></td>
</tr>
<tr>
<td class="l"><div align="right">昵称:</div></td>
<td><input name="name" type="text" id="name" style="BORDER: #4F7B0D 1px solid;color:#4F7B0D;background: #f8fff7;">
<span class="style1">*</span></td>
</tr>
<tr>
<td class="l"><div align="right">E-mail:</div></td>
<td><input name="mail" type="text" id="mail" style="BORDER: #4F7B0D 1px solid;color:#4F7B0D; background: #f8fff7;"></td>
</tr>
<tr>
<td class="l"><div align="right">网站:</div></td>
<td><input name="web" type="text" id="web" style="BORDER: #4F7B0D 1px solid;color:#4F7B0D;background: #f8fff7;"></td>
</tr>
<tr>
<td class="l"><div align="right">Q Q: </div></td>
<td><input name="qq" type="text" id="qq" style="BORDER: #4F7B0D 1px solid;color:#4F7B0D;background: #f8fff7;"></td>
</tr>
<tr>
<td height="8" colspan="2"></td>
</tr>
<tr>
<th colspan="2"><input name="imageField" type="image" src="img/ok1.jpg" width="69" height="20" border="0" onMouseOut="this.src='img/ok1.jpg'" onMouseOver="this.src='img/ok2.jpg'">
<a href="index.jsp"><img src="img/back1.jpg" width="69" height="20" border="0" onMouseOver="this.src='img/back2.jpg'" onMouseOut="this.src='img/back1.jpg'"></a></th>
</tr>
</table></td>
</tr>
</table>
</form>
<p> </p>
<table width="780" border="0" align="center" cellspacing="1" bgcolor="#4F7B0D">
<tr>
<td bgcolor="#639A10" class="l"><div align="center" class="style2">欢迎进入本站留言板 <a href="http://www.numb1.com" target="_blank"><font color="#ffffff">版权所有 © 2004-2005</font></a></div></td>
</tr>
</table>
</body>
</html>
JSP+Access留言板制作详解(图) |
|
|
|
简述:由于id是主键,所以其值不可重复,所以先读取最后一条的di,并增加一,其中if(rs.getRow()!=0)是用来严整此次留言是否是第一条留言,String id=""+no;是将整数型变量no转变为字符串型变量id。request.setCharacterEncoding("gb2312"),该语句是用来转换通过post方法传递的编码,如果没有次语句,我们的留言(中文内容)只能是乱码。response.sendRedirect("index.jsp")该语句是当更新数据库完毕后,使页面跳转至index.jsp。
简述: 修改字段isre为y,目的是在首页中显示该留言已经被回复。6) 登录页面log.jsp代码: 简述:id是用来判断是从首页登录还是从显示页面登录,当id为空时,是从首页登录,成功后跳转会首页,如果id不为空,登录成功后跳转到显示页面显示相应的留言。
如果数据库,表格,数据源都设置好了后,按上面代码既可成功操作,有疑问,可以给作者写信[email protected],可以按文头所给的地址去下在现成代码。参考相关资料,相信对初学者会有很大的帮助的。 |