基于JSP与Mysql的留言板设计
留言板设计文档

留言版设计文档资料本程序编写目标:开发一套简单的留言版系统开发工期:1个星期一、需求概述:添加留言、显示留言、管理留言等。
任务概述通过JSP技术+sqlservice,在规定的时间内,实现添加留言、保存留言、显示留言、回复、删除和编辑留言(只有管理员才有权限进行回复和删除留言)等功能。
要求使用servlet 对表单的处理二、页面分析及设计:.1、ListMsg.jsp(显示留言页面——首页)包括标题、首页图片、留言记录,一页控制显示10条记录,利用记录分页进行上下页切换;显示留言按时间的降序排列;链接有注册、管理员页面和添加留言页面。
2、newMsg.htm(添加留言页面——表单页面)包含有留言者的称呼、性别、年龄、留言主题和留言内容等信息,通过表单提交到处理页面后保存到数据库。
3、insertMsg.jsp(留言处理页面)接收表单提交的数据处理后保存到数据库。
4、register.htm(注册页面)注册管理员页面5、register_c.jsp(处理注册信息页面)6、success.htm(显示注册成功页面)注册成功后,直接登录到管理员页面7、fail.htm(显示注册失败页面)注册失败后,返回注册页面8、login.htm(管理员登录页面)9、checkUser.jsp(处理管理员登录信息页面)10、admin.jsp(管理员页面)显示留言信息且链接有查看页面、删除页面和回复页面11、show.jsp(显示某一留言者的详细信息页面)12、del.jsp(删除页面)显示要删除的留言并提供管理员删除功能,删除成功后返回到管理员页面。
13、edit.jsp(编辑页面)显示留言信息并提供管理员编辑功能,并将编辑后的信息传到editOK.jsp页面处理。
14、editOK.jsp(显示编辑成功后页面)编辑成功后,返回管理员页面15、error.htm(管理员登录错误页面)数据库设计包括:guest表、 admin 表及reply表(1)guest表字段变量如下:ID为主码唯一标识某一留言者,其中Time的默认值:now(); Name、Title、Content、为必填字段,表中的字段为留言者要提交的信息。
JSP+JDBC综合实例--我的留言本

三、相关技术
完成此程序需要使用的技术 JSP的基础语法、request对象、response对 象、Session对象 JDBC操作、HTML表单
数据库创建脚本
四、实现过程
--创建用户表 create table person ( id varchar(20) not null primary key, name varchar(20) , password varchar(20) ); --创建留言表 create table ( id int not null primary key, title varchar(20) not null; author varchar(20) not null; content varchar(50) not null )
JSP+JDBC综合实例
我的留言本
一、总体概述
技术:JSP+JDBC 数据库:MySQL 目的:JDBC在JSP的基本操作(JDBC的使用) 总体描述:
实现用户登陆 登陆之后,可以发表、修改、浏览全部留言、查 询、删除留言
二、功能
登陆:将用户名保存在Session中 留言管理
页面分析
四、实现过程
2、留言管理
list_notes.jsp
需要对用户登陆作出验证;以表格列出全部留言; 超链接增加、修改、删除的页面;检索留言的提示
insert.jsp
需要对用户登陆作出验证;表单,输入新内容的表单; 给出返回list_notes.jsp的连接
insert_do.jsp update.jsp
对数据库中的内容进行删除四实现过程loginjsp参考代码四实现过程loginjsp参考代码四实现过程loginconfjsp参考代码四实现过程loginconfjsp参考代码四实现过程loginconfjsp参考代码四实现过程loginconfjsp参考代码四实现过程loginsuccessjsp参考代码四实现过程loginsuccessjsp参考代码四实现过程listnotesjsp参考代码四实现过程listnotesjsp参考代码四实现过程listnotesjsp参考代码四实现过程listnotesjsp参考代码四实现过程listnotesjsp参考代码四实现过程insertjsp参考代码四实现过程insertjsp参考代码四实现过程insertjsp参考代码四实现过程insertdojsp参考代码四实现过程insertdojsp参考代码四实现过程insertdojsp参考代码四实现过程insertdojsp参考代码四实现过程insertdojsp参考代码四实现过程updatejsp参考代码四实现过程updatejsp参考代码四实现过程updatejsp参考代码四实现过程updatejsp参考代码四实现过程updatejsp参考代码四实现过程updatedojsp参考代码四实现过程updatedojsp参考代码四实现过程updatedojsp参考代码四实现过程updatedojsp参考代码四实现过程updatedojsp参考代码四实现过程deletedojsp参考代码四实现过程deletedojsp参考代码四实现过程deletedojsp参考代码四实现过程deletedojsp参考代码四实现过程
php+mysql最简单的留言板

php+mysql最简单的留⾔板学完了记得动⼿操作。
(未过滤)<html><body><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><form method = "post" action = "post.php">欢迎来到我的留⾔板!<br>name:<input type = "text" name = "name"><br>email:<input type = "text" name = "email"><br>content:<br><textarea rows="10" cols="20" name="content"></textarea><input type = "submit"></form></body></html><?phpheader("Content-type: text/html; charset=utf-8");$con = mysql_connect("***","***","***");if (!$con){die('Could not connect: ' . mysql_error());}//connect tablemysql_query("SET NAMES utf8");mysql_select_db("message",$con);$sql = "CREATE TABLE message(id int NOT NULL AUTO_INCREMENT,PRIMARY KEY(id),name varchar(15),email varchar(15),content varchar(100))";//mysql_query($sql,$con);$name = $_POST['name'] ;$email = $_POST['email'];$content = $_POST['content'];$sql1 = "INSERT INTO message(name,email,content)VALUES( '$name', '$email','$content')";mysql_query($sql1,$con);echo "<table border='1'><tr><th>id</th><th>name</th><th>email</th><th>content</th></tr>";$result = mysql_query("SELECT * FROM message");while($row = mysql_fetch_array($result)){echo "<tr>";echo "<td>" . $row['id'] . "</td>";echo "<td>" . $row['name'] . "</td>";echo "<td>" . $row['email'] . "</td>";echo "<td>" . $row['content'] . "</td>";echo "</tr>";}echo "</table>";mysql_close($con);?>中途遇到⼀个bugmysql_fetch_array(): supplied argument is not a valid MySQL result resource定位到该函数。
JSP课程设计——留言簿课程设计

