`

JAVA只返回不跳转

 
阅读更多
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;
	}
	

}

 

分享到:
评论

相关推荐

    java实现手机扫描二维码后网站跳转新页面

    总结来说,无论是使用ZXing还是Hutools,Java都可以方便地生成二维码并验证其内容,实现手机扫描后跳转到指定网页的功能。开发者可以根据项目需求和对库的熟悉程度选择合适的方法。在实际应用中,为了增强用户体验,...

    初学Java Web页面间的登录跳转

    在初学Java Web开发时,理解页面间的登录跳转机制是非常关键的一部分,它涉及到用户交互、请求处理和响应管理。本文将深入探讨这个主题,帮助新手开发者更好地掌握这一核心技术。 一、HTTP请求与响应基础 Java Web...

    利用java filter 实现业务异常拦截源码

    利用java filter 实现业务异常拦截 跳转到错误信息提示页面 我们在做项目中肯定都会遇到自定义业务异常 ,然后将业务异常信息跳转的统一的信息提示页面的情况,比如我们在struts的时候我们会用到struts的异常处理...

    java生成相应跳转地址的二维码

    demo中含有jar包对应的maven地址,直接引入到pom中就可以使用了

    扫二维码自动跳转【java】详解

    Java 扫二维码自动跳转详解 Java 扫二维码自动跳转是一种常见的技术,通过扫描二维码,实现自动跳转到指定页面或执行特定操作。本文将详细介绍 Java 扫二维码自动跳转的实现过程,包括生成 UUID、生成二维码、自动...

    2022年Java中轻松实现界面跳转Java教程.docx

    在Java编程中,界面跳转是一个常见的需求,特别是在开发图形用户界面(GUI)应用程序时。在本教程中,我们将探讨如何在2022年的Java环境中高效地实现界面之间的跳转,尤其是当你的系统基于javax.swing包构建时。 ...

    JSP中5种跳转的方法

    这种方式通常用于提示消息后自动返回或跳转到其他页面。 #### 使用场景 - 在完成某个操作后,需要给用户一个短暂的提示信息,之后自动跳转到下一个页面。 - 在某些异常处理流程中,为了提高用户体验,可以在显示...

    ajax重写方法搭配后台filter返回status实现ajax请求跳转登录页面

    Ajax允许我们在不刷新整个页面的情况下与服务器进行通信,提高用户体验。然而,当用户未登录或者会话过期时,需要将他们重定向到登录页面。本文将详细介绍如何利用Ajax重写方法配合后台Filter来实现这种情况下的状态...

    Java Web中的页面跳转.pdf

    Java Web中的页面跳转是开发Web应用程序时必不可少的技术,它涉及到用户交互和应用程序流程控制。在Java Web中,主要有两种页面跳转方式:请求转发(Request Forward)和重定向(Redirect)。这两种方式有着不同的...

    JAVA元数据编程零接触 -- 实现简单的MVC跳转控制雏形

    本篇文章将探讨如何在Java环境中,利用元数据编程实现一个简单的MVC(Model-View-Controller)跳转控制雏形。我们将主要关注Spring框架中的元数据编程概念,特别是基于注解的IoC(Inversion of Control,控制反转)...

    多action之间跳转传参问题

    在开发Java Web应用程序时,尤其是使用Struts2或者Spring MVC等MVC框架时,我们经常需要在多个Action之间进行跳转并传递参数。这在构建动态、交互性强的Web应用中是必不可少的。本项目旨在演示如何在自定义的Action...

    子窗口iframe跳转到父窗口

    这种方式的优点是不需要额外的JavaScript代码,但是只适用于表单提交的场景。 ##### 方法三:利用JavaScript弹窗确认后跳转 此方法适用于需要在提交前进行用户确认的情况。通过JavaScript弹窗询问用户是否确定执行...

    Java跳转语句的解析.pdf

    Java中的跳转语句是程序控制流的重要组成部分,它们允许程序员在特定条件下改变代码的执行顺序,以达到灵活控制程序流程的目的。Java提供了三种主要的跳转语句:`break`、`continue`和`return`,每种都有其特定的...

    Java返回语句return-Java教程共1页.pdf

    在学习Java返回语句时,理解其工作原理、掌握其用法以及在不同场景下的应用是关键。通过实践编写包含`return`语句的代码,可以更深入地理解和运用这一概念。最后,不断练习和阅读高质量的代码,将有助于提升你在Java...

    android应用跳转界面

    此外,Android提供了多种跳转方式,如使用`startActivityForResult()`来进行有结果返回的跳转,或者使用`Intent.FLAG_ACTIVITY_CLEAR_TOP`清除栈顶的Activity等。了解这些特性可以帮助开发者更好地控制应用的导航...

    java返回值封装.zip

    开发者只需要实例化这个Response类,填充相应的值,然后返回即可。 在实际开发中,为了使接口更加健壮,我们还可以考虑添加异常处理机制,如全局异常处理器,捕获并处理所有未被特定异常处理器处理的异常,返回统一...

    Android中界面间的跳转(两种方式)

    在Android应用开发中,界面间的跳转是必不可少的操作,它使得用户可以在不同的功能之间自由切换。本篇文章将详细探讨两种主要的界面跳转方法:`startActivity(Intent)`和`startActivityForResult(Intent, int)`。 ...

    安卓界面跳转传值及返回父屏

    本篇文章将深入探讨如何在Android中实现从一个Activity(活动)跳转到另一个Activity,并在跳转过程中传递数据,以及如何设置返回逻辑以回到原来的父屏幕。我们将以一个名为"MyApplication"的示例项目为背景进行讲解...

    实现androidActivity的跳转,数据返回,传数据

    这里的defaultValue是当key不存在时返回的默认值。 #### 2.2 使用Parcelable或Serializable接口 对于复杂对象,如自定义类实例,可以实现Parcelable或Serializable接口,以便它们能在Intent中传递。例如,实现...

    Androidstudio实现页面跳转和传递参数

    你可以根据需要存储各种类型的数据,如整数、浮点数、布尔值等,只需调用相应的put方法。 然后,我们将Bundle附加到Intent中: ```java intent.putExtra("bundleKey", bundle); ``` 这里的"bundleKey"是Bundle在...

Global site tag (gtag.js) - Google Analytics