采用MVC模式,权限放在数据库中,调有底层的时候如果没有权限,则在Controller中捕获异常,重定向道出错页面给可以!并且,这种方式可以单独抽象出来权限控制模块,有利于复用!可以设计一个User对象!
在大型的项目中,这个方法很有效!
在大型的项目中,这个方法很有效!
解决方案 »
- 没有人会jsp网站在线录制视频和保存时直接上传到服务器吗??????????????????
- 中文乱码,烦烦烦
- jsp转发到servlet怎么servlet执行是空白?jbuider 2005
- 谁知道哪错了啊~~高手指教~!
- 用jsp如何把图象打入到access数据库中
- iReport工具使用问题
- jsp做上傳
- 帮帮忙,jsp聊天室问题
- 大家看看<%@include file="copyright.htm"%>
- jdbc连接数据库插入大量数据,如何提升性能?
- 在SQLSERVER2000上用IMAGE类型上传图片之我见!!!请批评指正!!!!
- 有谁用JSP或STRUTS做过关于注册用户登录的东西的,或者相关的例子也可,给小弟看看,谢谢
用servlet作为controller,权限存放在数据库里,
建立user对象,页面提交到servlet,进行权限判断,然后重定向。
这样,每个功能各自独立,比较容易做。
很多地方不明白,
controller是什么东西?
偶还是第一次听说
怎么用呀?
就是Servlet如何解决数据库中的权限与JSP页面间的关系。还有数据库中的权限该如何表示。我现在用一个Varchar字段,用数字代表权限,用分号分割多个权限,例如3;5;9等。请问有无更好方法!
很好用的
jive里面的方法也可以参考!~~
能不能说详细一点,在页面的显示上。
的问题是在加载页面时,进行权限判断的时候,
功能号不放在页面中的话,有其它更好的办法吧
http://www.jdon.com:81/jive/article.jsp?forum=46&thread=2897
我现在把它们分为三个层次
1 应用或目录的访问权,主要是通过判断是否登陆来决定,同时获得用户登陆信息。这个实现通过配置jsp web server的安全管理来实现,在tomcat下已经提供了三种模式来实现,一般不必编程。只需配置就可以了。
2 判断用户是否对具体页面有访问权,我认为在Filter中实现比较好,如果使用controller模式,就无法通过url直接访问资源,必须通过转发,但是页面上访问的资源种类多有图形、css文件、js文件等等,这样要不就是服务器端配置比较乱,要不就是写页面时候比较麻烦。
3 判断用户对数据或功能的权限,就必须写在页面中了。
import javax.servlet.http.*;
import java.io.*;
import java.util.*;public class PurviewFilter implements Filter {
private FilterConfig filterConfig;
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig=filterConfig;
} public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (request instanceof HttpServletRequest) {
HttpServletRequest req = (HttpServletRequest)request; String userName =req.getRemoteUser();
String resourcePath= req.getRequestURI();
if(userName==null)
{
//没有登录用户处理 //return;
} if(!verifyUser(userName,resourcePath))
{
//用户没有资源使用权限处理 // return;
} chain.doFilter(request,response);
}
} private boolean verifyUser(String userName,String resourcePath)
{
//在这里填写校验处理过程
// 载入权限控制列表
// 判断resourcePath是否在权限控制列表
// 不在 表明resourcePath不被保护,返回true
// 在
// 判断用户是否有权限
return false;
} public void destroy() { }
}
如果是使用tomcat4以上版本的话,可以做一个bean,配置成JNDI Resources,这样就可以使用了,这是当前的流行做法。例如
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
MyBean bean = (MyBean) envCtx.lookup("bean/MyBeanFactory"); 还有你可以在ServletContextListener建立一个控制列表对象,这样
你就可以读取了,这是我以前的用法。