1.登录界面
登陆界面
用户名:
密码;
代码如下:
<%@Page ContentType="text∕html;CharSet=gb2312"%>
Vform action ="Tests.jsp" >
<h2 >登陆界面</h2 >
用户名:Vin PUt type = "text" n ame ="userName" >
</ tr >
Vtr height ="30" >
Vtd >留言标题</td >
Vtd ><inPUt type = "text" name = "title" SiZe ="35" ></ td >
</ tr >
Vtr >
Vtd >留言内容</td >
Vtd>vtextareaname="cOntent"rows ="8" cols ="34" χ/ textareaχ/ td >
request.getScheme()++request.getServerName()+":" +request.getServ
erPort()+path+ "/";
%>
<! DoCTYPEHTMLPUBLIC "-//W3C//DTD HTML 4.01 TranSitional//EN"> <html >
用jsp语言开发的留言板

留言簿设计报告班级09软件姓名***学号22号一部分:描述留言簿的模块划分二部分:用流程图的形式描述留言簿的执行流程三部分:各部分界面效果图及代码的具体实现四部分:设计过程中的错误及纠正五部分:设计感受六部分:附用户使用说明(包括安装环境部署环境,及使用),和设计时的数据库第一部分:留言簿的模块划分1.管理员管理模块身为管理员,有查看所有用户的资料信息,和所有用户的留言,并有修改和删除的权利,进入index.jsp首页后,先像其它用户一样访问主页,及留言板,若想留言或查看信息,则先登陆.点击留言请先登陆超链接,进入denglu.jsp的登陆页面.输入管理员的用户名及密码,即admin,进入success.jsp页面,在此页面里,管理员可以查看全部留言信息shuchu.jsp,并可以更改和删除.也可以查看所有用户的注册信息chakan.jsp.也可以查看个人信息gerenxinxi.jsp.在个人信息中可以修改用户名和密码即登录xiugai.jsp页面,但不可以注销用户,因为不能没有管理员.2.普通用户使用模块普通用户进入网站,也要先浏览主页,及留言板,若有意留言,则请先登录,登陆成功后进入success.jsp页面,在此页面中用户可以查看自己已经留言过的信息,即shuchu3.jsp页面,在此页面中可以对自己的留言进行更新和删除,即update.jsp页面和delete.jsp页面,若有意留言,则点击我要留言超链接,进入liuyanyemian.jsp页面,进行留言,再此页面中,可以更新自己的头像.在success.jsp中还可以查看个人信息,并对自己的用户名和密码进行修改,对自己的账号注销.即xiugai.jsp和cancel.jsp页面3.过客浏览模块身份为过客,进入网站后,先浏览主页,若有意留言,则点击留言请先登录,若没有账号,则在denglu.jsp的页面中,点击注册链接,进行注册,即insertuser.jsp页面,若用户名不曾被人注册过,则转到zhucechenggong.jsp的页面.点击此页面的登陆即可重新登陆,也可以退出网站.重新登陆后,就可以想普通会员一样进行操作了.4.退出系统退出,即tuichu.jsp页面.第二部分:流程图第三部分:各部分界面效果图及代码的具体实现index.jsp 页面,主要用了一个qq 表情,然后用marquee 标签实现字体的运动,接下来是两个超级链接.访问主页后,进入留言板主页,标题有主人寄语,然后调用以下方法,public List QureyAll(String sql){ List list=new ArrayList(); this .getConnection(); try {stat =con .createStatement(); rs =stat .executeQuery(sql); while (rs .next()){ Message message=new Message();message.setBorderID(rs .getInt("borderId")); message.setContent(rs .getString("content")); message.setImage(rs .getString("image")); message.setMsgtime(rs .getString("msgtime")); message.setReplyID(rs .getString("replyID")); message.setSubject(rs .getString("subject")); message.setUsername(rs .getString("username"));list.add(message);}} catch (SQLException e) { // TODO Auto-generated catch blockSystem.out .println("数据库异常"); e.printStackTrace();}CloseAll();return list;}输出所有人的留言,界面如下:若想要留言,则进入denglu.jsp页面,即用一个form表单即可,界面如下:登陆成功后,进入success.jsp,设置了几个超链接如下:若点击查看自己的留言,则进入shuchu3.jsp页面,在此页面,可以更新和删除,都是现获取自己的id号,然后操作,如下:输出方法如下:public Message QueryByID(int id){Message message=new Message();String sql="select * from t_board where borderID="+id;this.getConnection();try {stat=con.createStatement();rs=stat.executeQuery(sql);if(rs.next()){message.setBorderID(rs.getInt("borderID"));message.setContent(rs.getString("content"));message.setImage(rs.getString("image"));message.setMsgtime(rs.getString("msgtime"));message.setReplyID(rs.getString("replyID"));message.setSubject(rs.getString("subject"));message.setUsername(rs.getString("username"));}} catch (SQLException e) {// TODO Auto-generated catch blockSystem.out.println("数据库异常");e.printStackTrace();}CloseAll();}在jsp页面调用:String id=request.getParameter("id");int borderid=Integer.parseInt(id);DBConn db=new DBConn();Message message=db.QueryByID(borderid);更新主要实现就是:String id=request.getParameter("id");String subject=request.getParameter("subject");String content=request.getParameter("content");String updatetime=new Date().toLocaleString();String sql="update t_board set subject='"+subject+"',content='" +content+"',msgtime='"+updatetime+"',image='"+image+"' where borderID="+id;DBConn db=new DBConn();int flag=db.executeUpdate(sql);if(flag>0){response.sendRedirect("shuchu3.jsp");}else{out.print("出现异常,重新留言!");}删除主要实现就是将sql语句进行修改一下:String sql="delete from t_board where borderID="+borderid;当然参数也没必要获得那么多.更新和删除的主要方法为:publicint executeUpdate(String sql){int flag=0;try {this.getConnection();stat=con.createStatement();flag=stat.executeUpdate(sql);}catch (SQLException e) {e.printStackTrace();}CloseAll();return flag;}界面如下:若点击查看自己的个人信息,则进入gerenxinxi.jsp 页面,sql 语句用username 追踪, 调用如下的方法:public Genggai QureyAll2(String sql){Genggai xinxi=new Genggai();this .getConnection(); try {stat =con .createStatement(); rs =stat .executeQuery(sql); if (rs .next()){ xinxi.setId(rs .getInt("id"));xinxi.setUsername(rs .getString("username")); xinxi.setPwd(rs .getString("pwd")); xinxi.setSex(rs .getString("sex"));xinxi.setBirthday(rs .getString("birthday")); xinxi.setEmail(rs .getString("email")); xinxi.setAddress(rs .getString("address"));xinxi.setTelephone(rs .getString("telephone"));}} catch (SQLException e) {System.out .println("数据库异常");e.printStackTrace();}CloseAll();return xinxi;}在jsp 页面这样输出:out.print("<tr>");out.print("<td width='40%' align='center'>");out.print("<font size='5' color='orange' face='隶书'>"); out.print("您的id 号是:"); out.print("</font>"); out.print("</td>");out.print("<td align='center'>");out.print(xinxi.getId());out.print("</td>");out.print("</tr>");其他列名输出跟上面的id一样,界面如下:若点击如上的”修改用户名或密码”进入如下页面,即xiugaiyemian.jsp,也是定义一个form表单若修改成功,则进入xiugaichenggong.jsp页面,界面如下:若点击success.jsp 页面的”注销用户”,则进入如下页面,同样也是定义form 表单,成功后进入cancelsuccess.jsp 页面,两个界面如下:注销用户方法是:publicint TestCancel(String username,String pwd){ int flag=0; DBConn db=new DBConn();con =db.getConnection();String sql="delete from t_user where username=? and pwd=?";try {prests = con .prepareStatement(sql); prests .setString(1,username); prests .setString(2,pwd);flag=prests .executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch blocke.printStackTrace();}return flag;}若在登陆页面,点击”注册”,进入regist.jsp 页面如下,也是一个复杂的form 表单,添加了背景和qq 表情:注册插入到数据库的方法主要有两个,一个用来判断用户名是否已经存在,一个用来插入:如下判断:publicint Testpanduan(String username){int s=0;DBConn db=new DBConn(); con =db.getConnection(); String sql="select * from t_user where username=?"; try {prests =con .prepareStatement(sql);prests .setString(1,username);rs =prests .executeQuery();if (rs .next()) {s=1;rs .close();prests .close();}} catch (SQLException e) { // TODO Auto-generated catch blocke.printStackTrace();} return s;} 插入:publicint Testinsert(String username,String pwd,String repwd,String sex,String birthday,String email,String address,String telephone){ DBConn db=new DBConn();con=db.getConnection();int flag=0;String sql="insert into t_user values(?,?,?,?,?,?,?)";try{if(pwd.equals(repwd)){prests=con.prepareStatement(sql);prests.setString(1,username);prests.setString(2,pwd);prests.setString(3,sex);prests.setString(4,birthday);prests.setString(5,email);prests.setString(6,address);prests.setString(7,telephone);flag=prests.executeUpdate();}}catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return flag;}注册成功后,进入zhucechenggong.jsp页面,也添加了背景图片和qq表情,使之美观,界面如下:若访问的是管理员,则进入如下界面,他可以查看所有用户的所有留言和所有信息:若查看所有用户的全部资料,则进入chakan.jsp页面,在此页面可以管理员进行删除,输出方法是:public ResultSet QureyAll3(String sql){Genggai xinxi=new Genggai();this.getConnection();try {stat=con.createStatement();rs=stat.executeQuery(sql);if(rs.next()){xinxi.setId(rs.getInt("id"));xinxi.setUsername(rs.getString("username"));xinxi.setPwd(rs.getString("pwd"));xinxi.setSex(rs.getString("sex"));xinxi.setBirthday(rs.getString("birthday"));xinxi.setEmail(rs.getString("email"));xinxi.setAddress(rs.getString("address"));xinxi.setTelephone(rs.getString("telephone"));}} catch (SQLException e) {// TODO Auto-generated catch blockSystem.out.println("数据库异常");e.printStackTrace();}return rs;}在jsp页面调用方法后用<%out.print(rs.getString("email")); %> 删除链接是:<a href="deletemsg2.jsp?id=<%=rs.getInt("id")%>">删除</a>界面如下:管理员还可以有权利对所有用户的留言进行删除:主要方法同上面提到的.界面如下:点击我要留言链接后,进入我要留言页面:添加笑脸和更新头像的方法如下:<%int count=0;for(int i=0;i<40;i++){ %><input type="radio" name="image" value="<%=i+1 %>" onclick="addimg(this)"><img src="images2/<%=i+1 %>.png"><% count++;if(count%8==0)out.print("<br>"); }%>更新头像:<select name="image" onchange="change();"><%for(int i=1;i<=30;i++){%><option value="<%=i%>"><%=i %></option><% } %></select><img src="photo/1.jpg" width="100" height="100" name="head"/> 但要用到JavaScript语言:选择头像:function addimg(obj){var s=obj.value;var con=document.form1.content.value;con=con+"<img src=images2/"+s+".png>";document.form1.content.value=con; }更换头像:function change(){var image=document.form1.image1.value;document.head.src="photo/"+image+".jpg";}留言界面如下:最后是退出页面,主要是图片和qq表情的设置.使页面更生动,界面如下:第四部分:设计过程中的错误及纠正在做动态网页的时候,遇到的小错误有很多,每次都是经过反复的调试得出的,有时候写错某个方法中的某个字母,就会调试很长时间,当然同时也加深了印象.例如在用JavaScript语句中,不能弹出alert对话框,仔细分析代码,发现表单form名字写成了from.主要的错误有以下几个方面:1.在编写查看所有人的信息遇到传递参数时的空指针,而且在方法体中用了db.CloseAll();方法,出现连接对象已经关闭的错误.应该用out.print(rs.getString(username));而不是用out.print(xinxi.getUsername());2.在删除留言时,超链接中的id一直传递不过去使得intborderid=Integer.parseInt(id);一直出现错误,出现空指针.,仔细检查发现是超链接中的id=<%=message.getBorderID()%>写错3.在插入新留言的时候,一直出现中文乱码,插入如下两条语句,即可解决byte aa[]=subject.getBytes("ISO-8859-1"); subject=new String(aa);byte bb[]=content.getBytes("ISO-8859-1");content=new String(bb);更新头像的时候,头像不能同时显示出来4.在注册新用户时,由于既要用sql语句判断用户名是否已经存在,又用到要在不存在的时候插入的sql语句,导致逻辑混乱,仔细推敲后,才运行得到.5.因为要在多个页面用到传递的username等等,所以一定要用session获取参数6.在更新留言时,要用到<input type="hidden" name="id" value="<%=id %>">传递隐藏的参数,由于刚开始不明白,出现了很多逻辑上的错误.第五部分: 设计感受1.这次的留言板设计感受很多,有时某一个很小的错误,比如丢一个括号,写错一个字母,就会浪费很长的时间.所以做完就用了很长的时间.当然对程序里的某些方法的应用,也不是太清楚,如过滤信息的设置等.我觉得还是孜孜不倦的从一点点的做起,比如每个网页的背景图片,就设计了不少时间,因为我觉得一个网站的美观效果也是很重要的.每当睡觉的时候,只要一想起,啊,我的留言板还没有做完,就会带着思考入梦了.老实说,这个留言板不是很难,可能是刚接触数据库与jsp的链接吧,当时出了很多例如数据库异常的错误,到后期的时候就好多了…在对用户信息或用户的留言进行更新,删除,插入,查找等等时,这些方法都从jsp的页面,提到java类里面,方法都是大同小异,无非是数据库的链接,执行sql语句的对象的创建和应用,以及接受结果的存放等等.主要是预处理对象和执行对像的flag=stat.executeUpdate(sql);rs=stat.executeQuery(sql);这两个方法的调用.2.在这期间离不开同学与同学,舍友与舍友之间互相学习和交流,所以收益也很大,也感受到了集体的力量.经过这次的留言板制作,收获很多.不仅对连接数据库方面的知识懂了很多,对sql语句的书写记忆深刻,而且还回忆了以前的很多函数的调用,方法的编写等等.相信在以后的学习中会更进一步,掌握更多的知识和应用.第六部分:附用户使用说明(包括安装环境部署环境,及使用),和设计时的数据库在MyEclipse7.0的环境下实现,将Tomcat6.0服务器,JDK7下载以及部署进去设计时的数据库使用Microsoft SQL server 2000。
基于JSP的留言板课程设计报告书

JSP在水一方留言簿设计报告一需求分析随着互联网的迅猛的发展,给我们带来不少的便利,于此同时,论坛基本是每个必有的功能,为用户之间的交流提供的很好的平台。
我通过仔细的分析和规划,本论坛有如下功能:用户注册,登录,用户信息修改,签写留言,留言查看,回复留言和管理员的普通维护功能等。
这些功能的具体描述如下:1)用户注册模块:用户可已成为本论坛的会员,通过表单把用户的相关信息提交给数据库。
2)登录模块:基本是每个系统必备的模块,本论坛的登录的模块分为两个小模块:普通用户登录,另一个是管理员登录。
3)签写留言模块:这是论坛的主要功能之一,用户把自己感兴趣的话题发表到论坛上,与网上的会员进行探讨。
4)查看留言模块:这也是论坛的主要功能之一,把用户发表的留言逐条,序显示出来。
5)回复留言模块:这也是论坛的主要功能之一,用户对别的用户发表的留言进行回复。
6)普通的维护模块:这是给管理员的功能,该功能对那些危害社会风气的留言删除。
7)用户信息修改模块:用户能对自己的信息进行修改。
二分析和设计(页面和数据库)设计论坛时,首先应该区别是普通用户登录还是管理员登录。
如果是普通用户登录,那么该用户只有查看和回复留言的权限。
如果是管理员登录,则除了具有查看和回复权限外,还用具有管理论坛的权限。
在用户发表留言后,将显示该用户的用户名、性别、留言容和留言时间等容。
如果在某个留言有回复容,则显示出是谁恢复了该篇留言和回复的容。
另外还能在页面中显示当前的系统的时间和访问权限。
数据库设计通过以上的分析:数据库应有四个表,tb_user、td_topic、tb_reply、tb_counter。
由于是个小型的论坛,选择AEESS数据库。
具体各表的设计如下:1 分析得知tb_user表功能的记录用户的信息,具有如下字段:ID、UserName、PWD、Birthday、Sex、OICQ、Tel、homepage、address、postcode、Email、status。
JSP个人网站留言板课程设计

