社区
Web 开发
帖子详情
用servlet如何实现权限管理?
songbo_pp
2003-11-26 08:59:38
用户管理数据库的设计是分角色的,每个角色拥有不同的权限。我的整个后台只有一个servlet来处理前端请求,怎样让用户登录后,进入自己不同的页面?
...全文
704
19
打赏
收藏
用servlet如何实现权限管理?
用户管理数据库的设计是分角色的,每个角色拥有不同的权限。我的整个后台只有一个servlet来处理前端请求,怎样让用户登录后,进入自己不同的页面?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pleonheart
2003-11-27
打赏
举报
回复
定义用户的时候肯定是分角色的吧
通过登录用户的角色,跳转到相应的页面,同时将用户信息放入Session
每个jsp页面用JavaBean检验Session中用户角色是否有权访问
或者用FilterServlet
iDay
2003-11-27
打赏
举报
回复
用struts吧
chesterwoo
2003-11-26
打赏
举报
回复
可以参照servlet2.3规范中的filter技术,写一个权限控制filter。
松耦合紧内聚
2003-11-26
打赏
举报
回复
责任链模式!?
songbo_pp
2003-11-26
打赏
举报
回复
xinshou1979330(Success.java) :
谢谢回帖。
实际上你讲是如何在后台实现权限管理,但并没有说明在表示层如何实现。
songbo_pp
2003-11-26
打赏
举报
回复
可以利用filter技术
可以细讲么?
songbo_pp
2003-11-26
打赏
举报
回复
求参数中用Action来定义功能分类,然后紧跟其他参数继续细化,为了便于servlet分析权限,是不是还要传递一个用户名?
抱歉,我没说清楚。我的系统一共有5个模块。每个模块都有增加,删除,修改数据等基本操作,提交请求时,用了一个参数名为“action”的参数来表示每个模块,还有其他的参数表示更细化的功能。比如:
提交参数:<url>?action="msg"&operation="delete"&id="100"
action表示消息模块,operation表示删除操作,id表示消息ID。
我想了想,其实没必要这样传递用户名。这个可以在session中记录用户名。
后来我和我的同事讨论了一下,可以用JSP来表示用户页面。
流程是这样的,用户登录-〉servlet把权限数据传给一个jsp-〉jsp将每个模块的链接列出来。没有前述的复杂了。
不过,作为学习,我还是想听听大家的意见,谢谢。
songbo_pp
2003-11-26
打赏
举报
回复
谢谢各位。
不过我觉得没有那么简单吧。
1.每种用户都必须进入自己相关的页面,每个页面所包含的功能模块是不一样的,也就是说页面是不一样的,这应该如何解决,难道用JSP?
2.每个独立的功能页面也是分权限的,有的按钮可见,有的按钮不可见,这又如何实现呢?
实际上,我的servlet与浏览器的通信采用一种统一的格式,请求参数中用Action来定义功能分类,然后紧跟其他参数继续细化,为了便于servlet分析权限,是不是还要传递一个用户名?我是头次作web应用,请大家纳谏。
zwxu
2003-11-26
打赏
举报
回复
建议你增加一个配置文件,给不同角色分配不同的页面,在servlet中把角色取出来,然后根据角色从配置文件中读出分配的页面,再做转向
santafeng
2003-11-26
打赏
举报
回复
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
/*使用数据库连接池的Servlet*/
public class Admin_loginServlet extends HttpServlet
{
protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException
{
HttpSession session=request.getSession();
response.setContentType("text/html;charset=GBK");
/*获得用户名及密码*/
String SName=request.getParameter("SName");
String Password=request.getParameter("Password");
Connection connection;
if(SName==null)
{
response.sendRedirect("../Adminerror.jsp?errmsg=用户名为空");
System.out.println("用户名为空");
}
AdminBean AdminBean=new AdminBean();
if(!AdminBean.SelectSName(SName))
{
response.sendRedirect("../Adminerror.jsp?errmsg=登陆出错,用户名不对");
System.out.println("登陆出错,用户名不对");
}
else
{
if(!(AdminBean.getPassword().trim()).equals(Password))
{
response.sendRedirect("../Adminerror.jsp?errmsg=登陆出错,密码不对");
System.out.println("登陆出错,密码不对");
}
else
{
session.setAttribute("username",SName);
response.sendRedirect("../admin_index.jsp");
System.out.println("管理登陆正常");
return;
}
}
AdminBean.closeConnection();
}
}
jintaocom
2003-11-26
打赏
举报
回复
你都已经有用户权限了。 那就在session里加入用户的信息。 客户端提交请求时, 先看session的用户信息, ok? 安权限跳转。。。。
wbs0770
2003-11-26
打赏
举报
回复
help you UP
hykwolf
2003-11-26
打赏
举报
回复
登陆的时候要把它的角色也select出来才能控制的
登陆的时候在数据库里把角色取出来然后进行判断然后进行跳转。
若是多个角色就给出连接让他自己选择好了
chesterwoo
2003-11-26
打赏
举报
回复
可以利用filter技术
xinshou1979330
2003-11-26
打赏
举报
回复
hocus(争取增肥10公斤) 说的是用STRUTS来做吧?
现在感觉很多都是想 hocus(争取增肥10公斤) 说的这样啊
xinshou1979330
2003-11-26
打赏
举报
回复
分四种实体
user : 用户信息,这里只保存必要的信息(比如登录名和密码)。因为你要重用嘛。和具体系统有关的用户信息不要保存在这里,提供一个关联即可
userGroup : 用户组。 和用户是一对多关系。一个userGroup里保存多个用户
role : 角色。 就是你通过需求分析出来的系统有哪些角色。 一个角色里可以保存多个用户组。
Resource : 资源。就是系统有哪些功能。 resource是和role有关系的。 在需求时就可以确定什么样的角色可以有哪些功能。一个role里可以有多个resource。
这样通过四种实体的关系,可以得到一个用户有哪些功能。
做一个通用的模块把上面这四种实体维护起来到数据库中。 (这个一点也不难)
定义好这个模块对外的接口。以提供外部调用。
在你的权限模块加一个单独的类,提供一个静态的验证的方法。比如
boolean hasResource(String userId, String resourceId);
提供一个用户,和一个要验证的资源。 如果该用户有权限返回true,否则返回false,以便在其它模块里使用这个方法来判断用户是否有权限。
至于你是不是要一次把该用户所有权限都取出来,然后相应的显示菜单了什么的。 看你的需要,加一个取指定用户全部resource方法可能较好。
这种实现的好处是设计相对简单,并在权限设置上有很大的灵活性,而且有一定的重用价值。(我们已经用在不同的项目中了)。
整个权限模块只有一个方法和其实模块有偶合,就是那个验证是否有权限的方法
boolean hasResource(String userId, String resourceId);
坏处是这种实现对数据库来说也要复用。 因为这个权限模块所对应的表结构已经定下来了。所以如果想在其它项目中用这个模块,其相应的表也得放入这个项目中(不过这几个表非常独立,不会影响太大)。
借用别人的,感觉这个权限分配不错啊,当然只是一个思路具体的需要楼主自己写了哦
(我也在自己写呢呵呵)
netcobol
2003-11-26
打赏
举报
回复
在权限控制方面,你应该采用struts + filter,通过filter来过滤,
zwxu(zwxu)说的
建议你增加一个配置文件,给不同角色分配不同的页面,在servlet中把角色取出来,然后根据角色从配置文件中读出分配的页面,再做转向不错,可以在filter中实现
hocus
2003-11-26
打赏
举报
回复
1.每种用户都必须进入自己相关的页面,每个页面所包含的功能模块是不一样的,也就是说页面是不一样的,这应该如何解决,难道用JSP?
对,权限类根据登陆用户检索其权限,页面中判断,有的话则允许进入页面,没有该页面中模块的任何权限则转向
2.每个独立的功能页面也是分权限的,有的按钮可见,有的按钮不可见,这又如何实现呢?
实际上,我的servlet与浏览器的通信采用一种统一的格式,请求参数中用Action来定义功能分类,然后紧跟其他参数继续细化,为了便于servlet分析权限,是不是还要传递一个用户名?我是头次作web应用,请大家纳谏。
根据个人拥有的不同权限决定按钮的可见性获可用性
求参数中用Action来定义功能分类,然后紧跟其他参数继续细化,为了便于servlet分析权限,是不是还要传递一个用户名?
这句详细些?什么意思
songbo_pp
2003-11-26
打赏
举报
回复
自己up
超市管理系统 完整版(MVC:JSP+
Servlet
+javaBean)
主要功能:商品管理,员工管理,供应商管理和管理员管理等
采用技术:DAO、POJO、MVC模式DAO.
Servlet
, JSP
本系统
实现
了商品管理、员工管理、供应商管理和管理员管理,管理员可以对上架商品、库存商品、新增商品、员工信息、员工、供应商、供应商分类进行的添加、删除、修改、查询操作。
超级管理员对一般管理员有修改、删除、添加权限,一般管理员对管理员模块只有查看和对自己信息进行修改的权限,如果没有登录对各种操作都是不能的。
jsp+
servlet
+mysql企业人事管理系统
企业人事系统,使用jsp+
servlet
+mysql编写,使用的IDE是Intellij IDEA 12,包含数据库备份sql文件. 主要模块包括: ①人事档案管理:户口状况、政治面貌、生理状况、合同管理等; ②考勤加班出差管理; ③人事变动:新进员工登记、员工离职登记、人事变更记录; ④考核奖惩; ⑤员工培训; ⑥系统维护:如数据安全管理(含备份与恢复)、操作员管理、权限设置等。
jsp+
servlet
实现
的CRM管理SSH
实现
的投票系统SSH
实现
的商城语音识别 6款Javaweb练手项目软件源码.zip
jsp+
servlet
实现
的CRM管理SSH
实现
的投票系统后台 SSH
实现
的商城 语音识别功能
实现
6款Javaweb练手项目软件源码: jsp+
servlet
实现
的CRM管理系统.zip SSH
实现
的商城项目.zip SSH
实现
的投票系统后台.zip SSM+Shiro+redis
实现
的权限系统.zip SSM
实现
的CMS建站系统.zip 语音识别功能
实现
.zip
图书馆管理系统(
Servlet
+Java+Jsp+Mysql)
Java+
Servlet
+Jsp+Mysql
实现
图书管理系统,附有下载、演示地址,开发工具Eclipse。 系统分为普通用户端和系统管理员端,普通用户有图书查询、借阅信息查询、借阅历史查询、个人信息查询与修改等功能。系统管理员有图书管理、图书分类管理、图书借阅管理、图书归还管理、公告管理、读者管理、个人信息管理权限。
Java serlvet+Jdbc+jsp+mysql 用户
权限管理
系统
自己初学java,利用之前的项目经验而写出来的一套基础的用户
权限管理
系统。用到了javaWeb 最底层的
servlet
及 jdbc .对初学java的童鞋具有很大的参考意义。页面是用了bootstrap。可以完整的运行。
Web 开发
81,114
社区成员
341,728
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章