struts2实现管理员与普通用户不同权限

时间: 2024-06-11 12:10:07 浏览: 22
Struts2可以通过使用拦截器来实现管理员与普通用户不同权限的控制。具体步骤如下: 1. 定义用户角色:在数据库中定义用户角色,如管理员、普通用户等。 2. 创建拦截器:在Struts2中创建一个拦截器,用来判断用户角色是否有访问某个资源的权限。拦截器可以继承Struts2提供的拦截器类,通过覆盖其中的方法来实现自定义的功能。 3. 配置拦截器:在Struts2的配置文件中配置拦截器,并指定需要拦截的请求URL和对应的拦截器。 4. 实现业务逻辑:在Action中实现具体的业务逻辑,根据用户角色的不同,在业务逻辑中进行相应的处理。 例如,可以在拦截器中判断当前用户的角色是否为管理员,如果是,则允许访问某个资源,如果不是,则返回错误提示信息。在Action中,可以根据用户角色的不同,返回不同的页面或执行不同的操作。
相关问题

struts2使用管理员权限增删改查

Struts2使用管理员权限增删改查可以通过以下步骤实现: 1. 定义权限控制 在Struts2中,可以使用拦截器来实现权限控制,定义一个拦截器来检查当前用户是否有管理员权限。例如,可以定义一个名为“adminInterceptor”的拦截器: ``` public class AdminInterceptor extends AbstractInterceptor { @Override public String intercept(ActionInvocation invocation) throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); User user = (User) session.getAttribute("user"); if (user == null || !user.isAdmin()) { return "noAdmin"; } return invocation.invoke(); } } ``` 在以上拦截器中,我们检查当前用户是否已登录,并且是否具有管理员权限。如果用户未登录或不是管理员,则返回“noAdmin”字符串。 2. 配置拦截器 在Struts2中,可以使用“interceptor-ref”元素来指定要使用的拦截器。例如,我们可以在Struts2配置文件中添加以下内容: ``` <interceptors> <interceptor name="adminInterceptor" class="com.example.AdminInterceptor" /> <interceptor-stack name="adminStack"> <interceptor-ref name="adminInterceptor" /> <interceptor-ref name="defaultStack" /> </interceptor-stack> </interceptors> ``` 在以上配置中,我们定义了一个名为“adminStack”的拦截器堆栈,其中包含了我们定义的“adminInterceptor”拦截器和默认拦截器堆栈。使用“adminStack”来拦截需要管理员权限的Action。 3. 编写Action 在Struts2中,可以通过定义Action来处理请求。以下是一个简单的Action示例,用于管理用户: ``` public class UserAction extends ActionSupport { private List<User> users; public String list() { users = userService.listUsers(); return SUCCESS; } @Override public String execute() throws Exception { return list(); } public String add() { userService.addUser(user); return SUCCESS; } public String edit() { user = userService.getUser(id); return SUCCESS; } public String update() { userService.updateUser(user); return SUCCESS; } public String delete() { userService.deleteUser(id); return SUCCESS; } // getters and setters } ``` 在以上示例中,我们定义了五个方法来处理用户管理操作: - list:列出所有用户 - add:添加新用户 - edit:编辑用户信息 - update:更新用户信息 - delete:删除用户 在每个方法中,我们都需要检查当前用户是否具有管理员权限。如果用户未登录或不是管理员,则返回“noAdmin”字符串。 4. 配置Action 在Struts2中,可以使用“result”元素来指定Action执行后的结果。例如,我们可以在Struts2配置文件中添加以下内容: ``` <action name="user" class="com.example.UserAction" method="list"> <result name="success">/user/list.jsp</result> <interceptor-ref name="adminStack" /> </action> <action name="userAdd" class="com.example.UserAction" method="add"> <result name="success" type="redirectAction">user</result> <interceptor-ref name="adminStack" /> </action> <action name="userEdit" class="com.example.UserAction" method="edit"> <result name="success">/user/edit.jsp</result> <interceptor-ref name="adminStack" /> </action> <action name="userUpdate" class="com.example.UserAction" method="update"> <result name="success" type="redirectAction">user</result> <interceptor-ref name="adminStack" /> </action> <action name="userDelete" class="com.example.UserAction" method="delete"> <result name="success" type="redirectAction">user</result> <interceptor-ref name="adminStack" /> </action> ``` 在以上配置中,我们定义了五个Action,分别对应用户管理操作。在每个Action中,我们都指定了要使用的拦截器堆栈“adminStack”,以检查当前用户是否具有管理员权限。同时,我们还指定了Action执行后的结果,例如展示用户列表、跳转到添加用户页面等。 通过以上步骤,我们就可以使用管理员权限增删改查用户信息了。当用户未登录或不是管理员时,系统会直接返回“noAdmin”页面,避免未授权访问。