JSP课程设计报告题目:个人网站留言板系统程序设计二0一二年九月摘要个人网站留言板及用户注册系统是一个针对个人而开发的网站系统,个人网站是一个可以发布个人信息及相关内容。
通俗理解个人网站:就是指网站内容是介绍自己的或是以自己的信息为中心的网站,访客可以在网站注册后留言。
本网站是一个典型的简单的个人网站系统,其开发主要包括后台数据库的建立和维护以及前端WEB页面的设计两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库,不会出现增加,删除,修改的异常。
而对于后者则要求应用功能完备,易使用,界面友好等特点。
另外,本文还着重论述了留言板和用户注册系统的功能与实现,包括数据流程及存储、注册用户管理、留言板信息管理、用户权限管理、用户密码管理、留言信息和用户的增加、留言信息的删除、留言信息的查询、注册用户的查询、等。
本系统提供管理员、访客的登录。
管理员可以查看用户注册信息和留言信息,可对其进行删除修改等功能。
访客登录可以在留言板上留言。
关键词:个人网站;访客;管理员;留言板AbstractPersonal website message board and user registration system are web site developed for individual systems, personal Web site can publish a personal information and related content. Popular understanding of website: that the content of a site is to introduce their own information, or to the center of the site, visitors can leave a message after the site up. This site is a typical simple personal website system, which mainly includes the establishment and maintenance of back-end database and front two aspects of the design of WEB pages. Request for the establishment of data consistency and integrity, data security and good libraries, does not appear to add, delete, modify the exception. For the latter requires the application of functions, easy to use, friendly interface and so on. In addition, this paper focuses on the message boards and user registration system function and implementation, including data flow and storage, the registered user management, message board information management, user rights management, user password management, message information and user increases, voice messages delete, the message information query, the query registered users, and so on. The system administrator, visitor login. Administrators can view the user registration information and message information, can be modified to delete its functions. Visitors can sign up for casual users log in and use the user a message. Keywords: Personal website; Visitor; Managor;Message board目录1.第一章课题背景 (5)1.1课程要求 (5)1.2设计概要 (5)1.3工具及环境简介 (5)2.第二章设计简介及设计方案论述 (5)2.1系统功能概述 (5)2.1.1 用户类型 (6)2.1.2 管理员 (6)2.1.3 普通用户 (6)2.2数据库设计 (7)2.2.1管理员息表: (7)2.2.2注册用户留言信息表: (7)3.第三章详细设计 (7)3.1首页设计 (7)3.1.1 管理员登录 (14)3.2管理员审核留言信息 (17)4.第四章设计结果及分析 (18)4.1首页界面结果 (18)4.1.1首页界面如下: (18)4.1.2 管理员登录 (18)4.2留言板信息管理 (19)4.2.1 留言内容信息 (19)4.2.2 删除用户信息 (19)4.2.3 审核通过用户信息 (20)4.2.4 审核不通过用户留言信息 (21)4.2.5 敏感词的过滤实现 (22)4.3留言管理 (22)4.3.1 查看用户留言信息 (22)4.4结果分析 (23)5.总结 (24)1.第一章课题背景1.1 课程要求内容概要:个人网站留言板设计与实现。
用jsp语言开发的留言板

