Jsp页面的几种传参方式

1.JavaScript传参:这种传参方式用opener关键字, 可以实现跨页传参.其用法就是用opener关键字调用父窗体的一个组件.

举例:    opener.myform.txt.value = document.myform.txt.value;
   优点:    简单,对网络传输限制比较底.
   缺点:    不灵活,对与大量的传参不现实,也不实际.

2. " ? "传参: 在传递地址的尾部加上? 后面跟参数的名字和其值,在另外一个Jsp页面中就可以用request.getParameter("参数名字");获取到传递的参数.

举例:    http://localhost:8080/bbs/jishu.jsp?id=1 
   优点:    灵活,只要把需要传递的参数放到一个变量中传递到传递的也面就可以了.
   缺点:    对于批量传参也不现实.

3. session传参:通常把它用来实现状态维持.session中有2个参数,第一个为标识,第二个为值,形式("key","value") 如果你的思维敏捷,就能联想到散列表,对它就是散列表的一种实现.

应用举例:    session.setAttribute("login","ok"); session.getAttribute("login");
   优点:    不用关心是什么数据类型,都可以放到session中,它以对象的形式存储于散列表中.
   缺点:    session中把所有数据当成对象来存取,所以每次我们用它的时候都要把类型强制转换为我们需要的类型.

4. JavaBean传参: 这是最高级的一种传递参数,它把任何数据类型,任何方式封装在JavaBean中.我们在属性中定义需要传递的参数,然后加入一个get和set方法就可以了,在Jsp中调用的时候可以设置其生命周期,完成传递参数的过程.

应用举例:
     package bean;

public class sampleBean
     {
       private String sample="Star value";
       public String getSample()
       {
         return sample;
       }
       public void setSample(String newsample)
       {
         if(newsample!=null)
         {
           sample=newsample;
           }
     }
   优点:    灵活,多样,传递数组、对象、哈希表、等等数据结构.
   缺点:    根据传递参数的不同编写不同的JavaBean,费时费力.

任何事物都有它的优缺点,事物都存在两面性,不能片面的使用一种传递方式,我们应该根据实际情况和现实需要,选择一种传递方式.

其实在jsp中往javabean中传参时,感觉有点困惑,就是JSP跟JAVABEAN的中文参数什么时候进行转换?这其中就一个概念:参数分形参和实参。

形参是出现在方法内部定义的,只能在整个方法体中使用,
形参在方法被调用的时候才分配内存,方法结束时候释放内存。
而实参在方法调用前必须已经赋值,以便把这个值复制给形参,
在方法中就是形参在做事情,实参就不动了。

说白了,就是实参把自己复制给方法的形参,让形参在方法里面做事情。
实参在方法执行的过程中是不改变的。

在了解这个概念后,当你是传实参的时候在JSP做了中文转换,在JAVABEAN中就不用做中文转换了,而传形参的时候,你就必须在JAVABEAN中做中文转换了,可见JSP中中文的问题还是蛮麻烦的。

本文转自http://blog.csdn.net/AJAXBloger/article/details/1763006,所有权力归原作者所有。

Jsp页面的几种传参方式相关推荐

  1. Struts2三种传参方式(从jsp页面传到Action)

    多的不说,直接上代码;struts.xml代码:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYP ...

  2. vuerouter3种模式_Vue-router的三种传参方式

    第一种传递参数:name传参 两步完成name传参并显示在模板中: 第一在router/index.js中配置name属性, routes: [ { path: '/', name: 'HelloWo ...

  3. PHP基础传参,PHP四种传参方式

    test1界面: testPHP //第一种设置传参方式,通过cookie setcookie('my','yefeng'); //第二种传参方式,通过设置服务器session值传递参数 sessio ...

  4. mybatis参数有list和实体类_Mybatis的几种传参方式,你了解吗?

    目录 前言 单个参数 多个参数 使用索引[不推荐] 使用@Param 使用Map POJO[推荐] List传参 数组传参 总结 前言 前几天恰好面试一个应届生,问了一个很简单的问题:你了解过Myba ...

  5. Android:页面跳转传参方式一,页面跳转传参方式二

     一.页面跳转传参方式一 跳转的过程如何传参:也就是页面之间如何传递参数,有点像函数调用如何传参,页面跳转也要传参. 复制一个工程 你要跳转,(现在的代码如下),intent 既然能设置跳转到哪个页面 ...

  6. Mybatis的几种传参方式

    本文来说下有关Mybatis的几种传参方式 文章目录 概述 单个参数 多个参数 使用索引[不推荐] 使用@Param 使用Map POJO[推荐] List传参 数组传参 本文小结 概述 本文说下My ...

  7. Struts 往jsp页面传值的三种方式 以及获取Jsp页面值得一种方式

     //传值的的第一种方式直接在action中getset方法完成值的传递 第一种方法值是放在值栈valuestack中其余两种是放在actioncontext中 this.setName(&quo ...

  8. C++中vector作为参数的三种传参方式

    此文章转载自:http://www.cnblogs.com/xiaoxi666/p/6843211.html c++中常用的vector容器作为参数时,有三种传参方式,分别如下(为说明问题,用二维ve ...

  9. requests 两种传参方式

    post方式传参使用 requests.get(url=url, data=params) get方式传参使用 requests.get(url=url, params=params)

最新文章

  1. Go在Ubuntu 14.04 64位上的安装过程
  2. 大厂前端高频面试问题与答案精选
  3. Flutter中的提示工具
  4. icmp基于tcp还是udp_面试爱考、编程必会基础!TCP/IP必知必会10大问题……
  5. 阿里云数加产品家族图首次亮相
  6. Android 系统性能优化(75)---MTK 平台perfomance问题的基本信息确认
  7. nginx做代理服务
  8. SecureCRT 连接Win10内置ubuntu问题层层突围
  9. 用 Handler 给图片加水印
  10. 自编码模型autoencoder
  11. Qt QDialog简介
  12. 安装WIN 7 64位Windows6.1-KB2999226-x64.msu
  13. 2019年计算机设计大赛(省赛)
  14. iOS 跑马灯带图片可点击
  15. 编程示例:公农历转换的算法
  16. 法拉科机器人接头_【发那科】图解FANUC机器人I/O信号板
  17. ffmpeg实现视频和音频分离,并且将声音切片
  18. c语言300行代码大作业,C语言300行代码
  19. 如何给深度学习加速——模型压缩、推理加速
  20. 《李焕英》爆火背后,世界正在奖励那些诚实的人

热门文章

  1. poj 1325 Machine Schedule 解题报告
  2. 暴力枚举——火柴棒等式(洛谷 P1149)
  3. 什么叫做java程序中的继承_【Java】基础16:什么叫继承?
  4. 直播丨国产数据库的机遇与挑战
  5. “删库跑路”重现江湖,技术和制度如何保障数据安全?
  6. 这两个小技巧,让SQL语句不仅躲了坑,还提升了1000倍
  7. 细致入微:如何使用数据泵导出表的部分列数据
  8. 【全干货】5分钟带你看懂 Docker!
  9. 2种图像增强方法:图像点运算和图像灰度化处理
  10. 图解 Redis丨这就是 RDB 快照,能记录实际数据的