strut2多种用户不同权限登录系统

实现不同用户权限登录系统,可以通过以下步骤: 1.设计数据库表 设计用户表和角色表,以及中间表用于关联用户和角色。用户表中包含用户编号、用户名、密码等基本信息,角色表中包含角色编号、角色名称等基本信息。 2.配置Struts2 在struts.xml配置文件中,定义登录拦截器,拦截需要登录的请求,并检查用户是否已经登录。同时,配置不同角色的访问权限,限制用户访问某些功能。 3.编写登录功能 在登录页面中输入用户名和密码,提交表单到后台。后台根据用户名和密码查询用户信息,并将用户信息存储到session中。如果用户名和密码不正确,则返回登录页面并提示错误信息。 4.编写权限管理功能 管理员用户可以管理其他用户的角色和权限,可以为用户分配不同的角色。在用户登录后,根据用户的角色信息,动态生成菜单和权限按钮等。用户点击菜单或按钮时,检查用户是否具有相应的权限,如果没有则提示用户无权访问。 5.实现用户退出 用户点击退出按钮时,清除session中的用户信息,并跳转到登录页面。用户再次访问需要登录的页面时,需要重新登录。

相关推荐

最新推荐

recommend-type

网上文件管理系统(ssh)需求分析

- **用例图**:展示了系统中用户(包括管理员和普通用户)的不同交互场景,如登录、文件管理、用户管理等。 5. **系统功能预览**: - 用户通过浏览器访问系统入口,进行身份验证。 - 成功登录后,管理员可以看到...
recommend-type

网上书店毕业论文(使用了jsp struts1.3 Hibernate)

系统中,用户分为管理员和普通用户两种角色,具有不同的权限。管理员可能有添加、删除书籍,管理用户等高级权限,而普通用户则只能浏览书籍,购买操作。这种权限控制确保了系统的安全性和数据的完整性。 7. **国际...
recommend-type

电信增值服务计费管理系统-毕业论文_Java

本系统是是一个强大的基于B/S模式的同时能够提供管理员与普通 用户的系统,争取做到实时更新,快速稳定。本系统的服务器为UNIX服务器(开发时在Linux),数据库 设计是基于MYSQL平台,系统用到了JAVA EE三个开源框架...
recommend-type

wap系统需求规格说明书

- 用户分为系统管理员、CP管理员和普通用户三类,各自拥有特定权限,系统管理员具有全面管理权限,CP管理员负责内容发布,普通用户则可浏览并购买信息。 - 开发目标主要包括建立一个包含文字、图片、铃声的分类...
recommend-type

Liferay_Portal_门户解决方案

2. 管理员能通过用户界面轻松管理用户、组、角色 3. 用户能根据需要定制个性化的门户布局 4. 能够在主流的 J2EE 应用服务器上运行 5. 支持主流的数据库 6. 使用了第三方的开源项目,如 Hibernate, Lucene, Struts 7....
recommend-type

婚礼GO网站创业计划书.docx

