java+mysql+servlet论坛网站BBS
管理员子系统功能划分
管理员子系统完成本论坛各种信息的管理与维护的功能,管理员子系统包括的主要功能模块有权限管理、发帖、回帖、修改个人用户信息、发帖状态设置。管理员子系统功能模块图如图4-1。
图 4-1 管理员子系统模块
4.2.2 用户子系统功能划分
用户子系统注册、修改个人用户信息,发帖,回帖。用户工子系统如图4-2。
图 4-2 用户子系统模块
4.3.1 管理员子系统功能描述
管理员子系统负责整个系统的管理与维护的操作。
1.权限管理
完成注册用户信息的超级用户权限设置、允许访问论坛、删除注册用户信息。
2.发帖
管理员发布新的帖子信息。可以上传文件。
3.回帖
管理员回复发帖的信息。
4.删帖
管理员可以删除帖子的信息。
5.发帖状态设置
管理员对发布的帖子信息设置是否置顶、隐藏、删除等管理。
4.3.2 用户子系统功能描述
用户子系统,主要完成注册、发帖、回帖、个人信息的修改的操作。
1.个人用户信息修改
用户修改个人的基本信息。
2.注册
用户注册成为论坛的用户。
3.发帖
登录系统的用户发帖,可以上传文件。
4.回帖
登录系统的用户回复发帖信息。
图5-3 系统登录界面
5.3.3 管理员子系统主页面
在管理员主页面中主要提供了修改个人用户信息、权限管理、发帖等功能。磁盘文件为index.do,模块的设计如图5-4所示:
图5-4管理员子系统主页面
图5-5 权限管理模块页面
图5-6 回帖管理模块
5.3.6 个人信息修改管理模块
管理员修改个人的信息。对应的页面文件为zhuce.do,对应的页面设计如图5-7所示:
图5-7个人信息修改管理页面
图5-8 发帖信息设置页面
5.4 用户子系统的实施
5.4.1注册页面
普通用户注册成为论坛的用户。输入用户的用户名、昵称、密码、备注等信息。页面对应的磁盘文件为zhuce.do,主页面设计如图5-9所示:
图5-9注册页面
5.4.2 修改个人信息模块
登录系统的用户查看修改个人的基本信息。对应的磁盘文件为zhuce.do,页面设计如图5-10所示:
图5-10修改个人信息页面
5.4.3 发帖管理模块
管理员发布新帖,对应的磁盘文件为xintie.do?upflag=0,页面的设计如图5-11所示:
图5-11 发帖管理模块页面
5.4.4 回帖模块
用户回复发帖信息。对应的磁盘文件为luntanxiangxi.do?bbsId=,页面设计如图5-12所示:
图5-12回帖模块页面
package com.action.support;
import java.util.List;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.springframework.util.Assert;
import com.zhangmin.base.entity.UserRole;
import com.zhangmin.center.entity.UserInfo;
import com.zhangmin.constant.Global;
import com.zhangmin.constant.Stat;
import net.sf.json.JSONArray;
/**
* @ClassName: BaseAction1
* @Description: TODO(描述)
* @author 张敏
* @date 2015-2-3 下午03:29:30
*/
public class BaseController{
protected HttpServletRequest request;
protected HttpServletResponse response;
protected HttpSession session;
protected JSONArray result;
protected String messageCode="01";
public JSONArray getResult() {
return result;
}
public void setResult(JSONArray result) {
this.result = result;
}
public void setServletRequest(HttpServletRequest req) {
this.request = req;
}
public void setServletResponse(HttpServletResponse res) {
this.response = res;
}
public HttpServletRequest getRequest() {
return request;
}
public void setRequest(HttpServletRequest request) {
this.request = request;
}
public HttpServletResponse getResponse() {
return response;
}
public void setResponse(HttpServletResponse response) {
this.response = response;
}
/**
* @return the session
*/
public HttpSession getSession() {
return session;
}
/**
* @param session the session to set
*/
public void setSession(HttpSession session) {
this.session = session;
}
/**
* @return the messageCode
*/
public String getMessageCode() {
return messageCode;
}
/**
* @param messageCode the messageCode to set
*/
public void setMessageCode(String messageCode) {
this.messageCode = messageCode;
}
/**
* 从session中取得用户pageSize数据;
* @param request
* @return 如果session中不存在,则取出默认值;
*/
protected int getCookiesPageSize(HttpServletRequest request){
int pageSize=Global.DEFAULT_PAGE_SIZE;
if(!StringUtils.isEmpty( getCookiesValue("pageSize",request))){
pageSize= Integer.parseInt(getCookiesValue("pageSize",request));
}
return pageSize;
}
/**
* 从cookies 上取相应的值,如果找不到返回''
* @param key
* @param request
* @return
*/
protected String getCookiesValue(String key,HttpServletRequest request){
String keyval = "";
Cookie cookies[] = request.getCookies(); // 将适用目录下所有Cookie读入并存入cookies数组中
Cookie sCookie = null;
String sname = null;
if (cookies == null) // 如果没有任何cookie
{
} else {
for (int i = 0; i < cookies.length; i++) // 循环列出所有可用的Cookie
{
sCookie = cookies[i];
sname = sCookie.getName();
if (sname.equals(key)) {
keyval = sCookie.getValue();
}
}
}
return keyval;
}
/**
* 功能:写cookies到客户机
* @param key
* @param request
*/
protected void setCookiesValue(String key,String value,HttpServletRequest request){
String keyval = "";
Cookie cookies[] = request.getCookies(); // 将适用目录下所有Cookie读入并存入cookies数组中
Cookie sCookie = null;
String sname = null;
if (cookies == null) // 如果没有任何cookie
{
} else {
for (int i = 0; i < cookies.length; i++) // 循环列出所有可用的Cookie
{
sCookie = cookies[i];
sname = sCookie.getName();
if (sname.equals(key)) {
keyval = sCookie.getValue();
}
}
}
}
/**
* 向session设置值
* @param key
* @param value
* void
*
*/
protected void setSessionValue(String key,String value,HttpServletRequest request){
request.getSession().setAttribute(key, value);
}
/**
* 向session设置值
* @param key
* @param value
* @param request
*/
protected void setSessionObj(String key,Object value,HttpServletRequest request){
request.getSession().setAttribute(key, value);
}
/**
* 获取session中的参数值
* @param key
* @return
* String
*
*/
protected String getSessionValue(String key,HttpServletRequest request){
return (String)request.getSession().getAttribute(key);
}
/**
* 功能:查看当前登录用户信息
* @param request
* @return 返回UserInfo对象
*/
protected UserInfo getSessionUser(HttpServletRequest request) {
return (UserInfo) request.getSession().getAttribute(
Global.USER_INFO);
}
/**
* 功能:查看当前访问菜单
* @param request
* @return 返回BiUserInfo对象
*/
protected List<UserRole> getSessionBiUserRoleList(HttpServletRequest request) {
return (List<UserRole>) request.getSession().getAttribute(
Global.USER_ROLE_LIST);
}
/**
* 功能:查看当前访问菜单
* @param request
* @return 返回BiUserInfo对象
*/
protected UserRole getSessionBiUserRole(HttpServletRequest request) {
return (UserRole) request.getSession().getAttribute(
Global.USER_ROLE);
}
/**
* 功能:查看当前访问菜单
* @param request
* @return 返回BiUserInfo对象
*/
protected UserInfo getSessionBiMenu(HttpServletRequest request) {
return (UserInfo) request.getSession().getAttribute(
Global.USER_INFO);
}
/**
* 保存用户对象到Session中
* @param request
* @param user
*/
protected void setSessionUser(HttpServletRequest request,UserInfo user) {
request.getSession().setAttribute(Global.USER_INFO,
user);
}
/**
* 获取基于应用程序的url绝对路径
*
* @param request
* @param url 以"/"打头的URL地址
* @return 基于应用程序的url绝对路径
*/
public final String getAppbaseUrl(HttpServletRequest request, String url) {
Assert.hasLength(url, "url不能为空");
Assert.isTrue(url.startsWith("/"), "必须以/打头");
return request.getContextPath() + url;
}
public void setSessionListUrl(HttpServletRequest request){
//把路径信息写入到session
String uri = request.getServletPath().toString();
String queryString = request.getQueryString();
String queryUrl = (uri + (null != queryString ? ("?" + queryString): ""));
Stat urlStat=(Stat)request.getSession().getAttribute("urlStat");
if(null!=urlStat){
urlStat.push(queryUrl);
}
else{
urlStat=new Stat();
urlStat.push(queryUrl);
}
request.getSession().setAttribute("urlStat", urlStat);
}
public Stat getUrlStat(HttpServletRequest request){
return (Stat)request.getSession().getAttribute("urlStat");
}
/**
* 获取用户请求地址及参数
* @param request
* @return
*/
public String getSessionListUrl(HttpServletRequest request){
String url="/main/index.do";
Stat urlStat=(Stat)request.getSession().getAttribute("urlStat");
if(null!=urlStat){
Object urlObj=urlStat.pop();
if(null!=urlObj){
url=urlObj.toString();
}
}
return url;
}
}