javaweb高级编程的课程设计,留言板系统
的课程报告,由于在评论区竟然有小伙伴
说我源码有很多错误,还给了我很低的评
分,我想这是对大家和我是不公平的!我
真的是无语,所以把课程报告贴出来让大
家看看,源码是没问题的!
下面贴出来源码下载地址:http://download.csdn.net/detail/baidu_31657889/9692685
以及课程报告下载地址:http://download.csdn.net/detail/baidu_31657889/9692689
还有就是没积分积分不够的小伙伴完全可以加我的qq272273581免费赠送的~互相学习
JavaWeb高级编程
课程报告
一、需求分析
1)数据库设计(对于系统的功能进行数据库设计)
2)用户登录界面以及注册设计
3)按照留言的时间的先后顺序进行留言排序以及分页
4)对于留言评论界面的设计
5)对于游客访问留言界面的处理,以及游客登录进行留言的时候进行设计
6)用户登录之后对于留言的查看以及对自己留言的管理
7)设置最热以及最新留言的显示(程序启动的时候把数据直接放在application中)
8)留言显示的页面跳转管理
9)用bootstrap进行页面设计,以及css布局
二、系统结构设计
1)功能模块:
页面(java代码) |
功能 |
login.jsp |
用户登录 |
register.jsp |
用户注册 |
mainTemp.jsp |
留言版主页面的展示 |
messageTemp.jsp |
单个留言的展示 |
messageSave.jsp |
留言的增加以及修改 |
delete.action |
留言的删除实现 |
commentAction.java |
增加留言 |
panduan.action |
该用户是否被注册过的异步校验 |
PageBean.java |
分页实体的设计 |
NavUtil.java |
导航条的设计 |
2)页面介绍
登录界面 login.jsp
登录界面主要是对用户的用户名和密码进行判断的界面,加上在session中放入的验证码进行对比,login.action进行判断用户名及密码是否正确,判断验证码是否正确,以及注册游客登录的展示
注册页面 register.jsp
注册页面对于用户名进行ajax异步判断是否用户名已经注册或者可以使用(见下图)
然后进行不为空判断,最后进行提交。
主页面 mainTemp.jsp
主页面分为由四个页面构成,头页面,主页面,友情链接界面以及尾页面,头页面显示的是用户信息和‘自己留言’以及‘我要留言’,如果是游客登录的情况,显示登录注册以及游客留言;主页面是用bootstrap3进行分列表显示,左边是主菜单栏,对留言的查看,包括对自己留言的查看(当然游客登录的时候是没有的),以及最热最新留言查看的栏目,右边就是对留言的一个简单的展示(留言时间以及留言标题截取显示);友情链接就是显示了几个链接,当然可以设置在数据库中进行遍历显示,时间关系就没建表;尾页面展示的是一个版权信息。
留言展示以及修改删除页面MessageTemp.jsp
在主页面点击一个留言的时候会跳转到这个页面,展示留言的信息,如果你是这篇留言的主人的时候,自己可以对自己留言进行修改和删除操作,如果你是游客或者这个留言不是出自你手的时候,会提示您没有权限进行修改或者删除,您可以自己写一个留言;下面会显示这个留言的评论,当然你也可以进行评论,右边显示的是最新留言和最热留言,当然这个功能应该是自己写在服务器启动的时候放在application中进行遍历的~
留言修改创建界面 MessageSave.jsp
messageTemp.jsp界面进入这个界面之前进行预操作处理,判断是更新操作还是插入操作,更新的情况对要修改的留言信息进行遍历,(当然坐着是不能修改的),如果是插入操作直接判断之后直接进行插入即可。
3)流程图:
4)数据库设计(messageBoard表 --mysql数据库)
表一:t_user(用户表)
字段 |
类型 |
长度 |
值 |
Id |
Int |
20 |
不为空(主键) |
UserName |
Varchar |
20 |
可为空 |
Password |
Varchar |
20 |
可为空 |
trueName |
varchar |
20 |
可为空 |
Phone |
varchar |
20 |
可为空 |
|
Varchar |
100 |
可为空 |
表二:t_message(留言表)
字段 |
类型 |
长度 |
值 |
Id |
Int |
20 |
不为空(主键) |
Title |
Varchar |
20 |
可为空 |
Content |
Varchar |
20 |
可为空 |
date |
date |
|
可为空 |
userName |
varchar |
20 |
可为空 |
表三:t_comment(评论表)
字段 |
类型 |
长度 |
值 |
CommentId |
Int |
20 |
不为空(主键) |
messageId |
int |
20 |
可为空 |
Content |
Varchar |
20 |
可为空 |
userIp |
varchar |
20 |
可为空 |
commentDate |
date |
|
可为空 |
5)重要代码:
①登录验证:
public String execute()throws Exception {
HttpSessionsession=request.getSession();
Connectioncon=null;
try{
StringsRand = (String)session.getAttribute("sRand");
con = dbUtil.getCon();
User user = new User();
user.setUserName(userName);
user.setPassword(password);
User currentUser = userDao.login(con,user);
if (!sRand.equals(imageCode)) {
error = "验证码错误!";
returnERROR;
} elseif (currentUser ==null) {
error = "用户名或者密码错误!";
returnERROR;
} else {
session.setAttribute("currentUser",currentUser);
returnSUCCESS;
}
}catch(Exceptione){
e.printStackTrace();
留言显示:
con =dbUtil.getCon();
inttotal = messageDao.messagesCount(con,message,userName);
StringpageCode = PageUtil.getPagation(
request.getContextPath() +"/mian.action",total,
Integer.parseInt(page),
Integer.parseInt(PropertiesUtil.getValue("pageSize")));
PageBeanpageBean =new PageBean(Integer.parseInt(page),
Integer.parseInt(PropertiesUtil.getValue("pageSize")));
messagesList = messageDao.messagesList(con,message, pageBean,userName);
request.setAttribute("pageCode",pageCode);
request.setAttribute("messagesList",messagesList);
request.setAttribute("navCode",
NavUtil.genNewsManageNavigation("留言显示","所有留言"));
request.setAttribute("mainPage","message/messageList.jsp");
returnSUCCESS;
评论添加:
String messageId=request.getParameter("id");
HttpSessionsession =request.getSession();
session.setAttribute("id",messageId);
Stringcontent=request.getParameter("content");
StringuserIP=request.getRemoteAddr();
Commentcomment=new Comment(Integer.parseInt(messageId),content,userIP);
commentDao.commentAdd(con,comment);
returnSUCCESS;
Ps:由于页数要求,重要的代码不在出示,详细见代码!
三、总结与体会
通过这次实验的撰写,自己对于学过的struts2知识进行回顾,对于struts2页面跳转,监听器,ajax异步跳转,bootstrap3,c标签,s标签的使用有了充分的了解,更重要的事有了项目经验,对自己学的知识进行肯定,体会就是自己学过的东西不要以为自己都掌握了,自己在实践的时候掌握的才是真正的知识,学过的东西反过来复习一下会真正体会到这个东西的真正意义!