JSP权限控制
感觉文章很好就转一下,首先感谢这位仁兄!http://www.blogjava.net/wake/archive/2006/04/28/43843.html
近几天不是很忙,就想看看关于 WEB 方式 (Jsp) 后台权限控制的设计实现问题 , 在 Google 搜了一下,一大堆的东西,当看到头大的时候决定自己先试着做一个简单例子。
先推荐大家有时间看一下关于 RBAC 即角色访问控制 (Role Based Access Control) 的相关文章,虽然已经是个老话题了 , 但如果要在一个大的项目中实现权限控制的话,最好还是按照这些文章中的设计去逐步实现。
以下的设计只是一个简单的控制,可以应用在一些小成本的项目中。也可能不是最好的解决方法,但旨在与大家交流及共享。各位见笑,闲话少续,言归正传。
我的设计思路是这样的:
1, 管理员用户表中有个字段专门记录每个用户所拥有的权限。
2, 权限和文件名对应,比如有个权限的名称叫新闻编辑,而与此编辑权限对应的文件有: News_add.jsp,News_del.jsp,News.action 等,他们之间是一对多的关系。如下图:
如果还不明白,请继续往下看:我的想法是这样的 … 比如 a 用户如果有新闻编辑的权限,那么在 a 用户记录权限的字段里就应该记录 New_add.jsp,News_del.jsp,News.acion 这些值。
3 ,那么具体怎么对资源进行控制呢?首先在用户登陆后,将用户的所以信息以对象的形式放入 Session 中。如将用户对象 auser 放入到 session 中,则可用类似
AdminUser adminuser = (AdminUser) session.getAttribute("auser")
adminuser.getUserPopedom()
的方法将该用户所拥有的权限字符取出来,我们这里取出来的字符会是 New_add.jsp,News_del.jsp,News.acion 。那么在需要做控制的页面首先利用
String url = servletRequest.getRequestURI();
url = url.substring(url.lastIndexOf("/") + 1, url.length());
取出当前页的文件名,再将此文件名与该用户的权限字符做比较,如果该文件名在权限字符中可以找到,则表明该用户拥有此页面操作的权限。
相关文档:
上网看了好多,就这一篇解决了我的问题,现转,我的项目用的是MVC架构,有统一的控制器,转向不同的Action,上网看了好多,大部分是说加入request.setCharacterEncoding("utf-8");但是经过我的试验,这只有在利用JSP处理表单传输数据时才可用,在我的东西中无法解决,后来发现还是用FilterChain好,呵呵,重点还是在request ......
关于JSP中org.apache.jasper.JasperException:
This absolute uri http://java.sun.com/jsp/jstl/core ) cannot be resolved in either web.xml or the jar files deployed with this application
从网上搜了一下,相同的说法是:一个就是JSTL的版本问题(1.0与1.1),是否不一致 ......
自动转向,也叫自动重定向。自动跳转,指当访问用户登陆到某网站时,自动将用户转向其它网页地址的一种技术。转向的网页地址可以是网站内的其它网页,也可以是其它网站。通常情况下,浏览器会收到一个网页,该页面含有自动加载一其它网页的代码。该页面有可能在服务器端被转换,这样的话,浏览器只收到一个页面,而自动转 ......
下面的jsp和数据库连接大全,请参考
一、jsp连接Oracle8/8i/9i数据库(用thin模式)
testoracle.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
Stri ......
① out - javax.servlet.jsp.jspWriter
out对象用于把结果输出到网页上。
方法:
1. void clear() ;
清除输出缓冲区的内容,但是不输出到客户端。
2. void clearBuffer() ;
清除输出缓冲区的内容,并输出到客户端。
3. void close() ;
关闭输出流,清除所有内 ......