留言簿设计报告班级09软件姓名***学号22号一部分:描述留言簿的模块划分二部分:用流程图的形式描述留言簿的执行流程三部分:各部分界面效果图及代码的具体实现四部分:设计过程中的错误及纠正五部分:设计感受六部分:附用户使用说明(包括安装环境部署环境,及使用),和设计时的数据库第一部分:留言簿的模块划分1.管理员管理模块身为管理员,有查看所有用户的资料信息,和所有用户的留言,并有修改和删除的权利,进入index.jsp首页后,先像其它用户一样访问主页,及留言板,若想留言或查看信息,则先登陆.点击留言请先登陆超链接,进入denglu.jsp的登陆页面.输入管理员的用户名及密码,即admin,进入success.jsp页面,在此页面里,管理员可以查看全部留言信息shuchu.jsp,并可以更改和删除.也可以查看所有用户的注册信息chakan.jsp.也可以查看个人信息gerenxinxi.jsp.在个人信息中可以修改用户名和密码即登录xiugai.jsp页面,但不可以注销用户,因为不能没有管理员.2.普通用户使用模块普通用户进入网站,也要先浏览主页,及留言板,若有意留言,则请先登录,登陆成功后进入success.jsp页面,在此页面中用户可以查看自己已经留言过的信息,即shuchu3.jsp页面,在此页面中可以对自己的留言进行更新和删除,即update.jsp页面和delete.jsp页面,若有意留言,则点击我要留言超链接,进入liuyanyemian.jsp页面,进行留言,再此页面中,可以更新自己的头像.在success.jsp中还可以查看个人信息,并对自己的用户名和密码进行修改,对自己的账号注销.即xiugai.jsp和cancel.jsp页面3.过客浏览模块身份为过客,进入网站后,先浏览主页,若有意留言,则点击留言请先登录,若没有账号,则在denglu.jsp的页面中,点击注册链接,进行注册,即insertuser.jsp页面,若用户名不曾被人注册过,则转到zhucechenggong.jsp的页面.点击此页面的登陆即可重新登陆,也可以退出网站.重新登陆后,就可以想普通会员一样进行操作了.4.退出系统退出,即tuichu.jsp页面.第二部分:流程图第三部分:各部分界面效果图及代码的具体实现index.jsp页面,主要用了一个qq表情,然后用marquee标签实现字体的运动,接下来是两个超级链接.访问主页后,进入留言板主页,标题有主人寄语,然后调用以下方法, public List QureyAll(String sql){List list=new ArrayList();this.getConnection();try {stat=con.createStatement();rs=stat.executeQuery(sql);while(rs.next()){Message message=new Message();message.setBorderID(rs.getInt("borderId"));message.setContent(rs.getString("content"));message.setImage(rs.getString("image"));message.setMsgtime(rs.getString("msgtime"));message.setReplyID(rs.getString("replyID"));message.setSubject(rs.getString("subject"));message.setUsername(rs.getString("username"));list.add(message);}} catch (SQLException e) {// TODO Auto-generated catch blockSystem.out.println("数据库异常");e.printStackTrace();}CloseAll();return list;}输出所有人的留言,界面如下:若想要留言,则进入denglu.jsp页面,即用一个form表单即可,界面如下:登陆成功后,进入success.jsp,设置了几个超链接如下:若点击查看自己的留言,则进入shuchu3.jsp页面,在此页面,可以更新和删除,都是现获取自己的id号,然后操作,如下:输出方法如下:public Message QueryByID(int id){Message message=new Message();String sql="select * from t_board where borderID="+id;this.getConnection();try {stat=con.createStatement();rs=stat.executeQuery(sql);if(rs.next()){message.setBorderID(rs.getInt("borderID"));message.setContent(rs.getString("content"));message.setImage(rs.getString("image"));message.setMsgtime(rs.getString("msgtime"));message.setReplyID(rs.getString("replyID"));message.setSubject(rs.getString("subject"));message.setUsername(rs.getString("username"));}} catch (SQLException e) {// TODO Auto-generated catch blockSystem.out.println("数据库异常");e.printStackTrace();}CloseAll();}在jsp页面调用:String id=request.getParameter("id");int borderid=Integer.parseInt(id);DBConn db=new DBConn();Message message=db.QueryByID(borderid);更新主要实现就是:String id=request.getParameter("id");String subject=request.getParameter("subject");String content=request.getParameter("content");String updatetime=new Date().toLocaleString();String sql="update t_board set subject='"+subject+"',content='" +content+"',msgtime='"+updatetime+"',image='"+image+"' where borderID="+id;DBConn db=new DBConn();int flag=db.executeUpdate(sql);if(flag>0){response.sendRedirect("shuchu3.jsp");}else{out.print("出现异常,重新留言!");}删除主要实现就是将sql语句进行修改一下:String sql="delete from t_board where borderID="+borderid;当然参数也没必要获得那么多.更新和删除的主要方法为:public int executeUpdate(String sql){int flag=0;try {this.getConnection();stat=con.createStatement();flag=stat.executeUpdate(sql);}catch (SQLException e) {e.printStackTrace();}CloseAll();return flag;}界面如下:若点击查看自己的个人信息,则进入gerenxinxi.jsp 页面,sql 语句用username 追踪, 调用如下的方法:public Genggai QureyAll2(String sql){ Genggai xinxi=new Genggai(); this .getConnection(); try { stat =con .createStatement(); rs =stat .executeQuery(sql); if (rs .next()){ xinxi.setId(rs .getInt("id"));xinxi.setUsername(rs .getString("username")); xinxi.setPwd(rs .getString("pwd")); xinxi.setSex(rs .getString("sex"));xinxi.setBirthday(rs .getString("birthday")); xinxi.setEmail(rs .getString("email")); xinxi.setAddress(rs .getString("address"));xinxi.setTelephone(rs .getString("telephone"));}} catch (SQLException e) {System.out .println("数据库异常");e.printStackTrace();}CloseAll();return xinxi;}在jsp 页面这样输出:out.print("<tr>");out.print("<td width='40%' align='center'>");out.print("<font size='5' color='orange' face='隶书'>"); out.print("您的id 号是:"); out.print("</font>"); out.print("</td>");out.print("<td align='center'>");out.print(xinxi.getId());out.print("</td>");out.print("</tr>");其他列名输出跟上面的id一样,界面如下:若点击如上的”修改用户名或密码”进入如下页面,即xiugaiyemian.jsp,也是定义一个form表单若修改成功,则进入xiugaichenggong.jsp页面,界面如下:若点击success.jsp 页面的”注销用户”,则进入如下页面,同样也是定义form 表单,成功后进入cancelsuccess.jsp 页面,两个界面如下:注销用户方法是:public int TestCancel(String username,String pwd){ int flag=0;DBConn db=new DBConn(); con =db.getConnection();String sql="delete from t_user where username=? and pwd=?"; try { prests = con .prepareStatement(sql); prests .setString(1,username); prests .setString(2,pwd); flag=prests .executeUpdate(); } catch (SQLException e) {// TODO Auto-generated catch block e.printStackTrace();}return flag;}若在登陆页面,点击”注册”,进入regist.jsp 页面如下,也是一个复杂的form 表单,添加了背景和qq 表情:注册插入到数据库的方法主要有两个,一个用来判断用户名是否已经存在,一个用来插入:如下判断:public int Testpanduan(String username){int s=0;DBConn db=new DBConn();con =db.getConnection();String sql="select * from t_user where username=?";try {prests =con .prepareStatement(sql);prests .setString(1,username);rs =prests .executeQuery();if (rs .next()) {s=1;rs .close();prests .close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return s; } 插入:public int Testinsert(String username,String pwd,String repwd,String sex,String birthday,String email,String address,String telephone){ DBConn db=new DBConn();con=db.getConnection();int flag=0;String sql="insert into t_user values(?,?,?,?,?,?,?)";try{if(pwd.equals(repwd)){prests=con.prepareStatement(sql);prests.setString(1,username);prests.setString(2,pwd);prests.setString(3,sex);prests.setString(4,birthday);prests.setString(5,email);prests.setString(6,address);prests.setString(7,telephone);flag=prests.executeUpdate();}}catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return flag;}注册成功后,进入zhucechenggong.jsp页面,也添加了背景图片和qq表情,使之美观,界面如下:若访问的是管理员,则进入如下界面,他可以查看所有用户的所有留言和所有信息:若查看所有用户的全部资料,则进入chakan.jsp页面,在此页面可以管理员进行删除,输出方法是:public ResultSet QureyAll3(String sql){Genggai xinxi=new Genggai();this.getConnection();try {stat=con.createStatement();rs=stat.executeQuery(sql);if(rs.next()){xinxi.setId(rs.getInt("id"));xinxi.setUsername(rs.getString("username"));xinxi.setPwd(rs.getString("pwd"));xinxi.setSex(rs.getString("sex"));xinxi.setBirthday(rs.getString("birthday"));xinxi.setEmail(rs.getString("email"));xinxi.setAddress(rs.getString("address"));xinxi.setTelephone(rs.getString("telephone"));}} catch (SQLException e) {// TODO Auto-generated catch blockSystem.out.println("数据库异常");e.printStackTrace();}return rs;}在jsp页面调用方法后用<%out.print(rs.getString("email")); %> 删除链接是:<a href="deletemsg2.jsp?id=<%=rs.getInt("id")%>">删除</a>界面如下:管理员还可以有权利对所有用户的留言进行删除:主要方法同上面提到的.界面如下:点击我要留言链接后,进入我要留言页面:添加笑脸和更新头像的方法如下:<%int count=0;for(int i=0;i<40;i++){ %><input type="radio" name="image" value="<%=i+1 %>" onclick="addimg(this)"><img src="images2/<%=i+1 %>.png"><% count++;if(count%8==0)out.print("<br>"); }%>更新头像:<select name="image" onchange="change();"><%for(int i=1;i<=30;i++){%><option value="<%=i%>"><%=i %></option><% } %></select><img src="photo/1.jpg" width="100" height="100" name="head"/> 但要用到JavaScript语言:选择头像: function addimg(obj){var s=obj.value;var con=document.form1.content.value;con=con+"<img src=images2/"+s+".png>";document.form1.content.value=con; }更换头像: function change(){var image=document.form1.image1.value;document.head.src="photo/"+image+".jpg";}留言界面如下:最后是退出页面,主要是图片和qq表情的设置.使页面更生动,界面如下:第四部分:设计过程中的错误及纠正在做动态网页的时候,遇到的小错误有很多,每次都是经过反复的调试得出的,有时候写错某个方法中的某个字母,就会调试很长时间,当然同时也加深了印象.例如在用JavaScript语句中,不能弹出alert对话框,仔细分析代码,发现表单form名字写成了from.主要的错误有以下几个方面:1.在编写查看所有人的信息遇到传递参数时的空指针,而且在方法体中用了db.CloseAll();方法,出现连接对象已经关闭的错误.应该用out.print(rs.getString(username));而不是用out.print(xinxi.getUsername());2.在删除留言时,超链接中的id一直传递不过去使得intborderid=Integer.parseInt(id);一直出现错误,出现空指针.,仔细检查发现是超链接中的id=<%=message.getBorderID()%>写错3.在插入新留言的时候,一直出现中文乱码,插入如下两条语句,即可解决byte aa[]=subject.getBytes("ISO-8859-1"); subject=new String(aa);byte bb[]=content.getBytes("ISO-8859-1");content=new String(bb);更新头像的时候,头像不能同时显示出来4.在注册新用户时,由于既要用sql语句判断用户名是否已经存在,又用到要在不存在的时候插入的sql语句,导致逻辑混乱,仔细推敲后,才运行得到.5.因为要在多个页面用到传递的username等等,所以一定要用session获取参数6.在更新留言时,要用到<input type="hidden" name="id" value="<%=id %>">传递隐藏的参数,由于刚开始不明白,出现了很多逻辑上的错误.第五部分: 设计感受1.这次的留言板设计感受很多,有时某一个很小的错误,比如丢一个括号,写错一个字母,就会浪费很长的时间.所以做完就用了很长的时间.当然对程序里的某些方法的应用,也不是太清楚,如过滤信息的设置等.我觉得还是孜孜不倦的从一点点的做起,比如每个网页的背景图片,就设计了不少时间,因为我觉得一个网站的美观效果也是很重要的.每当睡觉的时候,只要一想起,啊,我的留言板还没有做完,就会带着思考入梦了.老实说,这个留言板不是很难,可能是刚接触数据库与jsp的链接吧,当时出了很多例如数据库异常的错误,到后期的时候就好多了…在对用户信息或用户的留言进行更新,删除,插入,查找等等时,这些方法都从jsp的页面,提到java类里面,方法都是大同小异,无非是数据库的链接,执行sql语句的对象的创建和应用,以及接受结果的存放等等.主要是预处理对象和执行对像的flag=stat.executeUpdate(sql);rs=stat.executeQuery(sql);这两个方法的调用.2. 在这期间离不开同学与同学,舍友与舍友之间互相学习和交流,所以收益也很大,也感受到了集体的力量.经过这次的留言板制作,收获很多.不仅对连接数据库方面的知识懂了很多,对sql语句的书写记忆深刻,而且还回忆了以前的很多函数的调用,方法的编写等等.相信在以后的学习中会更进一步,掌握更多的知识和应用.第六部分:附用户使用说明(包括安装环境部署环境,及使用),和设计时的数据库在MyEclipse7.0的环境下实现,将Tomcat6.0服务器,JDK7下载以及部署进去设计时的数据库使用Microsoft SQL server 2000。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java系统开发能力综合实训课程设计报告设计题目:留言板管理系统专业:计算机科学与技术系班级:软件102(对口)学号:101012241姓名:吕明敬指导老师:李敬伟设计时间:2012-6-7教师评分:引言随着Internet的发展,网站的作用越来越重要,被称之为继广播、报纸、杂志、电视后的第五种媒体——数字媒体,拥有众多优势,所以现在不少企业都有或正在建设自己的网站。
而留言板作为网站重要的一个部分,从来都是一个大家交流的平台!留言板是一种最为简单的BBS应用,借助留言板,浏览者可以张贴留言的方式给站长、版主或其他浏览者进行留言和提问。
一、课程设计题目留言板管理系统二、课程设计目的1、掌握常用JSP服务器控件的使用;2.、掌握验证控件的使用方法,理解验证控件的作用;3、掌握数据库设计的方法;4、掌握利用JSP技术操作数据库的方法;5、掌握利用内置对象传递数据的方法;6、训练分析与解决实际问题的能力;7、训练综合应用JSP技术开发Web应用程序的能力。
三、课程设计要求要求用JSP设计一个留言板管理系统。
该系统的功能实现有:(1)数据的添加(留言内容的添加);(2)留言内容按条件删除,修改;(3)可以根据标题进行模糊查找;(4)分页显示所有的留言信息;(5)用MySQL数据库建立表,以及查询表,四、课程设计内容在Mysql中创建一个名称为dbmessage的数据库。
该系统包括用户登录模块,添加留言模块,删除留言模块,查询留言模块,分页显示留言模块。
数据库设计:添加留言信息表(如图1-1 insertmessage表所示)。
图1-1 insertmessage表五、系统功能模块设计及代码的实现当用户进入留言板界面后都会有如下有如下动作:如图1-2 留言板系统功能模块。
(1)登录留言板(2)添加留言信息(3)查看留言信息(4)根据标题删除留言信息(5)以及查看留言信息(6)根据标题查询留言信息。
留言板管理系统登录留言板添加留言信息删除留言信息显示留言信息查询留言信息退出管理系统图1-2 留言板系统功能模块(一)模块设计:注意:用户在运行前必须先正确部署项目和正确启动Tomcat,出现Tomcat主页面http://localhost:8080/,点击Tomcat Manager选项,选择你的留言管理系统名称/messageboard,此时就正式进入留言板管理系统了。
5.1登录模块分析登录界面用于操作用户登录系统,由于此处就设置一个用户因此就不做太多说明:用户名为admin,密码为admin如图1-3登录留言板界面图1-3 登录留言板界面5.2添加留言模块分析:用户必须把下面的字段填写完毕后用户才可以将留言信息添加到数据库中如图1-4 留言板主界面。
图1-4 留言板主界面5.3删除留言模块和分页显示留言信息模块分析:该模块可以将留言信息按条件删除如图1-6 删除留言,而且可以通过分页显示留言信息模块进行查询如图1-7 删除记录后。
图1-5 分页显示数据库留言记录图1-6 删除留言图1-7 删除记录后5.4 查询留言信息模块分析:用户可以按标题进行模糊查询。
图1-8 查询留言信息图1-9 查询结果(二)各模块之间的代码实现:(1)登录留言板(Login.jsp)模块代码:<body><form method="post" action="Domess.jsp" border="2"><table border="0" cellspacing="2" bgcolor="#ff99cc" " align="center" style="height: 139px; width=300px"><tr><td colspan="2"><div align="center"><font size="4"><fontsize="6">登录</font><img src="images/1.gif" width="111" height="82"><font size="6">界面</font></font></div></td></tr><tr><td><div align="right"><font size="5"> 用户名:</font></div></td><td><div align="left"><input type="text" name="user"></div></td></tr><tr><td><div align="right"><font size="5"> 密 码:</font></div></td><td><div align="left"><input type="password" name="password"></div></td></tr><tr><td colspan="2"><div align="center"><font size="5"><input type="submit" value="登录"name="button1"><input type="reset" value="重置" name="button2"></font> </div></td></tr></table></form></body>(2)处理登录留言板(Domess.jsp)模块代码:<body><%String user=request.getParameter("user");String password=request.getParameter("password");if(user.equals("admin")&&password.equals("admin")){%><jsp:forward page="messagecontent.jsp"/><%}%></body>(3)留言板主界面(messagecontent.jsp)模块代码:<body><form><div align="center"><br></div><table border="0" cellspacing="2" align="center" width="1220"height="27"></table></form><form method="post" action="Addmessage.jsp" border="5px solid red"><br><table border="0" cellspacing="2" bgcolor="#ff99cc" " align="center" style="height: 250px; width:450px"><tr><td colspan="2"><hr><span><marquee>童鞋们,多多留言啊,主人感激不尽啊。
</marquee></span><hr></td></tr><br><br><tr><td colspan="2"><div align="center" ><font size="6">留言板</font></div></td></tr><tr><td><div align="right"> 用户名:</div></td><td><div align="left"><input type="text" name="name"> </div></td></tr><tr><td><div align="right"> QQ:</div></td><td><div align="left"><input type="text" name="QQ"> </div></td></tr><tr><td><div align="right"> E—mail:</div></td><td><div align="left"><input type="text" name="email"> </div></td></tr><tr><td><div align="right"> 标题:</div></td><td><div align="left"><input type="text" name="title"> </div></td></tr><tr><td><div align="right"> 留言内容:</div></td><td><div align="left"><textarea cols="30" rows="6"name="content"></textarea></div></td></tr><tr><td colspan="2"><div align="center"><input type="submit" value="添加" name="button3"><input type="reset" value="重置" name="button4"> </div></td></tr><tr><td colspan="2"><div align="center"><a href="Display.jsp">|显示全部留言</a>||<a href="somedelete.jsp">删除留言</a> ||<a href="Select.jsp">查找包含“标题”的留言|</a></div></td></tr><p></p></table><br></form></body>(4)处理添加留言信息(Addmessage.jsp)模块代码<body><%String driverName="com.mysql.jdbc.Driver";String userName="root";String userPassword="10086";String dbName="dbmessage";String tableName="insertmessage";Stringurl="jdbc:mysql://localhost:3306/"+dbName+"?user="+userName+"&password="+us erPassword;Class.forName("com.mysql.jdbc.Driver").newInstance();Connection conn=DriverManager.getConnection(url);Statement stmt=conn.createStatement();String name=request.getParameter("name");name=new String(name.getBytes("iso-8859-1"));String QQ=request.getParameter("QQ");QQ=new String(QQ.getBytes("iso-8859-1"));String email=request.getParameter("email");email=new String(email.getBytes("iso-8859-1"));String title=request.getParameter("title");title=new String(title.getBytes("iso-8859-1"));String content=request.getParameter("content");content=new String(content.getBytes("iso-8859-1"));if(name.equals("")|QQ.equals("")|email.equals("")|title.equals("")|content.equals("")){response.sendRedirect("messagecontent.jsp");}else{String sql="insert into insertmessage(Name,QQ,Email,Title,Content)values('"+name+"','"+QQ+"','"+email+"','"+title+"','"+content+"')";stmt.executeUpdate(sql);out.print("数据库连接成功");response.sendRedirect("Display.jsp");}stmt.close();conn.close();%>(5)删除留言信息(Delete.jsp)模块代码:<body><%!String getS(String str){try{byte b[]=str.getBytes("iso-8859-1");str=new String(b);}catch(Exception e){str="出现异常";}return str;}%><%try{String str1=request.getParameter("title");str1=getS(str1.trim());String driverName="com.mysql.jdbc.Driver";String userName="root";String userPassword="10086";String dbName="dbmessage";String tableName="insertmessage";Stringurl="jdbc:mysql://localhost:3306/"+dbName+"?user="+userName+"&password="+us erPassword;Class.forName("com.mysql.jdbc.Driver").newInstance();Connection conn=DriverManager.getConnection(url);Statement stmt1 = conn.createStatement();Statement stmt=conn.createStatement();String sql="delete from insertmessage where title='"+str1+"'";int row1=stmt.executeUpdate(sql);out.print(row1+"条记录被删除");}catch(Exception e){out.println(e);}%><a href="Display.jsp">|显示页|</a></body>(6)按条件删除留言信息(somedelete.jsp)模块代码:<body><form method="post" action="Delete.jsp"><div align="center"></div><table border="0" cellspacing="2" bgcolor="#ff99cc" " align="center" style="height: 70px; width="300px"><tr><td align="center" colspan="2"><font size="5">删除留言</font></td> <td><div align="left"></div></td></tr><tr><td><div align="right">按标题删除:</div></td><td><div align="left"><input type="text" name="title"></div></td></tr><tr><td colspan="2"><div align="center"><input type="submit" value="删除" name="Submit"><input type="button" value="重置" name="Reset"> </div></td></tr></table></form></body>(7)显示留言信息(Display.jsp)模块代码:<body><center></center><div align="center"><img src="images/1.gif" width="100"><strong>分页显示数据库留言记录</strong></div><br><hr><table width="800" border="1" align="center"><tr><td>用户名</td><td>QQ</td><td>E-mail</td><td>标题</td><td>留言内容</td></tr><%try{String driverName="com.mysql.jdbc.Driver"; //驱动程序名String userName="root";//数据库用户名String userPasswd="10086";//密码String dbName="dbmessage";//数据库名String tableName="insertmessage";//表名//连接字符串Stringurl="jdbc:mysql://localhost:3306/"+dbName+"?user="+userName+"&password="+us erPasswd;//+"&useUnicode=true&characterEncoding=GB2312";Class.forName(driverName).newInstance();//加载驱动程序Connection conn=DriverManager.getConnection(url);String sql="select * from insertmessage";//创建执行语句Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery(sql);int intPageSize; //一页显示的记录数int intRowCount; //记录的总数int intPageCount; //总页数int intPage; //待显示的页码String strPage;int i;intPageSize=5; //设置一页显示的记录数strPage=request.getParameter("page");//取得待显示的页码if(strPage==null) //判断strPage是否等于null,如果是,显示第一页数据{intPage=1;}else{intPage=ng.Integer.parseInt(strPage); //将字符串转换为整型}if(intPage<1){intPage=1;}st();//获取记录总数intRowCount=rs.getRow();intPageCount=(intRowCount+intPageSize-1)/intPageSize; //计算机总页数if(intPage>intPageCount) intPage=intPageCount; //调整待显示的页码if(intPageCount>0){rs.absolute((intPage-1)*intPageSize+1); //将记录指针定位到待显示页的第一条记录上}//下面用于显示数据i=0;while(i<intPageSize && !rs.isAfterLast()){%><tr><td><%=rs.getString(1)%></td><td><%=rs.getString(2)%></td><td><%=rs.getString(3)%></td><td><%=rs.getString(4)%></td><td><%=rs.getString(5)%></td></tr><%rs.next();i++;}rs.close();//关闭连接、释放资源stmt.close();conn.close();%><div align="center"> 共<%=intRowCount%>个记录,分<%=intPageCount%>页显示,当前页是:第<%=intPage%>页 <a href="messagecontent.jsp">|留言板主页|</a><%for(int j=1;j<=intPageCount;j++){out.print(" <a href='Display.jsp?page="+j+"'>"+j+"</a>");}%></div><%}catch(Exception e){e.printStackTrace();}%></body>(8)查询留言信息(Select.jsp)模块代码:<body><form method="post" action="Doselect.jsp"><div align="center"></div><table border="0" cellspacing="2" bgcolor="#ff99cc" " align="center" style="height: 50px; width="300px"><tr><td align="center" colspan="2"><font size="5">查询留言</font></td> <td><div align="left"></div></td></tr><tr><td><div align="right">按标题查询:</div></td><td><div align="left"><input type="text" name="title"></div></td></tr><tr><td colspan="2"><div align="center"><input type="submit" value="提交" name="Submit"><input type="reset" value="重置" name="Reset"> </div></td></tr></form></body>(9)按条件查询留言信息(Doselect.jsp)模块代码:<body><%!String getS(String str){try{byte b[]=str.getBytes("iso-8859-1");str=new String(b);}catch(Exception e){str="出现异常";}return str;}%><%try{String str1=request.getParameter("title");str1=getS(str1.trim());String driverName="com.mysql.jdbc.Driver";String userName="root";String userPassword="10086";String dbName="dbmessage";String tableName="insertmessage";Stringurl="jdbc:mysql://localhost:3306/"+dbName+"?user="+userName+"&password="+us erPassword;//连接字符串Class.forName("com.mysql.jdbc.Driver").newInstance();Connection conn=DriverManager.getConnection(url);Statement stmt1 = conn.createStatement();String sql="select * from insertmessage where title like '%"+str1+"%'";ResultSet rs=stmt1.executeQuery(sql);if(rs.next()){out.print("姓名:"+rs.getString("name"));out.print("<br>QQ:"+rs.getString("QQ"));out.print("<br>Email:"+rs.getString("email"));out.print("<br>标题:"+rs.getString("title"));out.print("<br>内容:"+rs.getString("content"));}else{out.print("该关键字的内容不存在");}stmt1.close();conn.close();}catch(Exception e){out.print(e);}%><a href="messagecontent.jsp">|添加留言|</a></body>六、课程设计心得体会这个留言板管理系统让我对前面学的知识有了整个的回顾与总结。