很多的时候我们只是把我们需要的数据,查询出来,然后用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. 转:如何查看linux版本 如何查看LINUX是多少位

    原文来自于:http://blog.csdn.net/hongweigg/article/details/7192471 一.如何得知自己正在使用的linux是什么版本呢,下面的几种方法将给你带来答案 ...

  2. MVC form post 传值

    http://www.cnblogs.com/firstcsharp/archive/2013/08/05/3238321.html @using (Html.BeginForm())参数示例 MVC ...

  3. VS2013下的Nmake编译链接成win XP的可执行程序

    nmake下没有指定toolset=vc120_xp等类似物.但是,可以指定Link.exe的链接参数,指定子系统就可以了,/SUBSYSTEM:[WINDOWS | CONSOLE],5.01 5. ...

  4. 线程通信机制:共享内存 VS 消息传递

    在并发编程中,我们必须考虑的问题时如何在两个线程间进行通讯.这里的通讯指的是不同的线程之间如何交换信息. 目前有两种方式: 1.共享内存 2.消息传递(actor 模型) 共享内存: 共享内存这种方式 ...

  5. MyEclipse10 中增加svn插件

    http://www.cnblogs.com/bluesky4485/archive/2012/04/23/2467177.html 确实这种方法可行!向牛人学习!

  6. 学渣上手 LaTeX 完成毕业论文

    学渣上手 LaTeX 完成毕业论文 作为一个标准的学渣,虽然经历了一系列变故但最终还是使用 LaTeX 完成了我的毕业论文.要问我感想的话,就是——如果没有做好迎接比较陡峭的学习曲线以及各种打击人的小 ...

  7. 那些SQL语句

    根据book_id,class_id确定老师uid select user_id from lessons left join book on lessons.lesson_id = book.les ...

  8. HDOJ 1163 Eddy's digital Roots 九余数定理+简单数论

    我在网上看了一些大牛的题解,有些知识点不是太清楚, 因此再次整理了一下. 转载链接: http://blog.csdn.net/iamskying/article/details/4738838 ht ...

  9. LoadRunner基础入门教程

    原文地址:http://jingyan.baidu.com/article/215817f7dedfb01eda1423df.html 从LoadRunner英语字面上进行理解就是负载跑步者,为什么这 ...

  10. c宏的MAX函数

    今天从香山上面回来累的跟傻逼一样,回来问了一下胡总的阿里面试的问题.然后其中有一个是宏写max函数.胡总说不好写,然后我就去洗澡了. 洗澡的时候感觉不对啊,回来写了一个: #define MAX(a, ...