登录保存用户信息

做项目时,可能会将某些信息保存在session中,如登录等信息,这样方便在某些页面使用这些保存的信息。

要想保存这些信息,需要创建一个类,该类里面定义需要保存的变量等信息,当登录后就通过new一个该类来保存登录等信息,然后放在session中,需要用到这些信息时直接用例如EL表达式等取出来就OK了。例子如下:

1.保存用户信息的类

[java] view plain copy

print?

  1. <span style="font-size:14px;"><span style="font-family:Microsoft YaHei;">public class WSessionInfo implements java.io.Serializable {<span style="white-space:pre">    </span>
  2. private String id;// 用户ID
  3. private String loginname;// 登录名
  4. private String name;// 姓名
  5. private String ip;// 用户IP
  6. private String userimg; //图片
  7. private RegisterUser user;  //用户注册信息
  8. private String usertype;//用户类型
  9. private String chengsid;//城市编号
  10. private String cityname;//城市名
  11. private List<String> resourceList;// 用户可以访问的资源地址列表
  12. private List<String> resourceAllList;
  13. public String getId() {
  14. return id;
  15. }
  16. public void setId(String id) {
  17. this.id = id;
  18. }
  19. public String getChengsid() {
  20. return chengsid;
  21. }
  22. public void setChengsid(String chengsid) {
  23. this.chengsid = chengsid;
  24. }
  25. <span style="white-space:pre">    </span>......
  26. }</span>
  27. </span>
<span style="font-size:14px;"><span style="font-family:Microsoft YaHei;">public class WSessionInfo implements java.io.Serializable {<span style="white-space:pre"> </span>

    private String id;// 用户ID
    private String loginname;// 登录名
    private String name;// 姓名
    private String ip;// 用户IP
    private String userimg; //图片
    private RegisterUser user;  //用户注册信息
    private String usertype;//用户类型
    private String chengsid;//城市编号
    private String cityname;//城市名
    private List<String> resourceList;// 用户可以访问的资源地址列表
    private List<String> resourceAllList;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
    public String getChengsid() {
        return chengsid;
    }

    public void setChengsid(String chengsid) {
        this.chengsid = chengsid;
    }
<span style="white-space:pre">    </span>......
}</span>

</span>

2.在Controller中保存登录等信息

[java] view plain copy

print?

  1. <span style="font-size:14px;"><span style="font-family:Microsoft YaHei;"><span style="white-space:pre">   </span>@RequestMapping("/login")
  2. @ResponseBody
  3. public Json login(Account user, HttpSession session) {
  4. ......
  5. WSessionInfo sessionInfo = new WSessionInfo();//保存用户信息的类
  6. sessionInfo.setId(loginUser.getId());//为类里面的属性赋值,即把登录信息保存在这个类中
  7. sessionInfo.setLoginname(loginUser.getLoginname());
  8. sessionInfo.setUsertype(loginUser.getUsertype());
  9. sessionInfo.setUser(regUser);
  10. session.setAttribute(GlobalConstant.SESSION_WAP_INFO, sessionInfo);//将信息保存在session中
  11. }
  12. </span></span>
<span style="font-size:14px;"><span style="font-family:Microsoft YaHei;"><span style="white-space:pre">  </span>@RequestMapping("/login")
    @ResponseBody
    public Json login(Account user, HttpSession session) {
        ......
        WSessionInfo sessionInfo = new WSessionInfo();//保存用户信息的类
        sessionInfo.setId(loginUser.getId());//为类里面的属性赋值,即把登录信息保存在这个类中
        sessionInfo.setLoginname(loginUser.getLoginname());
        sessionInfo.setUsertype(loginUser.getUsertype());
        sessionInfo.setUser(regUser);
        session.setAttribute(GlobalConstant.SESSION_WAP_INFO, sessionInfo);//将信息保存在session中
    }
</span></span>

3.在页面使用

[java] view plain copy

