Jsp页面的几种传参方式

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,所有权力归原作者所有。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值