在网上查找了很多关于jQuery获取session都不可得,如果大家有更好的方式,欢迎留言

这里是使用jQuery发送Ajax请求到后台获取session

jsp中没有代码

js代码

<script type="text/javascript">
//这里是一个私有方法,用来获取项目根路径,这个方法在js的最底部,有兴趣的可以查看
var basePath = getRootPath();
$(function(){
  //使页面刚加载完成就去取得session
getSession();
});function getSession(){
$.ajax({
url:basePath + "/getSession",
type:"GET",
async:false,//false代表只有在等待ajax执行完毕后才执行
success:function(result){
       //这里在控制台将session数据打印出来
console.log(result);
       //如果要取list中具体的数据,可以点其下的内容依次取得,具体的可以看控制台打印的内容,那个层次很清晰
/* console.log(result.data);
console.log(result.data.userSession);
console.log(result.data.userSession[0]); */
}
});
} /**
* 获取项目根路径,如: http://localhost:8083/ssm-dynamic
* @returns
*/
function getRootPath(){
//获取当前网址,如: http://localhost:8083/ssm-dynamic/jsp/jsonList.jsp
var curWwwPath=window.document.location.href;
//获取主机地址之后的目录,如: ssm-dynamic/jsp/jsonList.jsp
var pathName=window.document.location.pathname;
var pos=curWwwPath.indexOf(pathName);
//获取主机地址,如: http://localhost:8080
var localhostPaht=curWwwPath.substring(0,pos);
//获取带"/"的项目名,如:/ssm-dynamic
var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1);
return(localhostPaht+projectName);
}
</script>

controller代码

存储session的代码

@RequestMapping(value="/",method=RequestMethod.GET)
public String sayHello(HttpSession session){
List<User> users = 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数据
List<User> users = (List<User>) 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 Map<String, Object> data = new HashMap<String,Object>(); 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<String, Object> getData() {
return data;
}
public void setData(Map<String, Object> 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,欢迎留言,共同探讨

使用jQuery获取session中存储的list集合的更多相关文章

  1. 获取session中存储的所有值的方法

    记录一个获取系统中session存储的对象都有哪些的方法 HttpSession session = request.getSession(); for ( Enumeration e = sessi ...

  2. jquery在元素中存储数据:data()

    转自:http://www.php.cn/js-tutorial-405445.html 在元素中存储数据:data() 1 2 3 4 5 6 7 8 9 10 <!DOCTYPE html& ...

  3. jsp获取Session中的值

    摘要:这个问题算是老生常谈了,我也是一段时间没弄过了,所以感觉有些忘了,就记录一下. 一.后端通过shiro在session中存储数据: // username是前台传过来的用户名 if (subje ...

  4. Js/Jquery获取iframe中的元素

    转载: Js/Jquery获取iframe中的元素 - - ITeye技术网站http://java-my-life.iteye.com/blog/1275205 在web开发中,经常会用到ifram ...

  5. javaWeb遍历获取session中的值

    //方法一:通过遍历的方法进行遍历 String FileName=""; HttpSession session=request.getSession();//获取session ...

  6. 使用jquery获取网页中图片的高度——解惑

    jQuery获取网页中图片的高度 使用jquery获取网页中图片的高度其实很简单,有两种常用的方法都可以打到我们的目的 $("img").whith();(返回纯数字) $(&qu ...

  7. JS或jsp获取Session中保存的值

    JS是不能读取Session中的值的 . session是服务器对象, javascript是客户端脚本,你能做的操作就是把这个值用 <%=%>输出到页面的javascript中参与运算, ...

  8. 302重定向之后,session中存储的值没了

    302重定向之后,session中存储的值没了

  9. js获取cookie中存储的值

    最近看了试卷题目发现自己会的十分的匮乏, 第一题就把自己难住了,知道有这个东西,但是实际上没有操作过. ========================================= cookie ...

随机推荐

  1. AI行业需要什么样的人才

    自AI人工智能诞生以来,它的领域逐步扩大,技术层面也越来越多样化,投身于该领域的人才也越来越多,那么AI行业到底需要什么样的人才?我们应该如何定位自己,找到适合的领域?3月8日晚,在飞马网线上直播中, ...

  2. canvas 绘制图形

    canvas 绘制图形: 注意: canvas 的宽高设置在行内,否则会使画布(canvas)产生扭曲,绘图变形: <!DOCTYPE html> <html lang=" ...

  3. VMware Workstation 学习笔记

    1. 什么是虚拟机:虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的.可以运行在一个完全隔离环境中的完整计算机系统. 2. 虚拟机的用途:测试软件.搭建某种特定需求的环境 ...

  4. 部署wcf出现的问题与解决方法

    我将本机作为服务器开发时,没出什么问题,将wcf服务端寄缩到另一台电脑上时,出现了一些问题,这里总结下: 1.wcf服务器和另一个网站应用出问题 服务器的iis上有一个网站应用,当我将wcf服务寄缩到 ...

  5. EOS 新增的 WebAssembly 解释器,是什么鬼?

    Daniel Larimer 在最近的博客中透露,EOS 新增了官方的 WebAssembly 解释器,用来解释执行 WebAssembly 智能合约,加上之前的编译执行,EOS 智能合约有了两种执行 ...

  6. 深入java虚拟机学习 -- 内存管理机制

    前面说过了类的加载机制,里面讲到了类的初始化中时用到了一部分内存管理的知识,这里让我们来看下Java虚拟机是如何管理内存的. 先让我们来看张图 有些文章中对线程隔离区还称之为线程独占区,其实是一个意思 ...

  7. 使用枚举enum

    枚举可以把常量按照类别组织起来, 并且提供了构造方法和其他访问方法 用法: package com.nel.testPro.useage.use_enum; public enum Color imp ...

  8. TortoiseGit- 创建本地新分支,提交推送到远程,本地新分支合并到工作分支,提交到远程工作分支等。

    整体思路: 创建本地新分支 (create branch)  -- 切换到本地新分支工作 (switch/checkout) --提交修改 (commit)  -- 推送到远程新分支 (push)  ...

  9. [POJ1631] nlogn求LIS

    用到了algorithm自带的lower_bound函数进行二分查找 #include<cstdio> #include<cstring> #include<algori ...

  10. 巧用linux版powershell,管理linux下的docker

    大家好,我把用powershell的docker马甲命令的好处,放在了页面下方,从第五章开始. powershell 传教士 原创文章 始于 2017-09-07 允许转载,但必须保留名字和出处,否则 ...