做項目時,可能會將某些信息保存在session中,如登錄等信息,這樣方便在某些頁面使用這些保存的信息。
要想保存這些信息,需要創建一個類,該類里面定義需要保存的變量等信息,當登錄后就通過new一個該類來保存登錄等信息,然后放在session中,需要用到這些信息時直接用例如EL表達式等取出來就OK了。例子如下:
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>
- 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>
- <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>
- <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
- <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>