⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 superadmin.java

📁 又一个课程设计 简易 JSP 论坛 功能较简单的那种, 界面上模仿了 Discuz JSP 本来就学的不行, 只是尽量实现了 MVC
💻 JAVA
字号:
package cn.ialvin.bbs.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.ialvin.bbs.bean.Forum;
import cn.ialvin.bbs.bean.Manager;
import cn.ialvin.bbs.bean.User;
import cn.ialvin.bbs.dao.DAOFactory;
import cn.ialvin.bbs.dao.IForumDAO;
import cn.ialvin.bbs.dao.IManagerDAO;
import cn.ialvin.bbs.dao.IUserDAO;
import cn.ialvin.web.PageInfo;
import cn.ialvin.web.Servlet;

public class SuperAdmin extends Servlet {
	private static final long serialVersionUID = 6247466637231840796L;
	public SuperAdmin() { super(); }
	public void destroy() { super.destroy(); }
	
	public void doAction(
			HttpServletRequest request,
			HttpServletResponse response,
			PrintWriter out,
			DAOFactory factory)
			throws ServletException, IOException, SQLException {
		Object obj = request.getSession().getAttribute("usr");
		if (obj == null) {
			response.sendError(404);
			return;
		}
		User usr = (User)obj;
		if (!usr.isAdmin()) {
			response.sendError(404);
			return;
		}
		request.setAttribute("adm", usr);
		this.doService(request, response, out, factory);
	}

	private void doService(
			HttpServletRequest request,
			HttpServletResponse response,
			PrintWriter out,
			DAOFactory factory)
			throws ServletException, IOException, SQLException {
		String action = this.getParameter("action", request);
		if ("cForum".equals(action)) {
			this.createForum(request, response, out, factory);
		} else if ("dForum".equals(action)) {
			this.deleteForum(request, response, out, factory);
		} else if ("sForum".equals(action)) {
			this.saveForum(request, response, out, factory);
		} else if ("usr".equals(action)) {
			this.manageMember(request, response, out, factory);
		} else if ("delUser".equals(action)) {
			this.deleteUser(request, response, out, factory);
		} else if ("setManager".equals(action)) {
			this.setManager(request, response, out, factory);
		} else if ("mgr".equals(action)) {
			this.mgr(request, response, out, factory);
		} else if ("delMGR".equals(action)) {
			this.deleteManager(request, response, out, factory);
		} else {
			this.list(request, response, out, factory);
		}
	}

	// 删除管理员
	private void deleteManager(
			HttpServletRequest request,
			HttpServletResponse response,
			PrintWriter out,
			DAOFactory factory)
			throws ServletException, IOException, SQLException {
		int id;
		try {
			id = this.getIParameter("id", request);
		} catch (Exception e) {
			this.error(response);
			return;
		}
		IManagerDAO md = factory.getManagerDAO();
		Manager mgr = md.getManager(id);
		if (mgr == null) {
			this.error(response);
			return;
		}
		md.deleteManager(id);
		if (!md.isManager(mgr.getUSN())) {
			IUserDAO ud = factory.getUserDAO();
			User u = ud.getUser(mgr.getUSN());
			u.setRole(1);
			ud.updateUser(u);
		}
		this.replace("Index?action=mgr", out);
	}
	
	// 版主管理
	private void mgr(
			HttpServletRequest request,
			HttpServletResponse response,
			PrintWriter out,
			DAOFactory factory)
			throws ServletException, IOException, SQLException {
		IManagerDAO md = factory.getManagerDAO();
		IForumDAO fd = factory.getForumDAO();
		ArrayList<Manager> ms = md.getManagers();
		int size = ms.size();
		for (int i=0; i<size; i++) {
			Manager mgr = ms.get(i);
			Forum forum = fd.getForum(mgr.getForum());
			mgr.setForumName(forum.getName());
		}
		request.setAttribute("ms", ms);
		this.forward("mgr.jsp", request, response);
	}

	// 设置版主
	private void setManager(
			HttpServletRequest request,
			HttpServletResponse response,
			PrintWriter out,
			DAOFactory factory)
			throws ServletException, IOException, SQLException {
		String usn = this.getParameter("usn", request);
		int forumid;
		try {
			forumid = this.getIParameter("forum", request);
		} catch (Exception e) {
			this.error(response);
			return;
		}
		IForumDAO fd = factory.getForumDAO();
		Forum forum = fd.getForum(forumid);
		if (forum == null) {
			this.error(response);
			return;
		}
		IUserDAO ud = factory.getUserDAO();
		User u = ud.getUser(usn);
		if (u == null) {
			this.error(response);
			return;
		}
		IManagerDAO md = factory.getManagerDAO();
		if (md.isManager(usn, forumid)) {
			this.alert("该用户已经是此版块版主!", out);
			this.back(out);
			return;
		}
		Manager mgr = new Manager();
		mgr.setForum(forumid);
		mgr.setUSN(usn);
		if (md.insertManager(mgr) > -1) {
			u.setRole(2);
			ud.updateUser(u);
			this.alert("添加管理员成功!", out);
		} else {
			this.alert("添加管理员失败!", out);
		}
		String ref = this.getParameter("ref", request).trim();
		if (ref.equals("")) {
			ref = "Index?action=usr";
		}
		this.replace(ref, out);
	}

