基于JSP的留言板课程设计报告书Word下载.docx
- 文档编号:17032999
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:20
- 大小:22.12KB
基于JSP的留言板课程设计报告书Word下载.docx
《基于JSP的留言板课程设计报告书Word下载.docx》由会员分享,可在线阅读,更多相关《基于JSP的留言板课程设计报告书Word下载.docx(20页珍藏版)》请在冰豆网上搜索。
tb_counter是记录每天的访问次数,有如下两个字段:
accessTime、hit。
5.通过分析,在显示留言的是时候,要用到tb_user和tb_topic两表,所以要设计一个具有这两表的一个视图:
首先建立关系如下:
视图如下:
页面设计
1的流程体如下:
2各页面功能实现说明:
1)系统提供的服务(top.jsp)
程序的主要实现根据等级设置用户权限,是用脚本言语(javascript)来显示系统的当前时间,并通过<
marquee>
来实现滚动的显示,主要代码如下:
<
%pagecontentType="
text/html;
charset=gb2312"
language="
java"
import="
java.sql.*"
errorPage="
"
%>
%includefile="
connDB.jsp"
jsp:
includepage="
counter.jsp"
/>
%
ResultSetrs_user=stmt.executeQuery("
select*fromtb_userwhereusername='
+session.getAttribute("
username"
)+"
'
andstatus='
版主'
);
booleaneof=rs_user.next();
%>
scriptlanguage="
javascript"
>
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="
+DD;
if(HH<
10)HH="
+HH;
if(mm<
10)mm="
+mm;
if(SS<
10)SS="
+SS;
switch(KK){
case1:
KK="
星期一"
;
break;
case2:
星期二"
case3:
星期三"
case4:
星期四"
case5:
星期五"
case6:
星期六"
case0:
星期日"
}
varstr_date="
系统公告:
+YY+"
年"
+MM+"
月"
+DD+"
日"
+KK+"
"
+HH+"
:
+mm+"
if(document.all){
div_date.innerHTML=str_date;
vartimer=setTimeout("
clockon()"
200);
}
/script>
tablewidth="
777"
height="
124"
border="
align="
center"
cellpadding="
cellspacing="
>
<
tr>
tdalign="
valign="
top"
5"
bgcolor="
#FFCCCC"
/td>
/tr>
tdwidth="
790"
imgsrc="
images/banner.gif"
width="
500"
100%"
tdheight="
/table>
21"
background="
images/revigate.GIF"
tralign="
middle"
%if(session.getAttribute("
)!
=null){%>
104"
ahref="
Topic_add.jsp"
签写留言<
/a>
101"
modify.jsp"
修改资料<
%}else{%>
reg.jsp"
用户注册<
%}%>
Logout_User.jsp"
注销用户<
#"
Login_User.jsp'
'
width=300,height=200'
用户登录<
index1.jsp"
查看留言<
刷新页面<
%if(eof){%>
注销版主登录<
%}else{
Login_manager.jsp'
版主登录<
47"
2"
colspan="
6"
18"
17"
left"
images/speaker.GIF"
16"
290"
div>
系统公告:
/div>
469"
right"
=null){
out.println("
["
]您好!
您不想说点什么吗?
如果想请点击“签写留言”!
}else{
您好!
如果您想说点什么,那么请先注册或登录!
}%>
tdcolspan="
3"
marqueedirection="
scrollamount="
scrolldelay="
您好!
欢迎访问“在水一方”留言簿!
!
已经有[<
%=application.getAttribute("
count"
)%>
]人访问过本!
/marquee>
stmt.close();
con.close();
2)查看留言(index1.jsp)
将所有的;
留言记录通过循环显示在客户端,并将某条留言的回复记录和回复者的也显示出来。
如果是登录用户的权限为普通用户,那么该用户的权限极为回复留言。
如果是管理员,那么该用户的权限就是回复和删除留言。
由于涉及到多条记录的显示,我们用了分页显示的方法出来。
定义每个页面显示的记录,通过ResultSet对象计算出总的记录数,通过这两个数据计算总的页数。
主要代码如下:
Statementstmt2=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
Statementstmt3=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSetrs=stmt.executeQuery("
select*fromv_board"
ResultSetrs_reply=null;
ResultSetrs_user=stmt2.executeQuery("
System.out.print("
查询成功!
//ResultSetrs_topic=stmt.executeQuery("
select*fromtb_topic"
------------------------------------------
booleantj=rs_user.next();
Stringstr=(String)request.getParameter("
Page"
if(str==null){
str="
intpagesize=5;
//每页显示的数据条数
rs.last();
intRecordCount=rs.getRow();
//获得记录的总条数
intmaxPage=0;
maxPage=(RecordCount%pagesize==0)?
(RecordCount/pagesize):
(RecordCount/pagesize+1);
//得到的是总页数
intPage=Integer.parseInt(str);
//当前时第几页
if(Page<
1){
Page=1;
if(((Page-1)*pagesize+1)>
RecordCount){
Page=maxPage;
rs.absolute((Page-1)*pagesize+1);
for(inti=1;
i<
=pagesize;
i++){
inta=rs.getInt("
ID"
192"
115"
rowspan="
%=rs.getString("
UserName"
(<
status"
)
p>
Sex"
生
表情:
face"
bottom"
hrsize="
1px"
color="
447"
style="
padding-left:
10pt"
images/email.GIF"
alt="
Email:
Email"
<
images/home-menu.gif"
个人主页:
homepage"
26"
20"
images/atusers.gif"
OICQ:
OICQ"
14"
images/datetime.gif"
datetime"
&
nbsp;
留言时间:
195"
%out.println("
ahref='
reply.jsp?
TopicID="
+a+"
回复&
if(tj){out.println("
Del.jsp?
删除<
}%>
hrwidth="
98%"
size="
1"
109"
pre>
content"
/pre>
rs_reply=stmt3.executeQuery("
select*fromtb_replywhereTopicID="
+a);
while(rs_reply.next()){
39"
%=rs_reply.getString("
replyuser"
回复<
20%"
br>
try{
if(!
rs.next()){break;
}catch(Exceptione){}
当前页数:
[<
%=Page%>
/<
%=maxPage%>
]&
%if(Page>
1){%>
index1.jsp?
Page=1"
第一页<
<
Page=<
%=Page-1%>
上一页<
if(Page<
maxPage){
%=Page+1%>
下一页<
最后一页&
3)用户登陆(Login_User_deal.jsp)
在top.jsp中设计的是当用户单击登录连接的时候,弹出一个小的对话框来提供用户的登录功能,所以在在个页面中需要刷新用户登录后的页面,用到了脚本语言(javascript)中的一段代码:
open.location.reload().管理员登录(login_manager_deal.jsp)与此页面的代码相似,下面就不再写了。
主要的代码如下:
request.setCharacterEncoding("
GB2312"
Stringusername=request.getParameter("
StringPWD=request.getParameter("
PWD"
if(username!
="
){%>
%
select*fromtb_userwhereUserName='
+username+"
andstatus='
用户'
if(rs.next()){
StringrsPWD=rs.getString("
if(PWD.equals(rsPWD)){%>
opener.location.reload();
window.close();
session.setAttribute("
username);
}else{%>
alert("
您输入的密码不正确,请重新输入!
history.back();
%}
}else{%>
alert("
您输入的用户名不正确,请重新输入!
history.back();
4)留言回复(reply_deal.jsp)
回复留言的关键如何准确地将回复容和留言关联起来。
本例通过获得留言查看(index1.jsp)页面中的留言回复连接所传递过来的参数TopicTD(留言记录ID),来完成回复功能。
添加留言(Topic_add_deal.jsp)于此相似,在次就不在介绍。
主要程序代码如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 JSP 留言板 课程设计 报告书