基于JSP的留言板课程设计含源文件.docx
《基于JSP的留言板课程设计含源文件.docx》由会员分享,可在线阅读,更多相关《基于JSP的留言板课程设计含源文件.docx(20页珍藏版)》请在冰豆网上搜索。
![基于JSP的留言板课程设计含源文件.docx](https://file1.bdocx.com/fileroot1/2023-1/23/31fb673e-27cc-4e11-b8b2-d39104f25d71/31fb673e-27cc-4e11-b8b2-d39104f25d711.gif)
基于JSP的留言板课程设计含源文件
JSP在水一方留言簿设计报告
需求分析
随着互联网的迅猛的发展,网站给我们带来不少的便利,于此同时,论坛基本是每个网站必有的功能,为用户之间的交流提供的很好的平台。
我通过仔细的分析和规划,本论坛有
如下功能:
用户注册,登录,用户信息修改,签写留言,留言查看,回复留言和管理员的普通维护功能等。
这些功能的具体描述如下:
1)用户注册模块:
用户可已成为本论坛的会员,通过表单把用户的相关信息提交给数据库。
2)登录模块:
基本是每个系统必备的模块,本论坛的登录的模块分为两个小模块:
普通用户登录,另一个是管理员登录。
3)签写留言模块:
这是论坛的主要功能之一,用户把自己感兴趣的话题发表到论坛上,与网上的会员进行探讨。
4)查看留言模块:
这也是论坛的主要功能之一,把用户发表的留言逐条,安顺序显示出来。
5)回复留言模块:
这也是论坛的主要功能之一,用户对别的用户发表的留言进行回复。
6)普通的维护模块:
这是给管理员的功能,该功能对那些危害社会风气的留言删除。
7)用户信息修改模块:
用户能对自己的信息进行修改。
二分析和设计(页面和数据库)
设计网站论坛时,首先应该区别是普通用户登录还是管理员登录。
如果是普通用户登录,那么该用户只有查看和回复留言的权限。
如果是管理员登录,则除了具有查看和回复权限外,还用具有管理论坛的权限。
在用户发表留言后,将显示该用户的用户名、性别、留言内容和留言时间等内容。
如果
在某个留言有回复内容,则显示出是谁恢复了该篇留言和回复的内容。
另外还能在页面中显示当前的系统的时间和访问权限。
数据库设计
通过以上的分析:
数据库应有四个表,tb_user、td_topic、tb_reply、tb_counter。
由于是
个小型的论坛,选择AEESS数据库。
具体各表的设计如下:
ID、USerName、PWD、
1分析得知tb_USer表功能的记录用户的信息,具有如下字段:
Birthday、Sex、OlCQ、
Tel、homepageaddress、PoStCode、Email、StatUSO
2分析得知tb_topic表功能是存放用户发表的留言,具有如下字段:
ID、anthor、face、content、datetimeo
3分析得知tb_reply表功能是用于存放用户对每条留言所回复的信息,具有如下字段:
ID、TPOiCID、content、replyuser。
4通过分析得知:
tb_counter是记录网站每天的访问次数,有如下两个字段:
accessTimehit。
5•通过分析,在显示留言的是时候,要用到tb_USer和tb_topic两张表,所以要设计一个
具有这两张表的一个视图:
首先建立关系如下:
视图如下:
页面设计
1网站的流程体如下:
2各页面功能实现说明:
1)系统提供的服务(top.jsp)
程序的主要实现根据等级设置用户权限,是用脚本言语(javascript)来显示系统的当前
时间,并通过VmarqUee>来实现滚动的显示,主要代码如下:
<%@PageContentType="text∕html;CharSet=gb2312"Ianguage="java"import="java.sql.*"errorPage=""%>
<%@includefile="connDB.jsp"%>
includepage="coUnter.jsp"/>
<%
ReSUItSetrs_USer=Stmt.executeQuery("select*fromtb_USerWhere
USername='"+session.getAttribute("username")+"'andstatus='版主'");
booleaneof=rs_user.next();
%>
functionclockon(){
Vardate=newDate();
VarYY=date.getYear();
VarMM=date.getMonth()+1;
VarDD=date.getDate();
VarKK=date.getDay();
VarHH=date.getHours();
Varmm=date.getMinutes();
VarSS=date.getSecOnds();
if(MM<10)MM="0"+MM;
if(DD<10)DD="O"+DD;
if(HH<10)HH="0"+HH;
if(mm<10)mm="0"+mm;
if(SS<10)SS="O"+SS;
SWitCh(KK){
CaSe1:
KK="星期一";break;
CaSe2:
KK="星期二";break;
CaSe3:
KK="星期三";break;
CaSe4:
KK="星期四";break;
CaSe5:
KK="星期五";
break;
CaSe6:
KK="星期六";
break;
CaSe0:
KK="星期日";
break;
}
VarStr_date="系统公告:
"+YY+"年"+MM+"月"+DD+"日"+KK+"
"+HH+":
"+mm+":
"+SS;
if(document.all){
div_date.innerHTML=str_date;
}
Vartimer=setTimeout("clockon()",200);
}
<∕script>
cellspacing="0">
|
Width="500"height="124"><∕td>
|
cellpadding="0">
|
<∕table><∕td>
<∕tr>
<∕table>
VtableWidth="777"height="21"border="。
"align="center"cellpadding="0"
cellspacing="0"backgroUnd="images∕revigate.GIF">
<%if(session.getAttribute("username")!
=null){%>
签写留言<∕a><∕td>
修改资料<∕a><∕td>
<%}else{%>
用户注册<∕a><∕td>
<%}%>
<%if(session.getAttribute("username")!
=null){%>
注销用户<∕a>
<%}else{%>
用户登录<∕a>
<%}%>
<∕td>
查看留言<∕a><∕td>
刷新页面<∕a><∕td>
<%if(eof){%>
注销版主登录<∕a>
<%}else{
%>版主登录
<∕a><%}%><∕td>
<∕tr>
<∕table>
border="0"align="center"cellpadding="0"
CellSPaCing="0">
<∕td>
<∕tr>
height="16"><∕td>
系统公告:
<∕div><∕td>
<%if(session.getAttribute("username")!
=null){
out.println("["+session.getAttribute("username")+"]您好!
您不想说点什么吗?
如
果想请点击签写留言”");
}else{
out.println("您好!
如果您想说点什么,那么请先注册或登录!
");
}%>
|
您好!
欢迎访问“在水一方”留言簿!
!
!
已经有
[<%=application.getAttribute("count")%>]人访问过本网站!
<∕marquee><∕td>
<∕table>
<%
stmt.close();
con.close();
%>
2)查看留言(index1.jsp)
将所有的;留言记录通过循环显示在客户端,并将某条留言的回复记录和回复者的姓名
<%@PageContentType="text∕html;CharSet=gb2312"Ianguage="java"
import="java.sql.*"errorPage=""%>
includepage="coUnter.jsp"/>
<%
Statementstmt2
=con.createStatement(ResultSet.TYPE_SCROLL_lNSENSlTlVE,ResultSet.CONCUR_READ_ONLY);
Statementstmt3
=con.createStatement(ResultSet.TYPE_SCROLL_lNSENSlTlVE,ResultSet.CONCUR_READ_ONLY);
ReSUItSetrs=stmt.executeQuery("select*fromv_board");
ReSUItSetrs_reply=nuII;
ReSUItSetrs_USer=Stmt2.executeQuery("seIect*fromtb_USerWhere
USername='"+session.getAttribUte("Username")+"'andStatUS='版主'");
SyStem.oUt.print("查询成功!
");
//ResUltSetrs_topic=stmt.execUteQUery("select*fromtb_topic");
%>
<%
booleantj=rs_User.next();
StringStr=(String)reqUest.getParameter("Page");
if(str==nuII){
str="0";
}
intPageSiZe=5;//每页显示的数据条数
rs.last();
intReCordCoUnt=rs.getRow();//获得记录的总条数
intmaxPage=0;
maxPage=(RecordCoUnt%pagesize==0)?
(ReCOrdCOUnt/pagesize):
(ReCOrdCOUnt/pagesize+1)
;〃得到的是总页数
intPage=Integer.parselnt(str);//当前时第几页
if(Page<1){
Page=1;
}else{
if(((Page-1)*pagesize+1)>RecordCount){
Page=maxPage;
}
}
rs.absolute((Page-1)*pagesize+1);
for(inti=1;i<=pagesize;i++){
inta=rs.getInt("ID");
%>
align="center"><%=rs.getString("UserName")%>(<%=rs.getString("status")%>)
<%=rs.getString("Sex")%>生
表情:
<%=rs.getString("face")%>
SiZe="100%"Width="1px"color="#FFCCCC">
10pt">
![]()
src="images∕email.GIF"alt="Email:
<%=rs.getString("Email")%>"Width="16"height="16">
<%=rs.getString("homepage")%>"Width="26"height="20">
<%=rs.getString("OICQ")%>"Width="14"height="16">
alt="<%=rs.getString("datetime")%>"Width="18"height="18"> 留言时间:
<%=rs.getString("datetime")%><∕td>
<%out.println("TOPiCID="+a+"'>回复
");
if(tj){out.println("TOPiCID="+a+"'>删除
");}%>
10pt">
10pt">color="#FFCCCC"SiZe="1">
|
StyIe="padding-lefL10pt">
<%=rs.getString("cOntent")%><∕pre><∕td>
|
<∕td>
<∕tr>
获取完整资料Q1225467431指导毕业设计课程设计代开发程序,代写文档
<%
rs_reply=stmt3.executeQuery("select*fromtb_replyWhereTOPiCID="+a);
While(rs_reply.next()){
%>
|
height="39" align="center" valign="top"><%=rs_reply.getString("replyuser")%>回复<∕td> valign="top">
SiZe="20%"Width="1px" color="#FFCCCC"><∕td> colspan="3" valign="top" Style="padding-left: 10pt"x%=rs_reply.getString("content")%> <∕td> |
|
1Opt">
|
<%}%>
<%
try{
if(!
rs.next()){break;}
}catch(ExceptiOne){}
}
%>
当前页数:
[<%=Page%>∕<%=maxPage%>]
<%if(Page>1){%>
Page=1">第一页<∕a>href="index1.jsp?
Page=<%=Page-1%>">上一页<∕a>
<%
}
if(Page%>
Page=<%=Page+1%>">下一页<∕a>href="index1.jsp?
Page=<%=maxPage%>">最后一页
<%}%>
3)用户登陆(Login_User_deal.jsp)
在top.jsp中设计的是当用户单击登录连接的时候,弹出一个小的对话框来提供用户的
登录功能,所以在在个页面中需要刷新用户登录后的页面,用到了脚本语言(javascript)中
的一段代码:
open.location.reload().管理员登录(login_manager_deal.jsp)与此页面的代码相似,下面就不再写了。
主要的代码如下:
<%@PageContentType="text/html;CharSet=gb2312"Ianguage="java"import="java.sql.*"errorPage=""%>
includepage="coUnter.jsp"/>
<%
request.setCharacterEncoding("GB2312");
StringUSername=request.getParameter("username");
StringPWD=request.getParameter("PWD");
if(username!
=""){%>
<%
ReSUItSetrs=stmt.executeQuery("select*fromtb_USerWhere
USerName='"+username+"'andstatus='用户'");
if(rs.next()){
StringrsPWD=rs.getString("PWD");
if(PWD.equals(rsPWD)){%>
opener」oCation.reload();
Window.close();
<%
SeSSion.SetAttribUte("username",username);
}else{%>
alert("您输入的密码不正确,请重新输入!
");
history.back();
<∕script>
<%}
}else{%>
alert("您输入的用户名不正确,请重新输入!
");
history.back();
<%}
}%>
4)留言回复(reply_deal.jsp)
回复留言的关键如何准确地将回复内容和留言关联起来。
本例通过获得留言查看
(index1.jsp)页面中的留言回复连接所传递过来的参数TOPiCTD(留言记录ID),来完成回
复功能。
添加留言CToPiC_add_dej)于此相似J在次就不在介绍。
主要程序代码如下:
代开发程序,代写文档
<%@PageContentType="text/html;CharSet=gb2312"Ianguage="java"import="java.sql.*"errorPage=""%>
<%@includefile="connDB.jsp"%>
展开阅读全文
相关搜索
|