JSP课程
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
报告
项目名称:**学习BBS论坛设计
姓 名
惠林
班 级
350911
学 号
48
2011年7月4日
一、 BBS简介
BBS的英文全称是:Bulletin Board System,译为“电子公告板”。BBS最早是用来公布股市价格等类信息的,一直到互联网与个人计算机普及后广泛流行于网络。目前,通过BBS系统开发出各种论坛、网上社区、交友中心等信息平台。
电子公告板BBS在国内一般称作网络论坛,早期的BBS与一般街头和校园内的公告板性质相同,只不过是通过电脑来传播或获得消息而已。一直到个人计算机开始普及之后,有些人尝试将苹果计算机上的BBS转移到个人计算机上,BBS才开始渐渐普及开来。近些年来,由于爱好者们的努力,BBS的功能得到了很大的扩充。
目前,通过BBS系统可随时取得国际最新的软件及信息,也可以通过BBS系统来和别人讨论计算机软件、硬件、Internet、多媒体、程序设计以及医学等等各种有趣的话题,更可以利用BBS系统来刊登一些“征友”、“廉价转让”及“公司产品”等启事,而且这个园地就在你我的身旁。只要您拥有1台计算机、1只调制解调器和1条电话线,就能够进入这个“超时代”的领域,进而去享用它无比的威力!
二、 **学习BBS论坛功能
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
论坛系统应该能够在用户通过帐户密码验证登录论坛服务系统后,判断用户级别识别四类不同权限级别的用户。
第一类是游客,拥有浏览文章,查询注册用户个体最基本信息的权限;
第二类是一般用户,能够在论坛讨论区发表/浏览/回复主题,管理个人信息等;
第三类是管理员,能够对相应主题进行删除/精华,对回复的帖子进行删除,封锁ID以及解除对一般用户的封锁;
第四类是主管理员,拥有最高权限,能够在管理员的权限的基础上增加:管理员权限更改。
三、 ***BBS前台的详细设计
用户注册界面
BBS前台用户的登陆
关于前台的登录
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
String username=request.getParameter("username");
String pass=request.getParameter("password");
System.out.println("aaaaaaa"+username+" "+pass);
User u=UserDao.setUserInfo(username, pass);
if(u!=null){
request.getSession().setAttribute("user", u);
request.getRequestDispatcher("MPart").forward(request, response);
}else{
request.getRequestDispatcher("Login.jsp").forward(request, response);
}
out.flush();
out.close();
}
BBS主板块界面
关于代码
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
Vector
partdata=PDao.sqlPartAll();
Vector vcomment=new Vector();
for(int i=0;i12){
String x=title.substring(0,12);
x=x+"...";
c.setName(x);
}
vcomment.addElement(c);
}
}catch(Exception e){
e.toString();
}
}
request.setAttribute("lastcomments", vcomment);//最后的回贴
request.setAttribute("PartData", partdata);
request.getRequestDispatcher("main.jsp").forward(request, response);
BBS子板块界面
BBS发贴界面
关于代码
request.setCharacterEncoding("gb2312");//修改 request编码方式
String type=request.getParameter("gototype");//通过标记判断跳转而来的页面
int id =Integer.parseInt(request.getParameter("partid"));//获取版块id
String title=request.getParameter("title");
String text=request.getParameter("FCKBack");
if(type.equals("0")){//如果为0则表示从comment.jsp跳转而来,要判断是否合法
User u=(User)request.getSession().getAttribute("user");
if(u==null){//未登录则跳转至登陆页面
response.sendRedirect("Login.jsp");
}else{//登录用户跳转至发帖页面
request.setAttribute("partid",id);
request.getRequestDispatcher("AddComment.jsp").forward(request,response);
}
}else{// 表示从AddComment.jsp跳转而来
Date d=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time=sdf.format(d);//格式化日期
User u=(User)request.getSession().getAttribute("user");
int uid=u.getId();//用户id
DBConnect db=new DBConnect();
try{
String sql="insert into bbs_comment values('"+title+"','"+text+"',"+uid+",'"+time+"','"+id+"',0,1)";//编写sql语句
int i=db.executeUpdate(sql);
if(i>0){//如果大于0则表示插入数据库成功
request.getRequestDispatcher("CommentServlet?partid="+id).forward( request, response);
}
}catch(Exception e){
e.printStackTrace(); }
request.setCharacterEncoding("gb2312");//修改 request编码方式
String type=request.getParameter("gototype");//通过标记判断跳转而来的页面
int id =Integer.parseInt(request.getParameter("partid"));//获取版块id
String title=request.getParameter("title");
String text=request.getParameter("FCKBack");
if(type.equals("0")){//如果为0则表示从comment.jsp跳转而来,要判断是否合法
User u=(User)request.getSession().getAttribute("user");
if(u==null){//未登录则跳转至登陆页面
response.sendRedirect("Login.jsp");
}else{//登录用户跳转至发帖页面
request.setAttribute("partid",id);
request.getRequestDispatcher("AddComment.jsp").forward(request,response);
}
}else{// 表示从AddComment.jsp跳转而来
Date d=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time=sdf.format(d);//格式化日期
User u=(User)request.getSession().getAttribute("user");
int uid=u.getId();//用户id
DBConnect db=new DBConnect();
try{
String sql="insert into bbs_comment values('"+title+"','"+text+"',"+uid+",'"+time+"','"+id+"',0,1)";//编写sql语句
int i=db.executeUpdate(sql);
if(i>0){//如果大于0则表示插入数据库成功
request.getRequestDispatcher("CommentServlet?partid="+id).forward( request, response);
}
}catch(Exception e){
e.printStackTrace();
}
BBS用户注册界面
四、 ***BBS后台的详细设计
BBS后台管理系统
request.setCharacterEncoding("gb2312");//修改 request编码方式
String type=request.getParameter("gototype");//通过标记判断跳转而来的页面
int id =Integer.parseInt(request.getParameter("partid"));//获取版块id
String title=request.getParameter("title");
String text=request.getParameter("FCKBack");
if(type.equals("0")){//如果为0则表示从comment.jsp跳转而来,要判断是否合法
User u=(User)request.getSession().getAttribute("user");
if(u==null){//未登录则跳转至登陆页面
response.sendRedirect("Login.jsp");
}else{//登录用户跳转至发帖页面
request.setAttribute("partid",id);
request.getRequestDispatcher("AddComment.jsp").forward(request,response);
}
}else{// 表示从AddComment.jsp跳转而来
Date d=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time=sdf.format(d);//格式化日期
User u=(User)request.getSession().getAttribute("user");
int uid=u.getId();//用户id
DBConnect db=new DBConnect();
try{
String sql="insert into bbs_comment values('"+title+"','"+text+"',"+uid+",'"+time+"','"+id+"',0,1)";//编写sql语句
int i=db.executeUpdate(sql);
if(i>0){//如果大于0则表示插入数据库成功
request.getRequestDispatcher("CommentServlet?partid="+id).forward( request, response);
}
}catch(Exception e){
e.printStackTrace();
}
BBS后台添加板块
关于代码
response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("gb2312");
String type=request.getParameter("type");
String mpName=request.getParameter("mpName");
System.out.println("mpName:"+mpName);
if(type!=null){
if(type.equals("0")){
DBConnect db=new DBConnect();
String time=CommonUtil.getTime(new Date());
int i = 0;
try {
i = db.executeUpdate("insert into bbs_part values('"+mpName+"','"+time+"',1,0,null)");
} catch (Exception e) {
e.printStackTrace();
}
if(i>0){
request.setAttribute("message","主版块添加成功-("+mpName+")");
}
}else if(type.equals("1")){//添加子版块
String miniPartName=request.getParameter("minipName");
String mpartid=request.getParameter("mpSelect");
DBConnect db=new DBConnect();
String time=CommonUtil.getTime(new Date());
int i = 0;
try {
i = db.executeUpdate("insert into bbs_part values('"+miniPartName+"','"+time+"',1,"+mpartid+",null)");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(i>0){
request.setAttribute("message","子版块添加成功-("+miniPartName+")");
}
}
}
Vector partdata=PDao.sqlPartAll();
request.setAttribute("mainparts", partdata);
request.getRequestDispatcher("AddPart.jsp").forward(request, response);
BBS后台修改板块
关于代码
request.setCharacterEncoding("gb2312");
//主版块加入request范围
String type = request.getParameter("type");
String partid = request.getParameter("partid");
System.out.println("partid"+partid);
if(type != null){
DBConnect db = new DBConnect();
if(type.equals("0")){
String newmpname = request.getParameter("newMPName");//获取主版块新名称
String mpid = request.getParameter("mpmodifyselect");
try {
db.executeUpdate("update bbs_part set name = '"+newmpname+"' where id="+mpid);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else if(type.equals("1")){
String newsonname = request.getParameter("newSonName");//获取子版块新名称
String sonid = request.getParameter("sonpartselect");
try {
db.executeUpdate("update bbs_part set name = '"+newsonname+"' where id="+sonid);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
if(partid != null){
Vector sonparts = PDao.sqlPart(Integer.parseInt(partid));
request.setAttribute("partid", partid);//将主版块id放置进request内
request.setAttribute("sonparts", sonparts);
}
Vector partdata=PDao.sqlPartAll();
request.setAttribute("mainparts", partdata);
request.getRequestDispatcher("ModifyPart.jsp").forward(request, response);
BBS后台删除板块
关于代码
//主版块加入request范围
String type = request.getParameter("type");
String partida = request.getParameter("partida");
if(type != null){
DBConnect db = new DBConnect();
if(type.equals("0")){
String mpid = request.getParameter("mpdeleteselect");
try {
db.executeUpdate("update bbs_part set status = 0 where id="+mpid);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else if(type.equals("1")){
String sonid = request.getParameter("sonpartselect");
try {
db.executeUpdate("update bbs_part set status = 0 where id="+sonid);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
if(partida != null){
Vector sonparts = PDao.sqlPart(Integer.parseInt(partida));
request.setAttribute("partid", partida);//将主版块id放置进request内
request.setAttribute("sonparts", sonparts);
}
Vector partdata=PDao.sqlPartAll();
request.setAttribute("mainparts", partdata);
request.getRequestDispatcher("DeletPart.jsp").forward(request, response); }
五、 实训小结
经过在这两个星期的开发过程中,开始是搜集资料。自己通过上网查资料等方式查阅了很多的资料。同时也看过JSP实训报告指导
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
,并且通过2周的实践,和同组人员的合作,终于完成了BBS论坛的开发。
而且很有成就感,虽然自己的开发过程中遇到很多问题,不过在自己不断询问下,逐渐理解,感觉自己的工作结果还是蛮有成就感的。、
此BBS论坛的目的是提供一个供用户交流的平台,为广大用户提供交流经验、探讨问题的社区。因此,本论坛系统最基本的功能首先是发表主题,其次是其他人员根据主题发表自己的看法。此外,为了记录主题的发表者和主题的回复者信息,系统还提供用户注册和登录的功能。只有注册的用户登录后才能够发表和回复主题,浏览者(游客)只能浏览主题信息。它具备以下功能:显示各论坛类别及版面、查看版面下所有根帖、查看精华帖子、查看自己发表的帖子、搜索帖子、查看根帖内容、用户注册、用户登录、发表帖子、回复帖子、进入后台、论坛类别管理、版面管理、用户管理和用户注册。
开发过程遇到一些棘手的问题是因为自己没有做好需求分析,现在开发出来的系统还存在部分不足的地方。系统版面设计不够人性化,系统对数据库的操作还不够稳定,程序代码中还存在一些Bug,这些问题在以后的开发过程中还需要逐步完善。程序的代码还有待完善,基本功能够很完善,最基本的功能是发表主题以及发帖都功能都能实现,感觉都还不错。