问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

Jsp页面之间可以怎样相互传递数据?

提问网友 发布时间:2022-04-20 10:39
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
4个回答
懂视网 回答时间:2022-05-15 14:43

JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数,下面这篇文章主要给大家介绍了关于JSP页面间传值方法的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,对JSP感兴趣的朋友们下面来一起看吧。

前言

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

1. URL 链接后追加参数

<a href="next.jsp?paramA=A¶mB=B..." rel="external nofollow" >URL 后面追加参数</a>

<jsp:include page="next.jsp"><jsp:param name="paramA" value="A"/></jsp:include> 

<jsp:forward page="next.jsp"><jsp:param name="paramA" value="B"/></jsp:forward> 

response.sendRedirect("next.jsp?paramA=A¶mB=B...")

window.location = "next.jsp?paramA=A¶mB=B..."

上述几种代码执行时都将携带参数跳转到 next.jsp 页面中。

在 next.jsp 页面中获取对应参数的方式如下:

//内嵌的 java 代码
<%String paramA = request.getParameter("paramA"); %>

//如果引入了 EL
{param.paramA}

优点:简单性和多浏览器支持(没有浏览器不支持URL)。

缺点:

1)传输的数据只能是字符串,对数据类型和大小都有一定的限制;

2)传输数据的值会在浏览器地址栏里面被看到,安全性等级低。

2. Form

 <form action="next.jsp" method="post"> 
 <input type="text" name="paramA" value="A"> 
 <input type="hidden" name="paramB" value="B"> 
 <input type="submit" value="提交"> 
 </form>

在 next.jsp 页面中获取对应参数的方式与 (1)是类似的。

优点:

1)简单性和多浏览器支持(同样没有浏览器不支持 form);

2) 可以提交的数据量比 URL 方式要大的多;

3)传输的值会在浏览器的地址栏中显示出来,但是有一点黑手段的同样能从页面源码中将参数列表构造出来;

缺点:

1)传输的数据也只能是字符串,对数据类型有一定的限制;

3. 设置 Cookie

用客户端的认证凭证小小 Cookie 当然也能实现 JSP 页面的传值。

 <% 
 Cookie c=new Cookie("paramA","A"); 
 c.setMaxAge(60*60); //cookie 有效期1分钟
 response.addCookie(c); //将cookie 添加到 http响应中
 %>

想要在 next.jsp 页面读取 cookie,需要调用 request.getCookies() 方法来获得一个javax.servlet.http.Cookie 对象的数组。

然后遍历这个数组,使用getName()方法和getValue()方法来获取每一个cookie的名称和值。

//内嵌的 java 代码
<%
 Cookie cookie = null;
 // 获取cookies的数据,是一个数组
 Cookie[] cookies = request.getCookies();
 if(cookies != null ){
 for (int i = 0; i < cookies.length; i++){
 cookie = cookies[i];
 out.print("参数名 : " + cookie.getName());
 out.print("<br>");
 out.print("参数值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" <br>");
 out.print("------------------------------------<br>");
 }
 }else{
 out.println("<h2>没有发现 Cookie</h2>");
 }
%>

//EL 获取方式
${cookie.paramA.value}

优点:

1)Cookie 的值能够持久化,即使客户端机器关闭,下次打开还是可以得到里面的值;

2) Cookie 可以帮助服务器端保存多个状态信息,但是不用服务器端专门分配存储资源,减轻了服务器端的负担。

缺点:

1)虽然安全性相比 URL 和 Form 要提高了许多,但是也存在黑手段获取客户端 cookie,暴露客户信息。

4. 设置 Session

个人认为 session 和 cookie 一个在服务端一个在客户端。

在它们中添加键值对后,不仅仅是提供了页面之间的传递,其实是一种数据共享的解决方案。

 <% 
 session.setAttribute("paramA","A"); 
 response.sendRedirect("next.jsp"); 
 %>

想要在 next.jsp 读取 session 的方法:

//内嵌java 片段
<%=session.getAttribute("paramA") %>

//EL 获取方式
{session.paramA}

Session 的优缺点可以参照 Cookie。

热心网友 回答时间:2022-05-15 11:51
jsp传值给另一个jsp页面,主要的方式是将数据放在request对象中,然后在另一个页面拿到这个数据即可,代码如下:
A.jsp :通过post 和get、连接都可以传
post和get 就不提了。

连接的:
<a herf='B.jsp?name=<%=name%>'>传递到B页面</a>

B.jsp :
B页面通过如下代码接收
<%
String name=request.getParameter("name");
out.println("接收到:"+name);
%>
热心网友 回答时间:2022-05-15 13:09
1.通过form提交
<form action="b.jsp" method="post">
<input type="hidden" name="transferData" value="123"/>
</form>
2.通过链接
<a href="b.jsp?transferData=123" >b.jsp</a>
3.通过session
a.jsp:session.setAttribute("transferData","123");
b.jsp:String data = (String)session.getAttribute("transferData");
热心网友 回答时间:2022-05-15 14:44
request.getParameter("");

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

相关推荐
  • JSP页面间的传值方法总结

    JSP页面间的传值方法总结

    JSP页面间的传值方法总结:JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数,下面这篇文章主要给大家介绍了关于JSP页面间传值方法的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,对JSP感兴趣的朋友们下面来一起看吧。前言JSP 页面间传递
    查看详情
梦见自己在路上走路的里边很大很堵的山 梦见自己在大马路边洗头 梦见自己在大马路上下水道旁煮菜是什么意思? 梦见自己跟孩子在大马路边 梦见自己睡在大马路边,大腿两侧是血,,路人指指点点? 梦见在马路中间好多的蛇绕一大圈,上面坐着一只大... 梦见自己在开车,道路崎岖不平还有很多大石头在路... 梦见熟人脱了鞋在大马路中间自己补鞋 梦见我自己在一条大马路上骑着单车总是到不了尽头 周公解梦自己的车停在马路中间挡住了路 梦见下雨我自己站在马路中间 周公解梦大全查询梦到自已躺在路中央 梦到自己在马路中间走,往后看发洪水了自己在在水... 梦见自己睁不开眼站在大马路中间 如何查看微博关注的新鲜事 微博下出现新鲜事 如何把自己看到的新鲜事发表到微博上去,让别人都... 微博文章被选为新鲜事,可是左下角为什么没有显示... 微博新鲜事是自己发的时候加吗还是说发了微博以后 ... 微博新鲜事在哪里找 jsp页面传值给另一个jsp页面,怎么接收 jsp页面传值有哪些方式 jsp中页面间对象传递的方法有哪几种? jsp 页面间传值有几种方式?分别是哪几种? jsp 怎么用java和jsp传值 JSP页面如何从一个页面传递一个参数到另外一个页面。 jsp传递参数问题 jsp页面如何接受和传值 jsp给js传值怎么传 如何向一个jsp传递两个以上的参数 java 中jsp页面传值有几种方法。是哪些。怎么写? 关于jsp传值 jsp如何传递一个值到另一张页面? jsp如何将一个一面的数据传到另一个页面 从jsp页面跳转到另一个jsp页面怎么传递参数 jsp 的传值 jsp与java文件怎么传递数据? jsp页面间传值有几种方式?分别是哪几种? jsp怎么接受另一个jsp传过来的值 QQ发出的信息怎么删除?
Top