使用jQuery获取session中存储的list集合
在网上查找了很多关于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集合的更多相关文章
- 获取session中存储的所有值的方法
记录一个获取系统中session存储的对象都有哪些的方法 HttpSession session = request.getSession(); for ( Enumeration e = sessi ...
- jquery在元素中存储数据:data()
转自:http://www.php.cn/js-tutorial-405445.html 在元素中存储数据:data() 1 2 3 4 5 6 7 8 9 10 <!DOCTYPE html& ...
- jsp获取Session中的值
摘要:这个问题算是老生常谈了,我也是一段时间没弄过了,所以感觉有些忘了,就记录一下. 一.后端通过shiro在session中存储数据: // username是前台传过来的用户名 if (subje ...
- Js/Jquery获取iframe中的元素
转载: Js/Jquery获取iframe中的元素 - - ITeye技术网站http://java-my-life.iteye.com/blog/1275205 在web开发中,经常会用到ifram ...
- javaWeb遍历获取session中的值
//方法一:通过遍历的方法进行遍历 String FileName=""; HttpSession session=request.getSession();//获取session ...
- 使用jquery获取网页中图片的高度——解惑
jQuery获取网页中图片的高度 使用jquery获取网页中图片的高度其实很简单,有两种常用的方法都可以打到我们的目的 $("img").whith();(返回纯数字) $(&qu ...
- JS或jsp获取Session中保存的值
JS是不能读取Session中的值的 . session是服务器对象, javascript是客户端脚本,你能做的操作就是把这个值用 <%=%>输出到页面的javascript中参与运算, ...
- 302重定向之后,session中存储的值没了
302重定向之后,session中存储的值没了
- js获取cookie中存储的值
最近看了试卷题目发现自己会的十分的匮乏, 第一题就把自己难住了,知道有这个东西,但是实际上没有操作过. ========================================= cookie ...
随机推荐
- vmware虚拟机各个版本的安装破解(附安装包和注册机)
VMware 是平时我们常用的虚拟机软件,特别是我们平时想试试其他的系统,比如说linux系统的时候但是又不想安装双系统,那么这个时候我们就可以试试这款虚拟软 件,如果你的电脑配置(主要是内存)够好的 ...
- 自定义MVC框架---第一章
MVC基本介绍 介绍: mvc是一种编程思想,用来解决开发项目的时候,代码如何编写,项目如何架构的问题,更具体一点就是解决多人协同开发时,如何分工协作的问题,从而提升开发效率 举一个例子:有一个人想 ...
- delphi简单的分页实现(高手可以不看)
适合初学者,练习几个控件的使用 1.先放一张界面控件布局: 4个button,2个label,1个edit,1个TRzsplitter(把界面分割成上下2部分),1一个adoquery,1个adoco ...
- 设计模式——建造者模式/生成器模式(C++实现)
#include <iostream> #include <string> using namespace std; class STProduct { public: voi ...
- passwd命令使用
2018-03-01 10:01:06 例1:passwd username 直接修改用户的密码普通用户可以且只能修改自己的密码,root用户可以修改任何人的密码[root@localhost ~] ...
- NEO从入门到开窗(1) - 一个智能合约的诞生
一.啰嗦两句 最近一直都在研究区块链,BitCoin,Etherenum, Hyper Ledger Fabric还有今天的主角小蚂蚁,当然出名以后改了一个艺名叫NEO.区块链大部分都是用Golang ...
- windows下安装mongoDB以及配置启动
1.下载MongoDB的windows版本,有32位和64位版本,根据系统情况下载,下载地址:http://www.mongodb.org/downloads 2.解压缩至D:/mongodb即可 3 ...
- express+mysqle
var mysql=require('mysql'); var connection=mysql.createConnection({ host:'',//地址 port:'',//端口号 user: ...
- python web开发-flask连接sqlite数据库
在之前的文章中我们介绍了如何在centOS中安装sqlite数据库. Sqlite安装完成后,本节就用flask来连接和操作sqlite数据库. 1. 数据准备 先在sqlite3中创建一 ...
- 功能测试很low?不能升级到高级测试工程师?
功能测试很low?不能升级到高级测试工程师? 功能测试很low?功能测试很简单?功能测试就是黑盒测试?功能测试没有技术含量?功能测试工资低?只会功能测试没有竞争力?功能测试这活初中生都可以干?功能测试 ...