`
subject
  • 浏览: 40355 次
  • 性别: Icon_minigender_1
  • 来自: 墨尔本
社区版块
存档分类
最新评论

今天我要说的是一个sessionid 错误问题 :There is no session with id[xxxxxxx]

阅读更多
[align=center][align=right]首先我要说的是用到的框架 shiro安全框架 springmvc等

下面我把错误信息拿上来




这个错误主要发生:
     我第一次访问登陆页是会出现,登陆方法:

      
@RequestMapping(value = "/login", method = RequestMethod.GET)
	public String login(HttpServletRequest request, HttpServletResponse response, Model model) {
		logger.info("LoginPage running......");
		User user = UserUtils.getUser();
		// 如果已经登录,则跳转到管理首页
		if(user.getId() != null){
//			return "redirect:"+Global.getAdminPath();
			return "redirect:/index";
		}
 		return "/commons/index";
            }
@RequestMapping(value="/login", method = RequestMethod.POST)
	public String login(HttpServletRequest request, Model model){
        xxxxxxxxxx
}

这两种,解释下这两种的区别,第一个login 是get 方式传输也就是说如果你第一次用url来访问登陆页那么久走这个方法。
第二个则就是post 当然就是登陆的时候要走的login
我这个错误 第一次访问会出现,logout后也会出现。很奇怪,研究了很久 发现每次出现都是走完get方式, 困扰了很久以后,我改变了思路, 不区分get 和post
因为在shiro配置文件里我们可以/login = authc,先验证后判断去向,所以代码改造后
只有他就行了
      
/**
	 * 用户登录
	 * @return
	 */
	@RequestMapping(value="/login")
	public String login(HttpServletRequest request, Model model){
		logger.info("User login......");
		 	String exceptionClassName = (String)request.getAttribute("shiroLoginFailure");
	        String error = null;
	        if(UnknownAccountException.class.getName().equals(exceptionClassName)) {
	            error = "用户名或密码不正确";
	        } else if(IncorrectCredentialsException.class.getName().equals(exceptionClassName)) {
	            error = "用户名或密码不正确";
	        } else if(exceptionClassName != null) {
	            error = "其他错误:" + exceptionClassName;
	        }
	        model.addAttribute("ERROR_LOGIN", error);
	        return "/commons/index";
	}


这时候有同学会问 验证成功怎么办?
那么这里还有个 <!-- 登陆成功后跳转的url -->
        <property name="successUrl" value="/index" />
利用这个方法可以控制你的去向,好了今天就说到这里吧,下次有好的分享会来的[/align][/align]
  • 大小: 3.7 KB
  • 大小: 15.3 KB
分享到:
评论

相关推荐

    NET的csharp的session丢失sessionid不一样

    ### 关于.NET中C# Session丢失与SessionID变化问题解析 #### 一、问题背景及概述 在.NET框架中,特别是在使用C#进行Web开发时,Session管理是至关重要的一个环节。Session对象允许服务器存储有关用户会话的信息,...

    tomcat修改sessionId

    tomcat修改sessionId,同一台服务器部署多个tomcat需要修改sessionId,否则会出现session冲突的问题

    获取SessionID

    SessionID则是服务器为每个用户会话分配的一个唯一标识符,对于实现用户身份验证、个性化服务等功能至关重要。本文将围绕如何获取SessionID展开讨论,并通过示例代码深入解析其工作原理。 #### 一、Session简介 1....

    一个服务器搭多个tomcat导致session丢失,或者同一个IP不同端口,多个应用的session会冲突解决方法

    一个服务器上搭建了多个tomcat或者weblogic,端口不一样,同时启动访问时session丢失。如:A,B两个服务,在浏览器中登录访问A后,当前打开的浏览器上在开一个选项卡访问B服务后,回过来点击访问A时session丢失,...

    cookie与session、sessionid

    - **创建Session**:当用户首次访问网站时,服务器会为其创建一个新的Session,并生成一个唯一的Session ID。 - **存储Session ID**:Session ID通常被存储在Cookie中,这样每次用户请求资源时都会自动携带Session ...

    通过HttpURLConnection获取SESSIONID

    //参数是a=""&b=""这样拼接的一个串 out.flush(); out.close(); out.write(parameters.getBytes(),0,parameters.getBytes().length); InputStream in = hc.getInputStream(); InputStreamReader ...

    Hibernate-nosession

    在Java的持久化框架中,Hibernate是一个非常流行的ORM(对象关系映射)工具,它极大地简化了数据库操作。然而,在某些特定场景下,我们可能并不需要频繁地打开和关闭Session,这时“Hibernate-nosession”就显得尤为...

    ASP.NET SessionId.rar

    在ASP.NET中,当一个用户访问网站并开始与服务器交互时,系统会为该用户分配一个唯一的SessionId。这个标识符是通过加密生成的,并存储在用户的浏览器cookies中,或者在URL中作为查询字符串传递(如果禁用了cookies...

    自己实现的spring-session

    如果没有sessionId就新创建session,如果有sessionId,就去redis中查看是否有此id的记录,如果没有就新建session,如果有,还是新建session,并把redis中此session的相关数据赋值给新建的session,最后保存sessionId...

    org.hibernate.HibernateException: No Hibernate Session bound to thread

    在 Hibernate 中,每个线程都需要一个 Session 对象来与数据库交互。如果未绑定 Session 到线程, Hibernate 将无法正确地执行数据库操作。 解决方案 解决该错误的方法很简单,只需在相应的 manager 实现类中添加 ...

    session实现登录工程

    当用户在网站上进行登录等需要验证身份的操作时,服务器会为该用户创建一个唯一的session ID,并将其保存在服务器的内存中。这个ID随后会发送给客户端(通常是通过cookie),客户端在后续的请求中携带这个ID,使得...

    验证码的session问题

    在Web应用中,当用户请求验证码时,服务器会生成验证码并将其存储在Session中,同时将验证码的ID(通常是一个唯一的Session ID)发送给客户端,通常以Cookie的形式。客户端在填写验证码后,将验证码ID和用户输入的...

    java中使用session模拟用户登陆

    当用户登录时,服务器会生成一个唯一的Session ID,并将其通过Cookie返回给客户端。客户端在后续的每次请求中都会携带这个Session ID,服务器根据ID找到对应的Session,从而获取或更新用户的登录状态。 以下是一个...

    浏览器多窗口共用session引发的混乱

    "浏览器多窗口共用session引发的混乱"这个标题揭示了一个常见但往往被忽视的问题,即当用户在同一浏览器的不同窗口或标签页中打开同一个网站时,它们可能会共享同一份Session数据,这可能导致意料之外的行为和用户...

    关于session丢失问题

    当用户登录网站后,服务器会为该用户创建一个唯一的Session ID,并将其存储在服务器端,通常是在内存中。然后,服务器将这个Session ID通过Cookie返回给客户端浏览器,浏览器会在后续的请求中携带这个Session ID,...

    PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法

    做开发的时候,操作session有时候会遇到这个问题:Warning: session_start() [function.session-start]…… 系统环境:WIN2003+IIS6+PHP5.2.12 PHP出现类似如下错误: Warning: session_start()[function.session-...

    php session操作类

    当用户访问网站时,服务器会为该用户生成一个唯一的Session ID,并通过cookie存储在客户端。之后,每次请求时,客户端都会发送这个Session ID,服务器根据ID找到对应的数据。 `session_class.php`可能包含以下关键...

    tomcat+nginx+redis 实现sessionId共享 实例

    在本场景中,Redis将作为一个会话存储库,保存所有服务器的sessionId,确保它们在集群中的可见性。 实现跨服务器的sessionId共享步骤如下: 1. **配置Tomcat**:在每个Tomcat实例的`server.xml`配置文件中,你需要...

    Acct-Session-idAcct-Session-id

    "Acct-Session-id",即会计会话标识符,是RADIUS(Remote Authentication Dial In User Service)协议中一个关键属性,用于唯一标识一次用户会话或网络连接。它在计费、审计以及网络资源管理中扮演着至关重要的角色...

    Jsp内置对象session总结

    当一个客户首次访问服务器上的一个 JSP 页面时,JSP 引擎产生一个 Session 对象,同时分配一个 String 类型的 Id 号,JSP 引擎同时将这个 Id 号发送到客户端,存放在 Cookie 中,这样 Session 对象和客户之间就建立...

Global site tag (gtag.js) - Google Analytics