JSP 页面间传递参数是项目中经常需要的,这应该算是 web 基本功吧。

试着将各种方式总结下来,需要时可以进行权衡利弊选择最合适的方式。

1. URL 链接后追加参数

URL 后面追加参数

response.sendRedirect("next.jsp?paramA=A&paramB=B...")

window.location = "next.jsp?paramA=A&paramB=B..."

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

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

//内嵌的 java 代码//如果引入了 EL

{param.paramA}

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

缺点:

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

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

2. Form

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

优点:

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

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

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

缺点:

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

3. 设置 Cookie

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

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[] cookies=request.getCookies();if(cookies != null){for(inti= 0; i

cookie=cookies[i];

out.print("参数名 :" +cookie.getName());

out.print("
");

out.print("参数值:" +URLDecoder.decode(cookie.getValue(),"utf-8")+"
");

out.print("------------------------------------
");

}

}else{

out.println("

没有发现 Cookie

");

}%>//EL 获取方式

${cookie.paramA.value}

优点:

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

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

缺点:

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

4. 设置 Session

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

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

response.sendRedirect("next.jsp");%>

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

//内嵌java 片段//EL 获取方式

{session.paramA}

Session 的优缺点可以参照 Cookie。

java jsp页面传值_JSP 页面传值方法总结相关推荐

  1. java jsp 跳转_JSP页面跳转方法大全

    先来介绍一下在服务端JSP脚本中跳转页面的几种方法: 1. response.sendRedirct("跳转到页面"); 该方法通过修改HTTP协议的HEADER部分,对浏览器下达 ...

  2. java jsp 跳转_JSP 页面跳转的实现方法

    客户端跳转 1. 使用 href 超链接标记  跳转 2. 使用表单提交完成跳转 ... 3. 使用 JavaScript 4. 使用 response.sendRedirect(String pat ...

  3. java jsp 传值_jsp页面间的传值方法

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

  4. java ee页面间怎么传值_jsp页面间常见的几种传值方式

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

  5. java jsp学习指南_JSP教程–最终指南

    java jsp学习指南 编者注: JavaServer Pages(JSP)技术使您可以轻松创建同时包含静态和动态组件的Web内容. JSP技术提供了Java Servlet技术的所有动态功能,但提 ...

  6. java 页面之间传值_JSP页面间传值方法

    JSP页面间传值方法[@more@] a:最常用的方法是用form中的text, ,然后在b.jsp页面中这样获取 String username=request.getParameter(" ...

  7. java获取jsp页面参数_jsp页面中获取servlet请求中的参数方法总结

    jsp页面中获取servlet请求中的参数的办法详解 在JAVA WEB应用中,如何获取servlet请求中的参数,并传递给跳转的JSP页面?例如访问http://localhost:8088/bbs ...

  8. java jsp if else if_jsp页面使用if else语句 | 学步园

    jsp页面嵌入java语句使用即可,但是在使用if else语句时一定要注意使用是标点的使用,在语句中分号不能写,不符合jsp页面的语法规则,若多写了则会报错:如下: {name: 'priceRA' ...

  9. 不属于jsp构成元素_JSP 页面中不能包含脚本元素。( )_学小易找答案

    [单选题]<悬崖边的树>一诗的作者是 _______________ . [填空题]根据四川省建筑工程定额,机械挖土外运时,外运距离不扣除( ). [单选题]<在一个地铁车站> ...

最新文章

  1. 模板 -计算几何注意事项
  2. C# 消息处理学习总结
  3. Python图像处理库PIL -- 学习资源
  4. 吴裕雄 python 神经网络——TensorFlow 图、张量及会话
  5. 理解Node.js(译文)
  6. 一个java文件中可包含多个main方法
  7. python 调用opencv dll_【问题已解决】python 3.6下安装opencv-python解决cv2 DLL load failed: 找不到指定的模块问题...
  8. 特斯拉正加快部署第三代Autopilot自动驾驶计算机
  9. 显著性测试(Friedman test, Post-hoc Nimenyi test以及可视化)
  10. Centos 7 设置 SFTP
  11. 《陶哲轩实分析》引理6.7.1:(指数运算的连续性)
  12. 【Paddle 入门打卡】用Paddle做MINIST手写数据集识别
  13. CentOS系统介绍
  14. python chardet模块,没有名为“chardet”的模块
  15. 直播一小时营收破百万!虚拟主播说英文在B站疯狂吸金,背后企划公司IPO作价23亿...
  16. 多元数量值函数积分学
  17. Flink SQL语法检查
  18. 安卓模拟器配置了摄像头还是显示黑白棋盘
  19. Microsoft SQL Server 数据库使用(一)
  20. lat_mem_rd 内存延迟测试工具原理,lmbench编译时llseek链接不到问题解决

热门文章

  1. 【RuTracker使用教程】
  2. php微信群,PHP微信群加群强制分享转发裂变源码
  3. 传统行业也很冷:星美影院欠债4个亿,关停140家分店
  4. LXC的网络结构和端口映射
  5. 为什么算出来的圆周率 π 等于 4 ?
  6. 弘辽科技:如何快速提升抖音小店
  7. 秉火429笔记之十五 DMA--直接存储区访问
  8. 百度云怎么快速清理和谐文件啊
  9. 查询客户时,提示“查询已超出200行,请限制查询“
  10. 【1016】从产品创意到产品概念