"婚礼GO网站创业计划书" 在创建婚礼GO网站的创业计划书中,创业者首先阐述了企业的核心业务——GO婚礼设计,专注于提供计算机软件销售和技术开发、技术服务,以及与婚礼相关的各种服务,如APP制作、网页设计、弱电工程安装等。企业类型被定义为服务类,涵盖了一系列与信息技术和婚礼策划相关的业务。 创业者的个人经历显示了他对行业的理解和投入。他曾在北京某科技公司工作,积累了吃苦耐劳的精神和实践经验。此外,他在大学期间担任班长,锻炼了团队管理和领导能力。他还参加了SYB创业培训班,系统地学习了创业意识、计划制定等关键技能。 市场评估部分,目标顾客定位为本地的结婚人群,特别是中等和中上收入者。根据数据显示,广州市内有14家婚庆公司,该企业预计能占据7%的市场份额。广州每年约有1万对新人结婚,公司目标接待200对新人,显示出明确的市场切入点和增长潜力。 市场营销计划是创业成功的关键。尽管文档中没有详细列出具体的营销策略,但可以推断,企业可能通过线上线下结合的方式,利用社交媒体、网络广告和本地推广活动来吸引目标客户。此外,提供高质量的技术解决方案和服务,以区别于竞争对手,可能是其市场差异化策略的一部分。 在组织结构方面,未详细说明,但可以预期包括了技术开发团队、销售与市场部门、客户服务和支持团队,以及可能的行政和财务部门。 在财务规划上,文档提到了固定资产和折旧、流动资金需求、销售收入预测、销售和成本计划以及现金流量计划。这表明创业者已经考虑了启动和运营的初期成本,以及未来12个月的收入预测,旨在确保企业的现金流稳定,并有可能享受政府对大学生初创企业的税收优惠政策。 总结来说,婚礼GO网站的创业计划书详尽地涵盖了企业概述、创业者背景、市场分析、营销策略、组织结构和财务规划等方面,为初创企业的成功奠定了坚实的基础。这份计划书显示了创业者对市场的深刻理解,以及对技术和婚礼行业的专业认识,有望在竞争激烈的婚庆市场中找到一席之地。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

【基础】图像的几何变换:缩放、旋转与翻转

