用jsp语言开发的留言板.docx

上传人:b****1 文档编号:13627055 上传时间:2023-06-15 格式:DOCX 页数:22 大小:3.02MB
下载 相关 举报
用jsp语言开发的留言板.docx_第1页
第1页 / 共22页
用jsp语言开发的留言板.docx_第2页
第2页 / 共22页
用jsp语言开发的留言板.docx_第3页
第3页 / 共22页
用jsp语言开发的留言板.docx_第4页
第4页 / 共22页
用jsp语言开发的留言板.docx_第5页
第5页 / 共22页
用jsp语言开发的留言板.docx_第6页
第6页 / 共22页
用jsp语言开发的留言板.docx_第7页
第7页 / 共22页
用jsp语言开发的留言板.docx_第8页
第8页 / 共22页
用jsp语言开发的留言板.docx_第9页
第9页 / 共22页
用jsp语言开发的留言板.docx_第10页
第10页 / 共22页
用jsp语言开发的留言板.docx_第11页
第11页 / 共22页
用jsp语言开发的留言板.docx_第12页
第12页 / 共22页
用jsp语言开发的留言板.docx_第13页
第13页 / 共22页
用jsp语言开发的留言板.docx_第14页
第14页 / 共22页
用jsp语言开发的留言板.docx_第15页
第15页 / 共22页
用jsp语言开发的留言板.docx_第16页
第16页 / 共22页
用jsp语言开发的留言板.docx_第17页
第17页 / 共22页
用jsp语言开发的留言板.docx_第18页
第18页 / 共22页
用jsp语言开发的留言板.docx_第19页
第19页 / 共22页
用jsp语言开发的留言板.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

用jsp语言开发的留言板.docx

《用jsp语言开发的留言板.docx》由会员分享,可在线阅读,更多相关《用jsp语言开发的留言板.docx(22页珍藏版)》请在冰点文库上搜索。

用jsp语言开发的留言板.docx

用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标签实现字体的运动,接下来是两个超级链接.

 

访问主页后,进入留言板主页,标题有主人寄语,然后调用以下方法,