print?

  1. <span style="font-size:14px;"><span style="font-family:Microsoft YaHei;"><%@page import="com.wxm.framework.constant.GlobalConstant"%>
  2. <%@page import="com.wxm.pageModel.base.WSessionInfo"%>
  3. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  4. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  5. <c:set var="ctx" value="${pageContext.request.contextPath}"/>
  6. <%
  7. String path = request.getContextPath();
  8. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  9. <span style="white-space:pre">    </span><strong>WSessionInfo sessionInfo = (WSessionInfo) request.getSession().getAttribute(GlobalConstant.SESSION_WAP_INFO);//获取保存的登录等信息</strong>
  10. if(sessionInfo!=null){//判断保存的信息是否为空,即判断用户是否登录
  11. response.sendRedirect("/bd/wap/ar.jsp");//如果用户登录后就跳转到某个页面
  12. }
  13. %>
  14. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  15. <html xmlns="http://www.w3.org/1999/xhtml">
  16. <head>
  17. <base href="<%=basePath%>">
  18. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  19. <meta charset="utf-8">
  20. <title>登录</title>
  21. <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
  22. <meta name="apple-mobile-web-app-capable" content="yes">
  23. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  24. </head>
  25. <body>
  26. </body>
  27. </html>
  28. </span></span>
<span style="font-size:14px;"><span style="font-family:Microsoft YaHei;"><%@page import="com.wxm.framework.constant.GlobalConstant"%>
<%@page import="com.wxm.pageModel.base.WSessionInfo"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

<span style="white-space:pre">    </span><strong>WSessionInfo sessionInfo = (WSessionInfo) request.getSession().getAttribute(GlobalConstant.SESSION_WAP_INFO);//获取保存的登录等信息</strong>

    if(sessionInfo!=null){//判断保存的信息是否为空,即判断用户是否登录
        response.sendRedirect("/bd/wap/ar.jsp");//如果用户登录后就跳转到某个页面
}
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base href="<%=basePath%>">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>登录</title>
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
</head>

<body>
</body>
</html>
</span></span>

4.退出session

[java] view plain copy

print?

  1. <span style="font-family:Microsoft YaHei;"><span style="white-space:pre">   </span>@RequestMapping("/logout")
  2. @ResponseBody
  3. public Json logout(HttpSession session) {
  4. <span style="white-space:pre">        </span>Json j = new Json();//这个类是保存成功或失败的信息
  5. if (session != null) {
  6. session.invalidate();//调用session的invalidate()方法,将保存的session删除
  7. }
  8. j.setSuccess(true);
  9. j.setMsg("退出登录成功!");
  10. return j;
  11. <span style="white-space:pre">    </span>}</span>
<span style="font-family:Microsoft YaHei;"><span style="white-space:pre">   </span>@RequestMapping("/logout")
    @ResponseBody
    public Json logout(HttpSession session) {
<span style="white-space:pre">        </span>Json j = new Json();//这个类是保存成功或失败的信息
        if (session != null) {
            session.invalidate();//调用session的invalidate()方法,将保存的session删除
        }
        j.setSuccess(true);
        j.setMsg("退出登录成功!");
        return j;
<span style="white-space:pre">    </span>}</span>

原文地址:https://www.cnblogs.com/qiu18359243869/p/12178683.html

时间: 2024-10-03 22:51:06

登录保存用户信息的相关文章

Android之QQ授权登录获取用户信息

有时候我们开发的app须要方便用户简单登录.能够让用户使用自己的qq.微信.微博登录到我们自己开发的app. 今天就在这里总结一下怎样在自己的app中集成QQ授权登录获取用户信息的功能. 首先我们打开腾讯开发平台这个网页,点击---->移动应用---->创建应用,成功创建应用后.能够产生我们须要的App ID和App Key,例如以下图所看到的: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmVhcl9odWFuZ3poZW4=/font/5a6

偏好设置保存用户信息

