package com.snda.youni.monitor.console.utils; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import com.snda.youni.monitor.console.biz.impl.menu.RoleResourceServiceImpl; import com.snda.youni.monitor.console.biz.impl.menu.UserRoleServiceImpl; import com.snda.youni.monitor.console.dao.bean.menu.RoleResourcePOJO; import com.snda.youni.monitor.console.dao.bean.menu.UserPOJO; import com.snda.youni.monitor.console.dao.bean.menu.UserRolePOJO; public class AccessInterceptor implements HandlerInterceptor{ @Autowired private RoleResourceServiceImpl roleResourceServiceImpl; @Autowired private UserRoleServiceImpl userRoleServiceImpl; @Override public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { } @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { } @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception { HttpSession session=request.getSession(); UserPOJO user=(UserPOJO)session.getAttribute("user"); boolean hasPermision=false; if(user!=null){ //查询用户的角色 Map map=new HashMap(); map.put("userId", user.getUserId()); List<UserRolePOJO> list=userRoleServiceImpl.query(map); for(UserRolePOJO ur:list){ if(ur.getRoleName().equals("superAdmin")){ hasPermision=true; break; } } if(hasPermision){ // response.sendRedirect("/monitor/admin/superAdmin.htm"); return true; }else{ Map map1=new HashMap(); map1.put("roleId", user.getRoleId()); List<RoleResourcePOJO> list1=roleResourceServiceImpl.query(map1);//查询该用户是否有权限 for(RoleResourcePOJO roleResource:list1){ String visitUrl=request.getRequestURI(); if(visitUrl.equals(roleResource.getResourceUrl())){ hasPermision=true; return true; } } } } response.setContentType("text/html;charset=UTF-8"); response.getWriter().print("relogin"); //response.sendRedirect("/monitor/authority/checkFail.htm"); return false; } }
相关推荐
总结来说,无论是使用ZXing还是Hutools,Java都可以方便地生成二维码并验证其内容,实现手机扫描后跳转到指定网页的功能。开发者可以根据项目需求和对库的熟悉程度选择合适的方法。在实际应用中,为了增强用户体验,...
在初学Java Web开发时,理解页面间的登录跳转机制是非常关键的一部分,它涉及到用户交互、请求处理和响应管理。本文将深入探讨这个主题,帮助新手开发者更好地掌握这一核心技术。 一、HTTP请求与响应基础 Java Web...
利用java filter 实现业务异常拦截 跳转到错误信息提示页面 我们在做项目中肯定都会遇到自定义业务异常 ,然后将业务异常信息跳转的统一的信息提示页面的情况,比如我们在struts的时候我们会用到struts的异常处理...
demo中含有jar包对应的maven地址,直接引入到pom中就可以使用了
Java 扫二维码自动跳转详解 Java 扫二维码自动跳转是一种常见的技术,通过扫描二维码,实现自动跳转到指定页面或执行特定操作。本文将详细介绍 Java 扫二维码自动跳转的实现过程,包括生成 UUID、生成二维码、自动...
在Java编程中,界面跳转是一个常见的需求,特别是在开发图形用户界面(GUI)应用程序时。在本教程中,我们将探讨如何在2022年的Java环境中高效地实现界面之间的跳转,尤其是当你的系统基于javax.swing包构建时。 ...
这种方式通常用于提示消息后自动返回或跳转到其他页面。 #### 使用场景 - 在完成某个操作后,需要给用户一个短暂的提示信息,之后自动跳转到下一个页面。 - 在某些异常处理流程中,为了提高用户体验,可以在显示...
Ajax允许我们在不刷新整个页面的情况下与服务器进行通信,提高用户体验。然而,当用户未登录或者会话过期时,需要将他们重定向到登录页面。本文将详细介绍如何利用Ajax重写方法配合后台Filter来实现这种情况下的状态...
Java Web中的页面跳转是开发Web应用程序时必不可少的技术,它涉及到用户交互和应用程序流程控制。在Java Web中,主要有两种页面跳转方式:请求转发(Request Forward)和重定向(Redirect)。这两种方式有着不同的...
本篇文章将探讨如何在Java环境中,利用元数据编程实现一个简单的MVC(Model-View-Controller)跳转控制雏形。我们将主要关注Spring框架中的元数据编程概念,特别是基于注解的IoC(Inversion of Control,控制反转)...
在开发Java Web应用程序时,尤其是使用Struts2或者Spring MVC等MVC框架时,我们经常需要在多个Action之间进行跳转并传递参数。这在构建动态、交互性强的Web应用中是必不可少的。本项目旨在演示如何在自定义的Action...
这种方式的优点是不需要额外的JavaScript代码,但是只适用于表单提交的场景。 ##### 方法三:利用JavaScript弹窗确认后跳转 此方法适用于需要在提交前进行用户确认的情况。通过JavaScript弹窗询问用户是否确定执行...
Java中的跳转语句是程序控制流的重要组成部分,它们允许程序员在特定条件下改变代码的执行顺序,以达到灵活控制程序流程的目的。Java提供了三种主要的跳转语句:`break`、`continue`和`return`,每种都有其特定的...
在学习Java返回语句时,理解其工作原理、掌握其用法以及在不同场景下的应用是关键。通过实践编写包含`return`语句的代码,可以更深入地理解和运用这一概念。最后,不断练习和阅读高质量的代码,将有助于提升你在Java...
此外,Android提供了多种跳转方式,如使用`startActivityForResult()`来进行有结果返回的跳转,或者使用`Intent.FLAG_ACTIVITY_CLEAR_TOP`清除栈顶的Activity等。了解这些特性可以帮助开发者更好地控制应用的导航...
开发者只需要实例化这个Response类,填充相应的值,然后返回即可。 在实际开发中,为了使接口更加健壮,我们还可以考虑添加异常处理机制,如全局异常处理器,捕获并处理所有未被特定异常处理器处理的异常,返回统一...
在Android应用开发中,界面间的跳转是必不可少的操作,它使得用户可以在不同的功能之间自由切换。本篇文章将详细探讨两种主要的界面跳转方法:`startActivity(Intent)`和`startActivityForResult(Intent, int)`。 ...
本篇文章将深入探讨如何在Android中实现从一个Activity(活动)跳转到另一个Activity,并在跳转过程中传递数据,以及如何设置返回逻辑以回到原来的父屏幕。我们将以一个名为"MyApplication"的示例项目为背景进行讲解...
这里的defaultValue是当key不存在时返回的默认值。 #### 2.2 使用Parcelable或Serializable接口 对于复杂对象,如自定义类实例,可以实现Parcelable或Serializable接口,以便它们能在Intent中传递。例如,实现...
你可以根据需要存储各种类型的数据,如整数、浮点数、布尔值等,只需调用相应的put方法。 然后,我们将Bundle附加到Intent中: ```java intent.putExtra("bundleKey", bundle); ``` 这里的"bundleKey"是Bundle在...