publicListQureyAll(Stringsql){

Listlist=newArrayList();

this.getConnection();

try{

stat=con.createStatement();

rs=stat.executeQuery(sql);

while(rs.next()){

Messagemessage=newMessage();

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

//TODOAuto-generatedcatchblock

System.out.println("数据库异常");

e.printStackTrace();

}

CloseAll();

returnlist;

}

输出所有人的留言,界面如下:

 

 

若想要留言,则进入denglu.jsp页面,即用一个form表单即可,界面如下:

 

登陆成功后,进入success.jsp,设置了几个超链接如下:

 

若点击查看自己的留言,则进入shuchu3.jsp页面,在此页面,可以更新和删除,都是现获取自己的id号,然后操作,如下:

输出方法如下:

publicMessageQueryByID(intid){

Messagemessage=newMessage();

Stringsql="select*fromt_boardwhereborderID="+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(SQLExceptione){

//TODOAuto-generatedcatchblock

System.out.println("数据库异常");

e.printStackTrace();

}

CloseAll();

}

在jsp页面调用:

Stringid=request.getParameter("id");

intborderid=Integer.parseInt(id);

DBConndb=newDBConn();

Messagemessage=db.QueryByID(borderid);

更新主要实现就是:

Stringid=request.getParameter("id");

Stringsubject=request.getParameter("subject");

Stringcontent=request.getParameter("content");

Stringupdatetime=newDate().toLocaleString();

Stringsql="updatet_boardsetsubject='"+subject+"',content='"

+content+"',msgtime='"+updatetime+"',image='"+image+"'whereborderID="+id;

DBConndb=newDBConn();

intflag=db.executeUpdate(sql);

if(flag>0){

response.sendRedirect("shuchu3.jsp");

}

else{

out.print("出现异常,重新留言!

");

}

删除主要实现就是将sql语句进行修改一下:

Stringsql="deletefromt_boardwhereborderID="+borderid;

当然参数也没必要获得那么多.

更新和删除的主要方法为:

publicintexecuteUpdate(Stringsql){

intflag=0;

try{

this.getConnection();

stat=con.createStatement();

flag=stat.executeUpdate(sql);

}

catch(SQLExceptione){

e.printStackTrace();

}

CloseAll();

returnflag;

}

界面如下:

 

 

若点击查看自己的个人信息,则进入gerenxinxi.jsp页面,sql语句用username追踪,

调用如下的方法:

publicGenggaiQureyAll2(Stringsql){

Genggaixinxi=newGenggai();

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

System.out.println("数据库异常");

e.printStackTrace();}

CloseAll();

returnxinxi;}

在jsp页面这样输出:

out.print("");

out.print("");

out.print("");

out.print("您的id号是:

");

out.print("");

out.print("");

out.print("");

out.print(xinxi.getId());

out.print("");

out.print("");

其他列名输出跟上面的id一样,界面如下:

 

若点击如上的”修改用户名或密码”进入如下页面,即xiugaiyemian.jsp,也是定义一

个form表单

 

若修改成功,则进入xiugaichenggong.jsp页面,界面如下:

 

 

若点击success.jsp页面的”注销用户”,则进入如下页面,同样也是定义form表单,成功后进入cancelsuccess.jsp页面,两个界面如下:

 

注销用户方法是:

publicintTestCancel(Stringusername,Stringpwd){

intflag=0;

DBConndb=newDBConn();

con=db.getConnection();

Stringsql="deletefromt_userwhereusername=?

andpwd=?

";

try{

prests=con.prepareStatement(sql);

prests.setString(1,username);

prests.setString(2,pwd);

flag=prests.executeUpdate();

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

returnflag;

}

若在登陆页面,点击”注册”,进入regist.jsp页面如下,也是一个复杂的form表单,添加了背景和qq表情:

 

注册插入到数据库的方法主要有两个,一个用来判断用户名是否已经存在,一个用来插入:

如下

判断:

publicintTestpanduan(Stringusername){

ints=0;

DBConndb=newDBConn();

con=db.getConnection();

Stringsql="select*fromt_userwhereusername=?

";

try{

prests=con.prepareStatement(sql);

prests.setString(1,username);

rs=prests.executeQuery();

if(rs.next()){

s=1;

rs.close();

prests.close();

}

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

returns;

}

插入:

publicintTestinsert(Stringusername,Stringpwd,Stringrepwd,Stringsex,Stringbirthday,Stringemail,Stringaddress,Stringtelephone){

DBConndb=newDBConn();

con=db.getConnection();

intflag=0;

Stringsql="insertintot_uservalues(?

?

?

?

?

?

?

)";

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

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

returnflag;

}

注册成功后,进入zhucechenggong.jsp页面,也添加了背景图片和qq表情,使之美观,界面如下:

 

若访问的是管理员,则进入如下界面,他可以查看所有用户的所有留言和所有信息:

 

若查看所有用户的全部资料,则进入chakan.jsp页面,在此页面可以管理员进行删除,输出方法是:

publicResultSetQureyAll3(Stringsql){

Genggaixinxi=newGenggai();

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

//TODOAuto-generatedcatchblock

System.out.println("数据库异常");

e.printStackTrace();

}

returnrs;

}

在jsp页面调用方法后用<%out.print(rs.getString("email"));%>

删除链接是:

id=<%=rs.getInt("id")%>">删除

界面如下:

 

管理员还可以有权利对所有用户的留言进行删除:

主要方法同上面提到的.

界面如下:

 

点击我要留言链接后,进入我要留言页面:

添加笑脸和更新头像的方法如下:

<%intcount=0;

for(inti=0;i<40;i++){%>

"onclick="addimg(this)">

.png">

<%count++;

if(count%8==0)

out.print("
");}%>

更新头像:

<%for(inti=1;i<=30;i++){%>

"><%=i%>

<%}%>

但要用到JavaScript语言:

选择头像:

functionaddimg(obj){

vars=obj.value;

varcon=document.form1.content.value;

con=con+"";

document.form1.content.value=con;}

更换头像:

functionchange(){

varimage=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.在插入新留言的时候,一直出现中文乱码,插入如下两条语句,即可解决

byteaa[]=subject.getBytes("ISO-8859-1");subject=newString(aa);

bytebb[]=content.getBytes("ISO-8859-1");content=newString(bb);

更新头像的时候,头像不能同时显示出来

4.在注册新用户时,由于既要用sql语句判断用户名是否已经存在,又用到要在不存在的时候插入的sql语句,导致逻辑混乱,仔细推敲后,才运行得到.

5.因为要在多个页面用到传递的username等等,所以一定要用session获取参数

6.在更新留言时,要用到">传递隐藏的参数,由于刚开始不明白,出现了很多逻辑上的错误.

第五部分:

设计感受

1.这次的留言板设计感受很多,有时某一个很小的错误,比如丢一个括号,写错一个字母,就会浪费很长的时间.所以做完就用了很长的时间.当然对程序里的某些方法的应用,也不是太清楚,如过滤信息的设置等.我觉得还是孜孜不倦的从一点点的做起,比如每个网页的背景图片,就设计了不少时间,因为我觉得一个网站的美观效果也是很重要的.每当睡觉的时候,只要一想起,啊,我的留言板还没有做完,就会带着思考入梦了.

老实说,这个留言板不是很难,可能是刚接触数据库与jsp的链接吧,当时出了很多例如数据库异常的错误,到后期的时候就好多了…在对用户信息或用户的留言进行更新,删除,插入,查找等等时,这些方法都从jsp的页面,提到java类里面,方法都是大同小异,无非是数据库的链接,执行sql语句的对象的创建和应用,以及接受结果的存放等等.主要是预处理对象和执行对像的flag=stat.executeUpdate(sql);rs=stat.executeQuery(sql);这两个方法的调用.

2.在这期间离不开同学与同学,舍友与舍友之间互相学习和交流,所以收益也很大,也感受到了集体的力量.经过这次的留言板制作,收获很多.不仅对连接数据库方面的知识懂了很多,对sql语句的书写记忆深刻,而且还回忆了以前的很多函数的调用,方法的编写等等.相信在以后的学习中会更进一步,掌握更多的知识和应用.

第六部分:

附用户使用说明(包括安装环境部署环境,及使用),和设计时的数

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2