偏好设置保存用户信息. { <1>如果用户登陆成功,就保存用户信息.下次直接从偏好设置中读取用户信息,以此做到用户只需要输入一次账号和密码,以后登陆就可以不用再次输入. 1>.登陆成功,保存用户信息(偏好设置) 2>.再次进入,直接显示用户之前保存的信息.避免用户重复输入. // 偏好设置存储用户信息 -(void)savaUserInfo { // 实例化偏好设置对象(单例) NSUserDefaults *User = [NSUserDefaults standardUserD

shiro登陆成功保存用户信息到session

我们经常会需要把登录成功后的用户信息保存到session中,但是如果我们使用shiro做权限管理,该怎么去实现呢?其实很简单 第一步:写一个类CustomFormAuthenticationFilter继承FormAuthenticationFilter,并重写onLoginSuccess方法,以下是我的实现 @Override protected boolean onLoginSuccess(AuthenticationToken token, Subject subject, Servlet

.net中保存用户信息的九种方法

.net中保存用户信息的九种方法 在ASP.NET中,有几种保持用户请求间数据的途径--实际上太多了,使没有经验的开发者对在哪个特定的环境下使用哪个对象很困惑.为了回答这个问题,需要考虑下面三个条件: .谁需要数据? .数据需要保持多长时间? .数据集有多大? 通过回答这些问题,你能决定哪个对象为保持ASP.NET应用程序请求间数据提供了最佳的解决方案.图1列出了不同的状态管理对象并描述了什么时候使用它们.ASP.NET中添加了四个新的对象:Cache.Context.ViewState和Web

Asp.NET MVC 使用 SignalR 实现推送功能二(Hubs 在线聊天室 获取保存用户信息)

简单介绍 关于SignalR的简单实用 请参考 Asp.NET MVC 使用 SignalR 实现推送功能一(Hubs 在线聊天室) 在上一篇中,我们只是介绍了简单的消息推送,今天我们来修改一下,实现保存消息,历史消息和用户在线 由于,我这是在一个项目([无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目 目录索引)的基础上做的,所以使用到的一些借口和数据表,不详细解析,只是介绍一下思路和实现方式,供大家参考 用户登录注册信息 当用户登录之后,我们注册一下用户的信息,我们

CAS学习笔记(三)—— SERVER登录后用户信息的返回

一旦CAS SERVER验证成功后,我们就会跳转到客户端中去.跳转到客户端去后,大家想一想,客户端总要获取用户信息吧,不然客户端是怎么知道登录的是哪个用户.那么客户端要怎么获取用户信息呢? 其实验证成功,跳转客户端这个过程中,CAS SERVER 会返回登录的相关信息给客户端,客户端只要进行获取,就能知道登录的具体是哪个用户了.不过CAS 默认只返回用户账号给客户端,那么怎么定义CAS SERVER返回的信息呢? 这就是本篇具体讲解的内容了,大家听我慢慢道来. 相关接口            

【SSO单点系列】(4):CAS4.0 SERVER登录后用户信息的返回

接着上一篇,在上一篇中我们描述了怎么在CAS SERVER登录页上添加验证码,并进行登录.一旦CAS SERVER验证成功后,我们就会跳转到客户端中去.跳转到客户端去后,大家想一想,客户端总要获取用户信息吧,不然客户端是怎么知道登录的是哪个用户.那么客户端要怎么获取用户信息呢? 其实验证成功,跳转客户端这个过程中,CAS SERVER 会返回登录的相关信息给客户端,客户端只要进行获取,就能知道登录的具体是哪个用户了.不过CAS 默认只返回用户账号给客户端,那么怎么定义CAS SERVER返回的信

【SSO单点系列】(4):CAS SERVER登录后用户信息的返回

接着上一篇,在上一篇中我们描述了怎么在CAS SERVER登录页上添加验证码,并进行登录.一旦CAS SERVER验证成功后,我们就会跳转到客户端中去.跳转到客户端去后,大家想一想,客户端总要获取用户信息吧,不然客户端是怎么知道登录的是哪个用户.那么客户端要怎么获取用户信息呢? 其实验证成功,跳转客户端这个过程中,CAS SERVER 会返回登录的相关信息给客户端,客户端只要进行获取,就能知道登录的具体是哪个用户了.不过CAS 默认只返回用户账号给客户端,那么怎么定义CAS SERVER返回的信

Android Twitter第三方登录&amp;获取用户信息

Android接入Twitter先是去了Twitter的开发者网站,发现太麻烦,不太适用目前项目,转而接入了Twitter为java提供的twitter4j的jar包. 以下为接入Twitter4j的一些经验 官网地址:http://twitter4j.org/en/index.html#sourceCode 其中提供了jar包下载链接 Download 分为两个版本 ?Latest stable version (稳定版) ?Latest snapshot build (快照版) 快照版应该是