0 0

springmvc 拦截器0

有这样一个应用场景,用户在一个表单上填了数据,这个表单上数据很多,用户填完没有提交,出去干了点其他事,等回来时session失效了,但是用户又不知道,当用户点击提交时系统要弹出窗口提示我session失效,但是不能跳转页面,不能让用户再填一次表单

如何用springmvc拦截器来实现这个功能?

问题补充:问题的重点不在session,而是用springmvc拦截器能否实现这样的功能,如果能怎么做?
2014年9月10日 17:37

4个答案 按时间排序 按投票排序

0 0

我感觉这样的问题是用ajax比较好,后台有个获取用户登录状态是否有效的判断,如果判断没有登录状态,那么给在ajax的回调函数哪儿做一个判断即可。

2014年9月11日 14:17
0 0

这块通过spring mvc的拦截器能实现,我的思路是下面的:
1. 在拦截器里面判断session是否超时,当然了,如果是集群环境采用外部session的时候道理也一样

public boolean preHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler) throws Exception {
		String requestUrl = request.getRequestURI();
		
		for(String url : allowUrls) {
			if(requestUrl.endsWith(url)) {
				return true;
			}
		}
		
		String session = (String) WebUtils.getSessionAttribute(request,
				"username");
		if(session != null) {
			return true;
		}else {
			throw new SessionTimeoutException();
		}
		
	}


2. 刚才针对你的需要我感觉ajax话能稍微简单点,是最可行的,因为form提交天生要刷新页面,如果有这种需求感觉可以使用jquery.form插件来进行提交,这样应该能搞定
   在你自定义的ExceptionResolver里面,对刚才的异常类型进行判断即可

  
String accept = request.getHeader("accept");
		if(accept.indexOf("application/json")>-1 && ex instanceof SessionTimeoutException){
			Map<String,String> errors = new HashMap<String,String>();
			errors.put("errorCode", "-1");
			errors.put("errorMsg", "chaoshi");
			
			request.setAttribute("errorJson", JSONObject.fromObject(errors).toString());
			return super.getModelAndView("errors/ajax/chaoshi", ex, request);
		}


这样就返回给前端一个json, 有这个json你前端统一处理即可,我感觉思路是能走通的。

2014年9月11日 11:30
0 0

出于UI交互性的角度考虑,应该在session的失效的时候弹出一个对话框通知用户失效,并且对话框中可以让user重新输入密码登陆,然后继续在当前页面操作。
可以用个定时器定时扫描session的状态

2014年9月10日 21:04
0 0

提交和Session没关系,至于session失效那就是登录session超时,一般都是在登录的时候做一个拦截器或者过滤器

2014年9月10日 18:29

