很多的时候我们只是把我们需要的数据,查询出来,然后用request.setAttribute("" ,"" )方法保存这个数据集合。再在我们能跳转到的下一个jsp页面把我们之前保存的数据从request.getAttribut().拿出来,用于显示用。

但是当我们还希望把这个数据继续传递到下一个jsp页面的时候,我们应该怎么去做呢。

第一个方法:隐藏字段
在jsp页面中用一个隐藏字段,比如<input type="hidden" id="", name="xxx", value="<%=valuetoPass%>">.这样你我们就可以在本次请求的时候,用request.getParameter("xxx");来拿到这个字段了。这个方法是可以的。但是如果我们要传递一个Map或者List这样的集合类型的数据结构到下一个页面呢。因为request.getParameter只能得到String字段,这个时候我们就不能用隐藏字段了。

于是

第二个方法就是:session

很多的时候我们都会在面试的时候被问到这个问题,所以我们就这个方法来做一下。

之前一直以为放在request里也是可以的,但是我在实际的操作过程中并没有成功。比如:

一个请求过来之后,我们拿到了产品列表信息。现在我们要把产品信息按产品类别分类,并把这些分类信息发放在一个Map里面。如:A类产品有:111,222,333三种,我们就把111,222,333这三个产品放到一个list里面,然后,把这个list按照A的key保存在Map里。即Map.put(“A”, list)。这样我们在要跳转到的jsp页面就能够按产品类型进行分类取值了。

好了,现在我们把准备好的map放在request.setAttribute("map", map), 然后页面跳转到了test1.jsp, 这样我们就可以在test1.jsp页面拿到我们要的数据。然后,再当我们要把这个map集合传递到test2.jsp页面的时候,很显然的一个想法就是再把这个map在request里set一遍就可以了。即

Map<String, List<TproductInfo>> catMap = (Map<String, List<TproductInfo>>) request.getAttribute("catMap");
request.setAttribute("catMap", catMap);

然后请求处理中,还未跳转到test2.jsp页面之前。

request.getAttribute("catMap")

这样子是取不到值的。

但是如果你这样子

Map<String, List<TproductInfo>> catMap = (Map<String, List<TproductInfo>>) request.getAttribute("catMap");
session.setAttribute("catMap", catMap);

然后在后台

Map<String, List<TproductInfo>> catMap = (Map<String, List<TproductInfo>>) request.getSession().getAttribute("catMap");

就能取到值。

第三:还可能从jsp:param的jsp指令来传,这个暂时没有去试过。

jsp页面间的传值的更多相关文章

  1. JSP页面间的传值方法总结

    JSP 页面间传递参数是项目中经常需要的,这应该算是 web 基本功吧.试着将各种方式总结下来,需要时可以进行权衡利弊选择最合适的方式.下面来一起看看详细的介绍: 1. URL 链接后追加参数 ? 1 ...

  2. jsp页面间的传值方法

    JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...

  3. jsp页面间传递参数 中文乱码问题(zz)

      jsp页面间传递参数 中文乱码问题 1.传递参数 var url = "*****Test.jsp?param1="+encodeURI(encodeURI(str));//对 ...

  4. 使用Block来进行页面间的传值

    Block语法 定义Block //定义类型 typedef void (^ReceiveMessageBlock)(NSString *); //申明变量 ReceiveMessageBlock t ...

  5. JSP页面间传递参数的5种方法

    JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...

  6. jsp页面间对象传递方法

    严格的来说不能叫做JSP页面间的对象传递,实际应该是页面间对象共享的方法: 1. 通过servletcontext,也就是application对象了,但这种情况要求在同一个web应用下,      ...

  7. jsp 页面间传递参数

    JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...

  8. HTML5 Web存储 页面间进行传值

    在实际使用过程中,经常会遇到需要在页面间进行传值的情况,最初设想一定需要后端才能进行数据的存储和读取,或者在本地使用一个cookie进行保存,直到了解到HTML5 Web存储 使用HTML5的新特性可 ...

  9. B/S结构中页面间的传值

    常见的页面间的传值有session,cookie,application,server.transfer(),queryString,今天主要记录一下server.transfer()的用法. 从A页 ...

随机推荐

  1. Solr In Action 笔记(1) 之 Key Solr Concepts

    Solr In Action 笔记(1) 之 Key Solr Concepts 题记:看了下<Solr In Action>还是收益良多的,只是奈何没有中文版,只能查看英语原版有点类,第 ...

  2. 机器学习(1)之梯度下降(gradient descent)

    机器学习(1)之梯度下降(gradient descent) 题记:最近零碎的时间都在学习Andrew Ng的machine learning,因此就有了这些笔记. 梯度下降是线性回归的一种(Line ...

  3. mobox:推进企业文档管理走向信息化之路

    随着“大数据”时代的到来,越来越多的人们对数据库管理信息抱有认可态度,这是近年来信息化发展的必然结果.企业作为推进社会经济发展的主力军,也必然要紧跟大数据时代潮流,利用计算机技术全面普及企业的信息化管 ...

  4. jquery validate 自定义验证方法 日期验证

    jquery validate有很多验证规则,但是更多的时候,需要根据特定的情况进行自定义验证规则. 这里就来聊一聊jquery validate的自定义验证. jquery validate有一个方 ...

  5. 最小费用最大流MCMF zkw费用流

    稀疏图慢死了...但是稠密图效果还是很好的 struct MCMF{ struct tedge{int x,y,cap,w,next;}adj[maxm];int ms,fch[maxn]; int ...

  6. 创建一个Android工程

    Creating an Android Project 原文演示了怎么通过Android Studio和命令行两种方式来创建一个Android工程. 原文链接:http://developer.and ...

  7. C++ —— 非常量引用不能指向临时对象

    目录 举例 分析 解决 1.举例 非常量引用 指向 临时对象 —— 即:将 临时对象 传递给 非常量引用类型. 如以下情况就会出现: 实现实数Rational类,实数可以使用+号相加,运算的结果要可以 ...

  8. SKKeyframeSequence类

    继承自 NSObject 符合 NSCodingNSCopyingNSObject 框架  /System/Library/Frameworks/SpriteKit.framework 可用性 可用于 ...

  9. Android-Uiautomator:[5]停止monkey测试

    方法/步骤 1 其实停止很简单,无非就是结束掉monkey的进程即可 如何停止呢 2 ps命令  查找uiautomator的进程 打开cmd命令行窗口 输入: adb shell ps | grep ...

  10. Windows 驱动开发 - 5

    上篇<Windows 驱动开发 - 4>我们已经完毕了硬件准备. 可是我们还没有详细的数据操作,比如接收读写操作. 在WDF中进行此类操作前须要进行设备的IO控制,已保持数据的完整性. 我 ...