易截截图软件、单文件、免安装、纯绿色、仅160KB

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());
取出当前页的文件名,再将此文件名与该用户的权限字符做比较,如果该文件名在权限字符中可以找到,则表明该用户拥有此页面操作的权限。


相关文档:

JSP防SQL注入攻击

第一种采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setString方法传值即可:
String sql= "select * from users where username=? and password=?;
PreparedStatement preState = conn.prepareStatement(sql);
preState.setString(1, userName);
preState.setString(2, password);
ResultSet rs = ......

jsp或用js获得服务器的IP地址

js好像本身不能获取服务器的IP,但JSP可以,所以用个隐藏域,js就可以借鸡下蛋了。
jsp代码如下:
<input   type="hidden" id="serviceIp"   name="serviceIp"   value="<%=InetAddress.getLocalHost().getHostAddress()%>">
js代码如下:
function getServiceIP(){
var ser ......

JSP及语法概要

概述
  Java Server Pages(JSP)使得我们能够分离页面的静态HTML和动态部分。HTML可以用任何通常使用的Web制作工具编写,编写方式也和原来的一样;动态部分的代码放入特殊标记之内,大部分以“<%”开始,以“%>”结束。
  例如,下面是一个JSP页面的片断,如果我们用http://host/OrderConfirm ......

JSP动作

JSP动作利用XML语法格式的标记来控制Servlet引擎的行为。利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。
JSP动作包括:
jsp:include:在页面被请求的时候引入一个文件。
jsp:useBean:寻找或者实例化一个JavaBean。
jsp:setProperty:设置JavaBean的属性。 ......

include和jsp:include

index.jsp:
<html>
<head>
<title>The News</title>
</head>
<body>
<h1> Latest News</h1>
<table>
<tr>
<td><h3><%@include file="items/news1.jsp" %></h3></td>
</tr>
<tr>
<td> ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号