很多的时候我们只是把我们需要的数据,查询出来,然后用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页面间的传值的更多相关文章
-
JSP页面间的传值方法总结
JSP 页面间传递参数是项目中经常需要的,这应该算是 web 基本功吧.试着将各种方式总结下来,需要时可以进行权衡利弊选择最合适的方式.下面来一起看看详细的介绍: 1. URL 链接后追加参数 ? 1 ...
-
jsp页面间的传值方法
JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...
-
jsp页面间传递参数 中文乱码问题(zz)
jsp页面间传递参数 中文乱码问题 1.传递参数 var url = "*****Test.jsp?param1="+encodeURI(encodeURI(str));//对 ...
-
使用Block来进行页面间的传值
Block语法 定义Block //定义类型 typedef void (^ReceiveMessageBlock)(NSString *); //申明变量 ReceiveMessageBlock t ...
-
JSP页面间传递参数的5种方法
JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...
-
jsp页面间对象传递方法
严格的来说不能叫做JSP页面间的对象传递,实际应该是页面间对象共享的方法: 1. 通过servletcontext,也就是application对象了,但这种情况要求在同一个web应用下, ...
-
jsp 页面间传递参数
JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...
-
HTML5 Web存储 页面间进行传值
在实际使用过程中,经常会遇到需要在页面间进行传值的情况,最初设想一定需要后端才能进行数据的存储和读取,或者在本地使用一个cookie进行保存,直到了解到HTML5 Web存储 使用HTML5的新特性可 ...
-
B/S结构中页面间的传值
常见的页面间的传值有session,cookie,application,server.transfer(),queryString,今天主要记录一下server.transfer()的用法. 从A页 ...
随机推荐
-
jQuery插件开发代码
方法和原理在这篇博文中非常详细易懂 http://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html 下面整理下基本知识点和基本的代码段: jQue ...
-
又是一周-AJAX(三)
hi 我又食言了,但我还是厚颜无耻的回来了... 1.AJAX(三) 三.AJAX的简单的例子 3.1 简介 完成:查询员工信息,通过输入员工编号查询员工的基本信息+新建员工的信息,包含员工姓名,编号 ...
-
soap和http的区别
Http get,post,soap协议都是在http上运行的1)get:请求参数是作为一个key/value对的序列(查询字符串)附加到URL上的查询字符串的长度受到web浏览器和web服务器的限制 ...
-
scp noneed passwd
经常在不同linux机器之间互相scp拷文件,每次总是要输入密码才可行. 通过ssh-keygen生成公钥,在两台机器之间互相建立信任通道即可. 假设本地机器client,远程机器为server. 1 ...
-
在C++中调用DLL中的函数 (2)
应用程序使用DLL可以采用两种方式: 一种是隐式链接,另一种是显式链接.在使用DLL之前首先要知道DLL中函数的结构信息. Visual C++6.0在VC\bin目录下提供了一个名为Dumpbin. ...
-
关于java的JIT知识
1.JIT的工作原理图 工作原理 当JIT编译启用时(默认是启用的),JVM读入.class文件解释后,将其发给JIT编译器.JIT编译器将字节码编译成本机机器代码. 通常javac将程序源码编译, ...
-
HBase-java api 基本操作
使用的是完全分布式,详细信息为: 操作的Java 代码(抄的别人的) package org.admln.hbase; import java.util.ArrayList; import java. ...
-
char *s = getpass()屏幕不回显示 ,返回输入的字符
char *s = getpass(“please input you name:”)屏幕不回显示 ,返回输入的字符
-
Python之 Virtualenv简明教程
virtualenv通过创建独立Python开发环境的工具, 来解决依赖.版本以及间接权限 问题. 比如一个项目依赖Django1.3 而当前全局开发环境为Django1.7, 版本跨度过大, 导致不 ...
-
ios 百度地图使用
第一步.引入 1.下载SDK 地址http://developer.baidu.com/map/index.php?title=iossdk/sdkiosdev-download 2.解压出Baid ...