	// 删除用户
	private void deleteUser(
			HttpServletRequest request,
			HttpServletResponse response,
			PrintWriter out,
			DAOFactory factory)
			throws ServletException, IOException, SQLException {
		String usn = this.getParameter("usn", request);
		IUserDAO ud = factory.getUserDAO();
		User u = ud.getUser(usn);
		if (u == null) {
			this.error(response);
			return;
		}
		String ref = this.getParameter("ref", request).trim();
		if ("".equals(ref)) {
			ref = "Index?action=usr";
		}
		ud.deleteUser(usn);
		this.alert("删除成功!", out);
		this.replace(ref, out);
	}

	// 用户管理
	private void manageMember(
			HttpServletRequest request,
			HttpServletResponse response,
			PrintWriter out,
			DAOFactory factory)
			throws ServletException, IOException, SQLException {
		IUserDAO ud = factory.getUserDAO();
		IForumDAO fd = factory.getForumDAO();

		PageInfo page = new PageInfo();
		page.setPageSize(30);
		try {
			page.setCurrentPage(this.getIParameter("page", request));
		} catch (Exception e) {
			page.setCurrentPage(1);
		}
		page.setQueryString("Index?action=usr");
		page.setWeight("个用户");
		ArrayList<User> us = ud.getUsers(page);
		ArrayList<Forum> fs = fd.getForums();

		request.setAttribute("fs", fs);
		request.setAttribute("page", page);
		request.setAttribute("us", us);
		this.forward("/protected/admin/user.jsp", request, response);
	}
	
	// 保存版块修改信息
	private void saveForum(
			HttpServletRequest request,
			HttpServletResponse response,
			PrintWriter out,
			DAOFactory factory)
			throws ServletException, IOException, SQLException {
		int id;
		try {
			id = this.getIParameter("id", request);
		} catch (Exception e) {
			this.error(response);
			return;
		}
		String name = this.getParameter("fn", request);
		String descripted = this.getParameter("fd", request);
		if (name.trim().length()<1 || descripted.trim().length()<1) {
			this.alert("版块名称和版块介绍不能为空!", out);
			this.replace("Index", out);
			return;
		}
		IForumDAO fd = factory.getForumDAO();
		Forum forum = fd.getForum(id);
		if (forum == null) {
			this.error(response);
			return;
		}
		forum.setName(name);
		forum.setDescription(descripted);
		fd.updateForum(forum);
		this.replace("Index", out);
	}

	// 删除版块
	private void deleteForum(
			HttpServletRequest request,
			HttpServletResponse response,
			PrintWriter out,
			DAOFactory factory)
		throws ServletException, IOException, SQLException {
		int id;
		try {
			id = this.getIParameter("id", request);
		} catch (Exception e) {
			this.error(response);
			return;
		}
		IForumDAO fd = factory.getForumDAO();
		boolean res = fd.deleteForum(id);
		if (res) {
			this.alert("删除成功!", out);
		} else {
			this.alert("删除失败!", out);
		}
		this.replace("Index", out);
	}

	// 建立版块
	private void createForum(
			HttpServletRequest request,
			HttpServletResponse response,
			PrintWriter out,
			DAOFactory factory)
			throws ServletException, IOException, SQLException {
		String fn = this.getParameter("fn", request);
		String descripted = this.getParameter("fd", request);
		if (fn.trim().length()<1 || descripted.trim().length()<1) {
			response.sendError(404);
			return;
		}
		Forum forum = new Forum();
		forum.setName(fn);
		forum.setDescription(descripted);
		forum.setTopic(0);
		IForumDAO fd = factory.getForumDAO();
		if (fd.insertForum(forum) < 0) {
			this.alert("添加失败!", out);
		} else {
			this.alert("添加成功!", out);
		}
		this.replace("Index", out);
	}

	// 管理首页
	private void list(
			HttpServletRequest request,
			HttpServletResponse response,
			PrintWriter out,
			DAOFactory factory)
			throws ServletException, IOException, SQLException {
		IForumDAO fd = factory.getForumDAO();
		ArrayList<Forum> forums = fd.getForums();
		request.setAttribute("forums", forums);
		this.forward("/protected/admin/list.jsp", request, response);
	}

	private void error(HttpServletResponse response) throws IOException {
		response.sendError(404, "File Not Found!");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -