自己动手做论坛(三)

编程爱好者

编者按:前两期,我们介绍了论坛的功能分析、数据库设计、数据库连接程序模块、外部和用户接口的程序设计。最后,我们将介绍论坛的后台管理和架设安装部分。这样,大家对论坛编程就会有一个比较全面的认识。示例中的所有代码可在http://download.cpcw.com/下载。

所有的论坛都要安装架设才能正常使用,所有的论坛都有管理员和后台管理程序模块。本期,我们就着重介绍这两部分知识,使大家对论坛开发有一个全面的认识。

一、后台管理程序的原理和界面

论坛的后台管理需要登录者具备一定的权限,我们将所有的后台管理员都放置在admin表中,登录验证通过该表进行验证,方法类同于普通用户的登录验证,这里不再赘述。登录后的界面如图1所示。

39-f19-1.jpg
图1

我们的后台用户都可以对系统进行哪些管理呢?基本的应该有对版块、版面的添加、删除和修改操作,对用户信息的删除和修改操作,当然一个论坛光有这些功能是远远不够的,读者朋友可以按照前面所讲述的方法来添加自己需要的功能!版块与版面是从属关系,版面包含于版块中,添加版面时要设置它所属的版块ID;删除版块时,要删除版块中所有的版面。我们的论坛设置界面如图2所示。

39-f19-2.jpg
图2

点击图的左上角的“添加版块”和“添加版面”链接,分别出现如图3和图4所示的界面。

39-f19-4.jpg
图3
39-f19-3.jpg
图4

二、管理程序的实现代码

限于篇幅,我们只重点讲解添加版块和添加版面两部分的实现代码,其他功能相对较简单,大家可以参看下载的源程序。添加版块对应文件为bk_insert.jsp,添加版面对应文件为bm_insert.jsp。

1.添加版块

添加版块实际上属于数据库添加记录的操作,要重点把握参数传递,得到正确的版块编号和版块信息参数。

<jsp:useBean id="one" class="bbs.DbC

onnect" scope="session" />

<%

//得到传递过来的版块编号

String xbk_id=request.getParameter("bk_id");

//得到传递过来的版块信息

String bk_info=request.getParameter("bk_info");

int bk_id=Integer.parseInt(xbk_id);

//查询数据库中是否已经存在此版块编号

String bk_sql_select="select * from bbs_bk where bk_id="+bk_id;

//将数据插入到数据库中

String bk_sql_insert="insert into bbs_bk values("+bk_id+",'"+bk_info+"')";

try

{

ResultSet rs=one.getRs(bk_sql_select);

if(rs.next())

{

out.println("<script>");

//如果此版块编号已经存在,弹出提示

out.println("alert('版块编号"+bk_id+"已存在');");

//页面转向insertbk.jsp

out.println("location='insertbk.jsp?bk_info="+bk_info+"';");

//表单的焦点在bk_id文本框中

out.println("form1.bk_id.focus()");

out.println("</script>");

rs.close();

}< br>

else

{

one.UpdateRecord(bk_sql_insert);

one.close();

session.setAttribute("admin","123");

//重定向到bbs_set.jsp中

response.sendRedirect("bbs_set.jsp");

}

}

catch(Exception e)

{

out.print(e);

}

%>

2.添加版面

添加版面实际上也属于简单的数据库插入记录操作,重点要把握好记录应该插入的位置即可。

//使用javaBean

<jsp:useBean id="one" class="bbs.DbC

onnect" scope="session" />

<%

//得到bm_id的值

String xbm_id=request.getParameter("bm_id");

//得到bm_name的值

String bm_name=request.getParameter("bm_name");

//得到bm_info的值

String bm_info=request.getParameter("bm_info");

//得到bm_jpg的值

String bm_jpg=request.getParameter("bm_jpg");

//得到bk_id的值

String xbk_id=request.getParameter("bk_id");

int bm_id=Integer.parseInt(xbm_id);

int bk_id=Integer.parseInt(xbk_id);

String bm_sql_select="select * from bbs_bm where bm_id="+bm_id;

String bm_sql_insert="insert into bbs_bm values("+bm_id+",'"+bm_name+"','"+bm_info+"','"+bm_jpg+"',"+bk_id+")";

try

{

ResultSet rs=one.getRs(bm_sql_select);

//检查是否存在此版面编号

if(rs.next())

{

out.println("<script>");

out.println("alert('版面编号"+bm_id+"已存在');");

out.println("location='insertbk.jsp?bm_info="+bm_info+"';");

out.println("form1.bm_id.focus()");

out.println("</script>");

rs.close();

}

//如果不存在此版面编号,则将所得到的数据插入到数据库中

else

{

one.UpdateRecord(bm_sql_insert);

one.close();

session.setAttribute("admin","123");

//重定向页面到bbs_set.jsp页面

response.sendRedirect("bbs_set.jsp");

}

}

catch(Exception e)

{

out.print(e);

}

%>

3.用户的删除、修改

修改用户资料操作上期我们已经介绍过了,而删除用户的操作类似于修改操作,所不同的是实现的sql语句不同。但我们设计程序时,希望管理员在删除用户前能够得到提示并确认操作,防止误删用户资料。程序界面如图5所示,代码很简单,这里就不赘述了。

39-f19-5.jpg
图5

三、论坛的部署、安装和运行

基于JSP的论坛安装配置很简单。本例中,我们的具体步骤如下:

●首先修改resion的resion.conf文件,将其中的web-app项指向本系统所在目录,启动resion;

●打开IE浏览器,在地址栏输入http://127.0.0.1:8080 (具体的端口取决于resion的具体配置),即可打开本论坛系统首页(如图6所示)。

39-f19-6.jpg
图6

到此,大家都应该能写一个属于自己的论坛了,通过对此系统的学习,相信大家会在以后的数据库项目开发中得心应手。

编后:基本的论坛程序我们做完了,但是,要想吸引更多的人使用论坛。特色功能必不可少,如自定义头像、论坛用户间互发短消息……限于篇幅,这些问题我们会在以后继续探讨,也欢迎对此有研究的读者来信或投稿。