在网上查找了很多关于jQuery获取session都不可得,如果大家有更好的方式,欢迎留言
这里是使用jQuery发送Ajax请求到后台获取session
jsp中没有代码
js代码
controller代码
存储session的代码
@RequestMapping(value="/",method=RequestMethod.GET) public String sayHello(HttpSession session){ Listusers = loginService.selectAll(); session.setAttribute("users", users); return "login"; }
获取session的代码
//指定url地址,与上述的Ajax发送请求的url要一致;指定请求方式,与上述的Ajax请求的type要一致 @RequestMapping(value="/getSession",method=RequestMethod.GET) //加@ResponseBody是为了可以返回json数据 @ResponseBody public Msg getSession(HttpSession session){ //取得之前添加的session数据 Listusers = (List ) session.getAttribute("users"); //将session的数据放在自定义的msg类中,下面会展示该类 return Msg.success().add("userSession", users); }
Msg.java
import java.util.HashMap;import java.util.Map;/** * 通用的返回类 * @author ws * */public class Msg { /** * 状态码 * 100:成功 * 200:失败 */ private int code; /** * 提示信息 */ private String msg; /** * 用户要返回给浏览器的数据 */ private Mapdata = new HashMap (); public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public Map getData() { return data; } public void setData(Map data) { this.data = data; } /** * 处理成功 * @return */ public static Msg success(){ Msg msg = new Msg(); msg.setCode(100); msg.setMsg("处理成功"); return msg; } /** * 处理失败 * @return */ public static Msg fail(){ Msg msg = new Msg(); msg.setCode(200); msg.setMsg("处理失败"); return msg; } /** * 以键值对添加数据 * @param key * @param value * @return */ public Msg add(String key, Object value) { this.getData().put(key, value); return this; } }
这样,在浏览器控制台(一般按F12即可打开)就可以看到效果了
至此大功告成
大家如果有可以不适用ajax的方式即可取得session,欢迎留言,共同探讨