![【基础】图像的几何变换:缩放、旋转与翻转](https://img-blog.csdnimg.cn/ebace0d8b8c94a058abdb8b10e5ed995.png) # 2.1 图像缩放的理论基础 图像缩放是一种几何变换,它可以改变图像的大小,使其适合特定的显示或处理需求。图像缩放可以通过以下变换矩阵来实现: ``` S = [[sx, 0, 0], [0, sy, 0], [0, 0, 1]] ``` 其中: * `sx` 和 `sy` 分别是水平和垂直缩放因子。 * `sx > 1` 和 `sy > 1` 表示图像放大。 * `sx < 1` 和
recommend-type

字节跳动面试题java

字节跳动作为一家知名的互联网公司,在面试Java开发者时可能会关注以下几个方面的问题: 1. **基础技能**:Java语言的核心语法、异常处理、内存管理、集合框架、IO操作等是否熟练掌握。 2. **面向对象编程**:多态、封装、继承的理解和应用,可能会涉及设计模式的提问。 3. **并发编程**:Java并发API(synchronized、volatile、Future、ExecutorService等)的使用,以及对并发模型(线程池、并发容器等)的理解。 4. **框架知识**:Spring Boot、MyBatis、Redis等常用框架的原理和使用经验。 5. **数据库相
recommend-type

微信行业发展现状及未来行业发展趋势分析.docx

微信行业发展现状及未来行业发展趋势分析 微信作为移动互联网的基础设施,已经成为流量枢纽,月活跃账户达到10.4亿,同增10.9%,是全国用户量最多的手机App。微信的活跃账户从2012年起步月活用户仅为5900万人左右,伴随中国移动互联网进程的不断推进,微信的活跃账户一直维持稳步增长,在2014-2017年年末分别达到5亿月活、6.97亿月活、8.89亿月活和9.89亿月活。 微信月活发展历程显示,微信的用户数量增长已经开始呈现乏力趋势。微信在2018年3月日活达到6.89亿人,同比增长5.5%,环比上个月增长1.7%。微信的日活同比增速下滑至20%以下,并在2017年年底下滑至7.7%左右。微信DAU/MAU的比例也一直较为稳定,从2016年以来一直维持75%-80%左右的比例,用户的粘性极强,继续提升的空间并不大。 微信作为流量枢纽,已经成为移动互联网的基础设施,月活跃账户达到10.4亿,同增10.9%,是全国用户量最多的手机App。微信的活跃账户从2012年起步月活用户仅为5900万人左右,伴随中国移动互联网进程的不断推进,微信的活跃账户一直维持稳步增长,在2014-2017年年末分别达到5亿月活、6.97亿月活、8.89亿月活和9.89亿月活。 微信的用户数量增长已经开始呈现乏力趋势,这是因为微信自身也在重新寻求新的增长点。微信日活发展历程显示,微信的用户数量增长已经开始呈现乏力趋势。微信在2018年3月日活达到6.89亿人,同比增长5.5%,环比上个月增长1.7%。微信的日活同比增速下滑至20%以下,并在2017年年底下滑至7.7%左右。 微信DAU/MAU的比例也一直较为稳定,从2016年以来一直维持75%-80%左右的比例,用户的粘性极强,继续提升的空间并不大。因此,在整体用户数量开始触达天花板的时候,微信自身也在重新寻求新的增长点。 中国的整体移动互联网人均单日使用时长已经较高水平。18Q1中国移动互联网的月度总时长达到了77千亿分钟,环比17Q4增长了14%,单人日均使用时长达到了273分钟,环比17Q4增长了15%。而根据抽样统计,社交始终占据用户时长的最大一部分。2018年3月份,社交软件占据移动互联网35%左右的时长,相比2015年减少了约10pct,但仍然是移动互联网当中最大的时长占据者。 争夺社交软件份额的主要系娱乐类App,目前占比达到约32%左右。移动端的流量时长分布远比PC端更加集中,通常认为“搜索下載”和“网站导航”为PC时代的流量枢纽,但根据统计,搜索的用户量约为4.5亿,为各类应用最高,但其时长占比约为5%左右,落后于网络视频的13%左右位于第二名。PC时代的网络社交时长占比约为4%-5%,基本与搜索相当,但其流量分发能力远弱于搜索。 微信作为移动互联网的基础设施,已经成为流量枢纽,月活跃账户达到10.4亿,同增10.9%,是全国用户量最多的手机App。微信的活跃账户从2012年起步月活用户仅为5900万人左右,伴随中国移动互联网进程的不断推进,微信的活跃账户一直维持稳步增长,在2014-2017年年末分别达到5亿月活、6.97亿月活、8.89亿月活和9.89亿月活。 微信的用户数量增长已经开始呈现乏力趋势,这是因为微信自身也在重新寻求新的增长点。微信日活发展历程显示,微信的用户数量增长已经开始呈现乏力趋势。微信在2018年3月日活达到6.89亿人,同比增长5.5%,环比上个月增长1.7%。微信的日活同比增速下滑至20%以下,并在2017年年底下滑至7.7%左右。 微信DAU/MAU的比例也一直较为稳定,从2016年以来一直维持75%-80%左右的比例,用户的粘性极强,继续提升的空间并不大。因此,在整体用户数量开始触达天花板的时候,微信自身也在重新寻求新的增长点。 微信作为移动互联网的基础设施,已经成为流量枢纽,月活跃账户达到10.4亿,同增10.9%,是全国用户量最多的手机App。微信的活跃账户从2012年起步月活用户仅为5900万人左右,伴随中国移动互联网进程的不断推进,微信的活跃账户一直维持稳步增长,在2014-2017年年末分别达到5亿月活、6.97亿月活、8.89亿月活和9.89亿月活。 微信的用户数量增长已经开始呈现乏力趋势,这是因为微信自身也在重新寻求新的增长点。微信日活发展历程显示,微信的用户数量增长已经开始呈现乏力趋势。微信在2018年3月日活达到6.89亿人,同比增长5.5%,环比上个月增长1.7%。微信的日活同比增速下滑至20%以下,并在2017年年底下滑至7.7%左右。 微信DAU/MAU的比例也一直较为稳定,从2016年以来一直维持75%-80%左右的比例,用户的粘性极强,继续提升的空间并不大。因此,在整体用户数量开始触达天花板的时候,微信自身也在重新寻求新的增长点。 微信作为移动互联网的基础设施,已经成为流量枢纽,月活跃账户达到10.4亿,同增10.9%,是全国用户量最多的手机App。微信的活跃账户从2012年起步月活用户仅为5900万人左右,伴随中国移动互联网进程的不断推进,微信的活跃账户一直维持稳步增长,在2014-2017年年末分别达到5亿月活、6.97亿月活、8.89亿月活和9.89亿月活。 微信的用户数量增长已经开始呈现乏力趋势,这是因为微信自身也在重新寻求新的增长点。微信日活发展历程显示,微信的用户数量增长已经开始呈现乏力趋势。微信在2018年3月日活达到6.89亿人,同比增长5.5%,环比上个月增长1.7%。微信的日活同比增速下滑至20%以下,并在2017年年底下滑至7.7%左右。 微信DAU/MAU的比例也一直较为稳定,从2016年以来一直维持75%-80%左右的比例,用户的粘性极强,继续提升的空间并不大。因此,在整体用户数量开始触达天花板的时候,微信自身也在重新寻求新的增长点。