相关推荐

    防止SpringMVC拦截器拦截js等静态资源文件的解决方法

    在本文中,我们讨论了三种解决SpringMVC拦截器拦截静态资源文件的方法,并对这些方法的优劣进行了分析。 方案一是在拦截器中排除静态资源路径。在SpringMVC的配置文件中(通常是spring-mvc.xml),可以通过配置元素...

    springMVC拦截器项目

    SpringMVC 拦截器项目是一个典型的 Web 应用开发示例,它利用 SpringMVC 框架中的拦截器(Interceptor)机制来实现特定的功能,如权限控制、日志记录、性能统计等。SpringMVC 是 Spring 框架的一部分,专为构建基于 ...

    SpringMVC拦截器源代码.zip

    这个名为“SpringMVC拦截器源代码.zip”的压缩包可能包含了Spring MVC拦截器的实现源码,这对于理解和学习如何自定义拦截器以增强应用功能非常有帮助。 1. **拦截器的基本概念** - 拦截器是AOP(面向切面编程)的...

    SpringMVC拦截器

    ### SpringMVC拦截器 #### 一、拦截器概述 拦截器(Interceptor)是一种轻量级、低侵入式的AOP实现方式,在SpringMVC框架中有着广泛的应用。它主要用于处理那些与业务逻辑无关但又频繁出现的功能需求,如日志记录...

    SpringMvc 拦截器

    在Spring MVC框架中,拦截器(Interceptor)是一个强大的工具,用于在请求被控制器处理之前或之后执行特定的逻辑。它们可以用来实现通用的功能,如权限验证、日志记录、性能统计等,避免在每个控制器方法中重复编写...

    企业级开发-SpringMVC使用拦截器实现用户登录权限验证实验报告.docx

    本实验报告将探讨如何利用 SpringMVC 的拦截器(Interceptor)来实现用户登录权限验证,确保只有已登录的用户才能访问特定的受保护资源。 首先,我们来看一下实验的基本步骤: 1. 创建 `User` 类:这是表示用户...

    SpringMVC 拦截器 实现 登录退出功能

    综上所述,本项目是一个适合初学者了解和实践SpringMVC拦截器功能的小程序。通过学习和实践,你可以掌握如何使用拦截器实现登录验证和安全退出,同时加深对Intelli IDEA的使用理解。在实际应用中,拦截器常用于权限...

    SpringMVC拦截器源码.rar

    SpringMVC拦截器是基于AOP(面向切面编程)的概念实现的,它们遵循HandlerInterceptor接口。这个接口定义了三个方法: 1. `preHandle`: 在请求被处理器处理之前调用,返回`true`表示继续执行处理器,`false`则中断...

    SpringMVC拦截器实现登录认证

    SpringMVC拦截器是实现登录认证的一种常见方法,它允许开发者在请求被实际处理之前或之后执行特定的逻辑。本文将深入探讨如何利用SpringMVC拦截器来实现这一功能。 首先,了解SpringMVC的核心组件是必要的。...

    SpringMVC拦截器例子详解

    在Spring MVC框架中,拦截器(Interceptor)是一个强大的工具,用于在请求被控制器处理之前或之后执行特定的逻辑。它们可以用来实现通用的功能,如权限验证、日志记录、性能统计等,避免在每个控制器方法中重复代码...

    使用SessionListener+持久化Session+Springmvc拦截器实现单点登录

    在这个过程中,`SessionListener`、持久化`Session`和`Springmvc拦截器`是关键组件,让我们逐一深入探讨。 ### SessionListener `SessionListener`是Java Servlet API中的一个接口,用于监听`HttpSession`事件。...

    SpringMVC拦截器实现单点登录

    SpringMVC 拦截器实现单点登录是一种常见的安全控制机制,主要用于确保在同一时间只有一个用户能够使用同一账号进行操作。这种功能在多用户、多设备登录的环境中尤为重要,可以防止用户账号被盗用或者误操作。 单点...

    springMVC拦截器

    SpringMVC 拦截器是 Spring MVC 框架中的一个重要组成部分,它允许开发者在控制器处理请求之前或之后执行自定义逻辑。拦截器可以用于实现登录检查、权限验证、日志记录、性能监控等多种功能。本文将详细介绍 ...

    11SpringMVC拦截器.md

    11SpringMVC拦截器.md

    springmvc拦截器入门实例.zip

    SpringMVC 拦截器(HandlerInterceptor)是 SpringMVC 框架中的一个重要组成部分,它在请求处理之前、之后以及视图渲染之前执行,提供了预处理和后处理的功能。这个入门实例是为了帮助开发者理解如何在实际项目中...

    SpringMVC拦截器配置及运行流程解析

    SpringMVC拦截器配置及运行流程解析 SpringMVC拦截器是指在SpringMVC框架中,用于拦截和处理请求的组件。拦截器可以在请求处理之前、之后或抛出异常时执行某些操作,例如身份验证、日志记录、异常处理等。SpringMVC...

    springMVC拦截器HandlerInterceptor用法代码示例

    "springMVC拦截器HandlerInterceptor用法代码示例" springMVC拦截器HandlerInterceptor是一种非常重要的技术,它可以帮助我们拦截用户的请求,从而知道页面请求的是哪个class的哪个方法。本文将详细介绍springMVC...

Global site tag (gtag.js) - Google Analytics