简单的权限管理
原理:运用session 保存一个对象,在该对象中添加一个字段用来控制权限
首先是对象的属性跟数据库字段对应,之后的配置也不做详细的解释
首先是一个登陆的页面,
这里呢我们在数据库添加三条信息
我们通过管理员的部门(DAPART字段)来限制管理员的操作
当登陆成功之后,我们直接在Servlet设置session并进行传递,代码如下
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //转码 request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html"); String loginname = request.getParameter("loginname") ; String password = request.getParameter("password") ; String ssex = request.getParameter("ssex") ; System.out.println("l = "+loginname +", p = " + password + ", s = " + ssex ); if(password != null && loginname != null && ! "".equals(password) && ! "".equals(loginname)) { if("管理员".equals(ssex)) { HAdmin ha = new LoginDAO().loginAdmin(loginname, password) ; if(ha != null) { response.getWriter().write("登陆成功"); HttpSession hs = request.getSession() ; hs.setAttribute("admin", ha); System.out.println(ha); response.sendRedirect("ceshi.jsp"); } else { response.getWriter().write("账号或密码输入有误"); } } else { if(new LoginDAO().loginUser(loginname, password) != null) { response.getWriter().write("登陆成功"); } else { response.getWriter().write("账号或密码输入有误"); } } } else { response.getWriter().write("账号、密码不能为空"); } }
上面我们将登陆的对象存进了session中,然后我们在jsp页面进行接收,并通过获取对象的depart
值,来进行权限的控制,代码如下
<%@page import="com.hanqi.entity.HAdmin"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>测试权限界面</title> </head> <body> 测试界面<br> <% HAdmin ha = (HAdmin)session.getAttribute("admin") ; session.setAttribute("admin", ha) ; if(ha.getDepart().equals("2")) { %> 天青色等烟雨<br> 而我在等你 <%} %> <% if(ha.getDepart().equals("3")) { %> 让我们红尘作伴活的潇潇洒洒 <%} %> </body> </html>
这是我们通过上面添加的三条记录来测试 ,当登陆的管理员部门不一样时,网页上显示的内容也是不一样的,这样我们就实现了简单的权限管理