📄 superadmin.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 + -