收藏 分销(赏)

实现博客管理系统复习课程.docx

上传人:天**** 文档编号:4096714 上传时间:2024-07-29 格式:DOCX 页数:20 大小:409.83KB 下载积分:10 金币
下载 相关 举报
实现博客管理系统复习课程.docx_第1页
第1页 / 共20页
实现博客管理系统复习课程.docx_第2页
第2页 / 共20页


点击查看更多>>
资源描述
此文档收集于网络,如有侵权请联系网站删除 博客管理系统 一.博客管理系统总体设计 系统需求:用户可以通过注册登陆进入博客管理系统发表博文,删除博文,查看博文,编辑博文,对博文评论和查看相册等 系统功能:浏览博文,编辑博文,删除博文,评论博文,用户登陆,用户注册,查看相册。 博客主页面 系统模块:博客主页面,用户注册登陆页面,博文浏览最终页面、发布博文模块、修改博文模块、删除博文模块,评论博文模块,个人信息设置,修改密码,浏览相册模块。 用户注册登陆页面 博文浏览最终页面 发布博文模块 博 客 管 理 系 统 修改博文模块 删除博文模块 评论博文模块 浏览相册 个人信息设置 修改密码 二.系统数据库设计(Mysql) 数据库需求分析:用户通过注册、登录博客主页面来发表博文、浏览博文、评论博文以及查询已经发表的博文。 确定数据库需要的表以及数据对象: 用户数据表:用户主键、用户名、密码 用户详细信息表:用户详细信息主键和外键、真实姓名、性别、年龄、邮件、qq号码、用户头像 博客文章表:文章主键、文章发布者 、文章标题、文章内容、发布日期、点击次数 文章评论表:文章评论主键、外键、评论人、评论内容、评论日期 数据表设计: 四个表,为用户数据表、用户详细信息表、博客文章表和文章评论表。 用户数据表: 列名 数据类型 是否为空 说明 Userid INT 否 用户主键 loginId VARCHAR(50) 否 用户名 loginPwd NVARCHAR(50 否 用户密码 用户详细信息表: 列名 数据类型 是否为空 说明 userid Int 否 用户详细信息主键和外键 trueName VARCHAR(20) 否 真实姓名 gender VARCHAR(20) 否 性别 age int 否 年龄 mail VARCHAR(20) 否 邮箱 Qq VARCHAR(20) 否 Qq号码 headerimg VARCHAR(50) 否 用户头像 博客文章表: 列名 数据类型 是否为空 说明 articleId INT 否 文章主键 authorId INT 否 文章发布者 title VARCHAR(50) 否 文章标题 contents TEXT 否 文章内容 pubDate DATETIME 否 发布日期 clicks INT 否 点击次数 文章评论表: 列名 数据类型 是否为空 说明 commentId INT 否 文章评论主键 articleId INT 否 外键 userid INT 否 评论人 comment TEXT 否 评论内容 commentPubDate DATETIME 否 评论日期 三.系统基本框架: Header.html Maintitle.jsp Addarticle.jsp Articledetail.jsp Articledetail1.jsp Articlelist.jsp Articlemanagerlist.jsp Changepwd.jsp Delarticle.jsp Doaddarticle.jsp Dochangepwd.jsp Doeditarticle.jsp Doreview.jsp Dosetinfo.jsp Editarticle.jsp Message.jsp Otheruserdetail.jsp Photo.jsp Register.jsp Setinfo.jsp Doregister.jsp Intro.jsp Dologin.jsp Login.jsp Loginout.jsp Bloguser.jsp Footer.jsp 四.系统主要代码 1.层叠样式表css 2.用户登录注册系统代码 (1).Login.jsp(用户登录) (2).Register.jsp(用户注册) (3).Dologin.jsp(检测登录是否正确) <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="com.myblog3.biz.UserInfoBiz"%> <%@page import="com.myblog3.entity.UserInfoEntity"%> <% request.setCharacterEncoding("UTF-8"); String loginId = request.getParameter("loginId"); String loginPwd = request.getParameter("loginPwd"); String remember = request.getParameter("rad"); if (loginId.trim().equals("")) { out.print("用户名不能为空!"); } else if (loginPwd.trim().equals("")) { out.print("密码不能为空!"); } else { UserInfoBiz biz = new UserInfoBiz(); UserInfoEntity entity = new UserInfoEntity(); entity.setLoginId(loginId); entity.setLoginPwd(loginPwd); UserInfoEntity temp = biz.loginUserInfo(entity); if (temp == null) { out.print("用户名不存在!请注册后再登录!<br>"); out.print("<a href='index.jsp'>重新登录</a><br>"); out.print("<a href='register.jsp'>注册</a>"); } else { if (!loginPwd.equals(temp.getLoginPwd())) { out.print("密码错误!<br>"); out.print("<a href='index.jsp'>重新登录</a>"); }else if(loginId.equals(temp.getLoginId())&&loginPwd.equals(temp.getLoginPwd())) { if (remember.equals("yes")) { Cookie cookie = new Cookie("curr_userinfo", temp.getLoginId()); cookie.setMaxAge(60 * 30); response.addCookie(cookie);} session.setAttribute("curr_userin", temp); response.sendRedirect(request.getContextPath()+ "/index.jsp");}}}%> (4).Doregister.jsp(检测注册是否正确) <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="com.myblog3.biz.*"%> <%@page import="com.myblog3.entity.*"%> <%@page import="mon.*"%> <% request.setCharacterEncoding("UTF-8"); String loginId=request.getParameter("loginId"); String loginPwd=request.getParameter("loginPwd"); String confirmloginPwd=request.getParameter("confirmloginPwd"); if(loginId.trim().equals("")){ out.print("用户名不能为空!<br><a href='register.jsp'>请重试</a>"); }else if(loginPwd.trim().equals("")){ out.print("用户密码不能为空!<br><a href='register.jsp'>请重试</a>"); }else if(!loginPwd.trim().equals(confirmloginPwd.trim())){ out.print("确认密码和密码输入不一致!<br><a href='register.jsp'>请重试</a>"); }else{ UserInfoBiz biz=new UserInfoBiz(); UserInfoEntity entity=new UserInfoEntity(); entity.setLoginId(loginId); entity.setLoginPwd(loginPwd); AddUserInfoResult result=biz.addUserInfo(entity); switch(result){ case fail: out.print("注册失败!"); out.print("<a href='register.jsp'>重新注册</a>");break; case existsUser: out.print("用户名已被占用!请输入其他用户名<a href=register.jsp>注册<a/>"); break; case success: { out.print("注册成功!<a href='index.jsp'>点击这里进行登录</a><br>"); UserInfoEntity temp1=biz.getMaxUserId(); int userid=temp1.getUserId(); String trueName=temp1.getLoginId(); String gender="男"; String age="0"; String mail=null; String qq=null; UserDetailEntity temp=new UserDetailEntity(); temp.setUserid(userid); temp.setTrueName(trueName); temp.setGender(gender); temp.setAge(Integer.parseInt(age)); temp.setMail(mail); temp.setQq(qq); UserDetailBiz tempbiz=new UserDetailBiz(); AddUserDetailResult result1=tempbiz.addUserDetail(temp); switch(result1){ case successes: out.print("用户详细信息添加成功!<br>"); out.print("<a href='index.jsp'>返回主页</a><br>"); out.print("<a href='setinfo.jsp'>重新添加<a/>");break; case fails: out.print("用户详细信息添加失败!<br>"); out.print("<a href='setinfo.jsp'>重新添加<a/>"); break; case noexistsUser: out.print("用户注册未成功!<br>");break; }}break;}}%> (5).Setinfo.jsp(用户详细信息注册) <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="com.myblog3.entity.UserInfoEntity"%> <%@page import="com.myblog3.dao.UserInfoDao"%> <%@page import="com.myblog3.dao.UserDetailDao"%> <%@page import="com.myblog3.entity.UserDetailEntity"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>用户详细信息注册</title> <link href="CSS/style.css" rel="stylesheet" type="text/css" /> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <%@include file="header.html" %> <%@include file="maintitle.jsp" %> <table width="900" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="680" valign="top"><table width="680" border="0" cellpadding="0" cellspacing="1" bgcolor="#dddddd"> <tr> <td height="350" align="center" bgcolor="#fcfcfc"><table width="500" border="0" cellpadding="0" cellspacing="0"> <tr> <td><table width="500" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="10"><img src="images/topleft.gif" width="10" height="28" /></td> <td width="480" bgcolor="#ddddcc">注册新用户</td> <td width="10"><img src="images/topright.gif" width="10" height="28" /></td> </tr> </table></td></tr> <tr> <td><table width="500" border="0" cellspacing="0" cellpadding="0"> <tr><td width="1" bgcolor="#ddddcc"></td> <td width="498" height="250" align="center"><form id="form2" name="form2" method="post" action="dosetinfo.jsp"> <% UserDetailDao dao2=new UserDetailDao(); UserInfoEntity tempEntity=(UserInfoEntity)session.getAttribute("curr_userin"); if(tempEntity==null){ out.print("您还未登录!或服务器已超时!请先<a href='index.jsp'>登录<a/>"); }else{ UserDetailEntity entity2=dao2.getUserDetailByUserId(tempEntity.getUserId()); %> <table width="250" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="100" height="30" align="right">真实姓名:</td> <td><input name="trueName" type="text" class="inputTextW110H22" value="<%=entity2.getTrueName() %>"/></td </tr> <tr> <td height="30" align="right">性别:</td> <td><label> <input type="radio" name="gender" value="男" <%if(entity2.getGender().equals("男")){ %>checked="checked"<%}%>/> 男 <input type="radio" name="gender" value="女" <%if(entity2.getGender().equals("女")){ %>checked="checked"<%} %>/> 女 </label></td></tr> <tr> <td height="30" align="right">年龄:</td> <td><input name="age" type="text" class="inputTextW110H22" value="<%=entity2.getAge() %>"/></td> </tr> <tr> <td height="30" align="right">Email:</td> <td><input name="mail" type="text" class="inputTextW110H22" value="<%=entity2.getMail() %>"/></td> </tr> <tr><td height="30" align="right">QQ:</td> <td><input name="qq" type="text" class="inputTextW110H22" value="<%=entity2.getQq() %>"/></td></tr> <tr> <td height="30" colspan="2" align="center"><label> <input type="image" name="imageField2" src="images/finish.jpg" /> </label></td> </tr> </table><%} %> </form></td> <td width="1" bgcolor="#ddddcc"> </td> </tr> </table></td> </tr> <tr> <td height="5" bgcolor="#ddddcc"></td> </tr></table></td> </tr></table></td> <td>&nbsp;</td> <td width="200" valign="top"> <%@include file="intro.jsp" %> <%@include file="blogUser.jsp" %> </td></tr></table> <%@include file="footer.jsp" %> </body> </html> (6).Dosetinfo.jsp(检测用户信息修改成功与否) (7).Changepwd.jsp(修改密码) (8).Dochangepwd.jsp(检测修改密码操作是否有效) 3.博客用户代码 (1)Bloguser.jsp 4. Intro.jsp代码(个人资料) 5.主页图片页面代码 (2)Header.html 6.导航栏页面 Maintitle.jsp 7.博文相关页面 (1)Addarticle.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>发表博文</title> <link href="CSS/style.css" rel="stylesheet" type="text/css" /> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --><script type="text/javascript"> function check(){ var articleTitle = document.getElementById("articleTitle").value; var articleContent = document.getElementById("articleContent").value; if(articleTitle==""){ alert("文章标题不能为空"); return false;} if(articleContent.length==0){ alert("文章内容不能为空"); return false;}} </script></head> <body> <%@include file="header.html" %> <%@include file="maintitle.jsp" %> <table width="900" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="680" valign="top"><table width="680" border="0" cellpadding="0" cellspacing="1" bgcolor="#dddddd"> <tr> <td align="center" bgcolor="#fcfcfc"><table width="650" border="0" cellspacing="0" cellpadding="0"> <tr><td height="30" align="left">发表博文</td> </tr><tr> <td height="1" align="left" bgcolor="#dddddd"> </td></tr><tr> <td align="left">&nbsp;</td> </tr><tr> <td height="30" align="left"> <form id="form2" name="form2" method="post" action="doAddarticle.jsp" onsubmit="return check()"> <table width="600" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="100" height="30" align="right">博文标题:</td> <td><input name="articleTitle" id="articleTitle" type="text" class="inputTextW480" /></td> </tr> <tr> <td align="right">博文内容:</td> <td><label> <textarea name="articleContent" id="articleContent" rows="20" class="inputTextW480"></textarea> </label></td> </tr><tr> <td height="30" colspan="2" align="center"><label> <input type="image" name="imageField2" src="images/publish.jpg" /> </label></td> </tr> </table> </form> </td> </tr> </table></td> </tr></table></td> <td>&nbsp;</td> <td width="200" valign="top"> <%@include file="intro.jsp" %> <%@include file="blogUser.jsp" %> </td> </tr> </table> <%@include file="footer.jsp" %> </body> </html> (2).Articledetail.jsp (博文详细信息) <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="com.myblog3.dao.ArticleDao"%> <%@page import="com.myblog3.entity.ArticleEntity"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>博文详细信息</title> <link href="CSS/style.css" rel="stylesheet" type="text/css" /> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <%@include file="header.html" %> <%@include file="maintitle.jsp" %> <table width="900" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="680" valign="top"><table width="680" border="0" cellpadding="0" cellspacing="1" bgcolor="#dddddd"> <tr> <td align="center" bgcolor="#fcfcfc"><table width="650" border="0" cellspacing="0" cellpadding="10"> <tr> <td height="30" align="left"> <% request.setCharacterEncoding("UTF-8"); String articleId=request.getParameter("articleId"); ArticleDao dao=new ArticleDao(); List<ArticleEntity> list=dao.getArticleinfoByArticleid(Integer.parseInt(articleId)); if(list!=null){ for(int i=0;i<list.size();i++){ %> <table width="600" border="0" align="center" cellpadding="5" cellspacing="0"> <tr> <td width="100" height="30" align="right" bgcolor="#EFEFEF">博文标题:</td> <td><%=list.get(i).getTitle() %></td> </tr> <tr> <td align="right" bgcolor="#EFEFEF">博文内容:</td> <td class="content"><%=list.get(i).getContents() %> </td> </tr> <tr> <td height="30" align="right" bgcolor="#EFEFEF">发布日期:</td> <td><%=list.get(i).g
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服