JSP留言簿系统无版权
一.此系统为留言簿系统,主要实现功能有:
1.用户注册:注册信息包括用户名,密码,确认密码,生日,性别,OICQ号码,电话,个人主页,地址,邮政编码,Email等,其中用户名,密码,确认密码,和Email为必填信息.用户注册后,信息保存到数据库中.
2.登录功能:包括用户登录和版主登录,只有当数据库存在相应信息且用户名和密码匹配后才能登录成功进入主页面,否则提示错误信息.
3.查看留言:无论是否注册或登录都可以查看留言,但只有登录后才能回复信息,且只有以版主身份登录才能删除留言.
4.刷新页面:进行页面刷新
5.注销功能:包括注销用户和注销版主,注销后返回未登录时状态
6.签写留言:只有当用户或版主登录后才能签写留言,在签写留言时除了可以签写留言内容还可以选择心情
7.修改资料:可以对用户或版主信息进行修改,但不允许修改用户名,且密码,确认密码,和Email不能为空.
8.回复:只有登录后才能回复留言
9.删除:只有版主登录后才能删除留言
10.分页显示
11.显示系统的日期和时间
二.系统环境说明: tomcat-6.0.10, SQL Server 2000 8.00.760版, jdk1.5.0_09
三.数据库设计:新建一个数据库(db_board) ,在其中新建3张表(tb_User,tb_Topic, tb_reply)和一张视图(v_board)具体设计如下:
tb_User包括的字段:ID(用户ID),UserName(用户名), PWD(密码), Birthday(生日), Sex(性别)
OICQ(OICQ), Tel(电话), homepage(个人主页), address(地址), postcode(邮政编码)
Email(E-mail), status( 用户身份)
tb_Topic包括的字段:ID(留言ID), author(用户ID), face(留言表情), content(留言内容)
datetime(留言日期)
tb_reply包括的字段:ID (回复ID), TopicID (留言ID), content (留言回复内容),
replyuser (回复留言者的用户名)
v_board包括的字段:ID(留言ID), UserName(用户名), Birthday(生日), Sex(性别), OICQ(OICQ)
Tel(电话), address(地址), postcode (邮政编码), Email(E-mail) ,face (留言表情), content(留言内容), datetime(留言日期) , homepage(个人主页), status(用户身份)
四.各jsp文件及class文件功能说明:
connDB.class:实现数据库连接,连接数据库用户名为:sa,密码为:123456,数据库为db_board
top.jsp:实现页面头部的统一布局,主要实现根据用户等级设置用户权限,使用脚本语言来显示出系统的当前时间,以及显示欢迎词和标题。其中包括多个超链接,不同的用户等级有不同的超链接。根据session.getAttribute("username")的值是否为空来判断访问者是否已经登录,
根据session.getAttribute("username") 并且 status='版主'的布尔值来判断是否为版主。
1.当访问者为游客时则具有以下超链接:
“用户注册” 超链接到reg.jsp页面
“用户登录” 超链接到Login_User.jsp页面
“查看留言” 超链接到index.jsp页面
“版主登录” 超链接到Login_manager.jsp页面
另外还具有刷新页面功能即重新加载页面
2.当访问者为普通用户时则具有以下超链接:
“签写留言” 超链接到Topic_add.jsp页面
“修改资料” 超链接到modify.jsp页面
“注销用户” 超链接到Logout_User.jsp页面
“查看留言” 超链接到index.jsp页面
“版主登录” 超链接到Login_manager.jsp页面
另外同样具有刷新页面功能
3. 当访问者为版主时则具有以下超链接:
“签写留言”超链接到Topic_add.jsp页面
“修改资料”超链接到modify.jsp页面
“注销版主登录”超链接到Logout_User.jsp页面
“查看留言” 超链接到index.jsp页面
“用户登录” 超链接到Login_User.jsp页面
另外同样也具有刷新页面功能
index.jsp:主页面,主要显示留言者的相关信息以及留言的内容和回复留言者的用户名及回复内容,以及分页显示功能。其中包含了top.jsp文件显示页面头部,以及两个超级链接。
根据以下代码:
ResultSet rs_user=connBean.executeQuery("select * from tb_user where username='"+session.getAttribute("username")+"'and status='版主'");
boolean tj=rs_user.next();通过判断tj是否为真来判断访问者是否为版主以此来决定是否显示“删除”,超链接到Del.jsp并通过传递TopicID传递留言ID。
任何用户等级均可显示“回复”,超链接到 reply.jsp并通过传递TopicID传递留言ID.
reg.jsp: 用户注册页面,其中包含了top.jsp页面实现页面头部,并通过一个javaSript脚本函数mycheck()来判断输入的用户名和密码,Email 是否为空,以及密码和确认密码是否一致。用户注册的表单信息提交给reg_deal.jsp处理。
reg_deal.jsp: 根据reg.jsp提交的信息中username,判断该用户是否已经存在,若用户已存在则弹出“该用户名已经存在,请重新注册!”,点击确定后页面跳转到reg.jsp。若不存在,则更新数据库,更新成功则弹出“用户注册成功!”点击确定后页面跳转到index.jsp,若更新数据库失败则弹出“用户注册失败!”,点击确定后页面跳转到reg.jsp。
Login_User.jsp:用户登录页面,提供用户名和密码输入框,表单信息提交给Login_User_deal.jsp处理。
Login_User_deal.jsp:用户登录的处理页面,根据Login_User.jsp提交的信息进行操作,当数据库中存在与提交的用户名相同的用户则进一步判断其密码是否一致,否则提示“您输入的用户名不正确,请重新输入!”,并通过history.back()返回登录界面;假如用户名存在且密码一致则通过opener.location.reload()刷新父窗口(index.jsp)并通过window.close()关闭当前窗口,否则提示“您输入的密码不正确,请重新输入!”,并通过history.back()返回登录界面。
Login_manager.jsp:版主登录页面,功能与Login_User.jsp类似,提供版主名称和密码输入框,表单信息提交给Login_manager_deal.jsp处理。89
JSP留言簿系统无版权
Login_manager_deal.jsp:版主登录的处理页面,功能类似与 Login_User_deal.jsp, 根据Login_manager.jsp表单提交的信息进行操作,当数据库中存在与提交的版主名称相同的版主则进一步判断其密码是否一致,否则提示“您输入的版主名称不正确,请重新输入!”,并通过history.back()返回登录界面;假如版主名称存在且密码一致则通过opener.location.reload()刷新父窗口(index.jsp)并通过window.close()关闭当前窗口,否则提示“您输入的密码不正确,请重新输入!”,并通过history.back()返回登录界面。
Logout_User.jsp:注销用户或版主,清除session中的username属性及其值,并转向index.jsp。
Topic_add.jsp:实现签写留言,当用户登录后超时,session失效,则提示“您没有登录,请先登录或注册!”并返回index.jsp页面,否则获取用户ID赋值给UID,并显示用户的相关信息。签写留言页面除了可以签写留言内容还可以通过下拉列表框选择当时的心情。该页面包含了top.jsp页面实现页面头部,表单信息提交给Topic_add_deal.jsp处理。
Topic_add_deal.jsp:签写留言的处理页面,把Topic.jsp表单提交的信息添加到数据库当中。更新数据库,更新成功则提示“留言成功!”,并跳转到index.jsp页面,否则提示“留言失败!”,并跳转回Topic_add.jsp页面。
modify.jsp:实现用户资料修改功能。若session失效则重定向到index.jsp页面,否则通过username从数据库获取相应信息并显示,其中用户名设为只读,密码和确认密码设为空。并通过javaSript脚本函数mycheck()来判断输入的密码、确认密码和Email 是否为空,以及密码和确认密码是否一致。表单信息提交给modify_deal.jsp处理。
modify_deal.jsp:资料修改处理页面,根据modify.jsp提交的信息更新数据库。更新成功则提示“资料修改成功!”,并跳转到index.jsp页面,否则提示“资料修改失败!”,并跳转回modify.jsp页面。
reply.jsp:回复页面,假如用户未登录或登录后超时则提示“对不起!您现在没有回复的权限,请您先登录”,否则获取index.jsp传递过来的TopicID(留言ID),并通过留言ID从数据库中找到相应留言内容,将其显示到页面上。同时页面实现回复者的相关信息,回复者回复的内容提交给reply_deal.jsp处理。
reply_deal.jsp:回复信息处理页面,若 回复信息为空则重定向到index.jsp页面,否则把reply.jsp提交的信息添加到数据库当中,并更新数据库,数据库更新成功则提示“回复信息成功!”,并跳转到index.jsp页面,否则提示“回复信息失败”,并跳转回reply.jsp页面。
Del.jsp: 删除留言页面,根据index.jsp传递过来的留言ID在数据库中找到相应的留言信息将其删除,并更新数据库。若数据库更新成功则提示“留言信息删除成功!”,并跳转到index.jsp页面,否则提示“留言信息删除失败!”,同样跳转到index.jsp页面。
五.数据库已存在的版主以及部分用户名称和密码:
版主名称:zyy 密码:0408008404
用户名:hello 密码:hello
用户名:yanyan 密码:yanyan
JSP留言簿系统没有版权
top.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%
ResultSet rs_user=connBean.executeQuery("select * from tb_user where username='"+session.getAttribute("username")+"'and status='版主'");
boolean eof=rs_user.next();
%>
|
|
<%if(session.getAttribute("username")!=null){%>
签写留言 |
修改资料 |
<%}else{%>
用户注册 |
<%}%>
<% if(eof){%>
注销版主登录
<%}else{
if(session.getAttribute("username")!=null){%>
|
注销用户
<%}else{%>
| 用户登录
<%}}%>
|
查看留言 |
刷新页面 |
<%if(!eof){%>
版主登录 | <%}
else{%>
用户登录 | <%}%>
|
|
系统公告: |
<%if(session.getAttribute("username")!=null){
out.println("[ "+session.getAttribute("username")+" ]您好!欢迎您来到“蓝天一色”留言簿!留言请点击“签写留言”!");
}else{
out.println("您好!如果您想说点什么,请先注册或登录!");
}%>
|
index.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%
ResultSet rs=connBean.executeQuery("select * from v_board");
ResultSet rs_user=connBean.executeQuery("select * from tb_user where username='"+session.getAttribute("username")+"'and status='版主'");
需要完整内容的请联系QQ3710167,JSP留言簿系统没有版权免费,转发请注明源于www.lwfree.cn
|
JSP留言簿系统无版权
background="images/bg_banner.GIF"> |
≡查看留言≡ |
<%
try{
boolean tj=rs_user.next();
String str=(String)request.getParameter("Page");
if(str==null){
str="0";
}
int pagesize=5;
rs.last();
int RecordCount=rs.getRow();
int maxPage=0;
maxPage=(RecordCount%pagesize==0)?(RecordCount/pagesize):(RecordCount/pagesize+1);
int Page=Integer.parseInt(str);
if(Page<1){
Page=1;
}else{
if(((Page-1)*pagesize+1)>RecordCount){
Page=maxPage;
}
}
rs.absolute((Page-1)*pagesize+1);
for(int i=1;i<=pagesize;i++){
%>
<%
try{
if(!rs.next())
{break;}
}
catch(Exception e){}
}
%>
当前页数:[<%=Page%>/<%=maxPage%>]
<%if(Page>1){%>
第一页 上一页
<%
}
if(Page %>
下一页 最后一页
<%}
}
catch(Exception e){
out.print("无记录");
}
%>
|
|
|
|