Jsp web 编程编程指南中
一个简单的购物车,在物品的右边有个Remove按钮,按一下可以删除物品列表,不明白,问了下论坛说是用 ? &来传递参数的
百度了半天,好像?是用来开始以个字符串,&用来表示不同的变量,和URL编码类似吧
----------------------------------------------------------------------------------
特殊字符的含义 URL编码
# 用来标志特定的文档位置 %23
% 对特殊字符进行编码 %25
& 分隔不同的变量值对 %26
+ 在变量值中表示空格 %2B
\ 表示目录路径 %2F
= 用来连接键和值 %3D
? 表示查询字符串的开始 %3F
可使用:codeLabel=<%=java.net.URLEncoder.encode(sUDRName6)%>转码
----------------------------------------------------------------------------------
在web页面中有时会用到这种场景,要在链接中加入提示,如在删除一条数据或修改时,在点击删除或修改按钮时,会提示“是否真的删除?”,想达到这样效果,做法有:
<a href='地址' οnclick="return confirm('删除后无法恢复,确定要删除吗')">删除</a>
<a href="网址" οnclick="{if(confirm('确定要删除吗?')){return true;}return false;}">删除</a>
<a href="javascript:void(0)" onClick="if(window.confirm('您确定要冻结该资料吗!')) this.href='xxxx.asp'">冻结</a>
上述的方法都可以。
--------------------------------------------------------------------------------
1.JavaScript传参:这种传参方式用opener关键字, 可以实现跨页传参.其用法就是用opener关键字调用父窗体的一个组件.
举例: opener.myform.txt.value = document.myform.txt.value;
优点: 简单,对网络传输限制比较底.
缺点: 不灵活,对与大量的传参不现实,也不实际.
2. " ? "传参: 在传递地址的尾部加上? 后面跟参数的名字和其值,在另外一个Jsp页面中就可以用request.getParameter("参数名字");获取到传递的参数.
举例: http://localhost:8080/bbs/tiezi/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中调用的时候可以设置其生命周期,完成传递参数的过程.
应用举例:
优点: 灵活,多样,传递数组、对象、哈希表、等等数据结构.
缺点: 根据传递参数的不同编写不同的JavaBean,费时费力.
任何事物都有它的优缺点,事物都存在两面性,不能片面的使用一种传递方式,我们应该根据实际情况和现实需要,选择一种传递方式.
<a href="Purchase.jsp?product=<%= products.get(i)%>&submit=remove">Remove</a>
一个简单的购物车,在物品的右边有个Remove按钮,按一下可以删除物品列表,不明白,问了下论坛说是用 ? &来传递参数的
百度了半天,好像?是用来开始以个字符串,&用来表示不同的变量,和URL编码类似吧
----------------------------------------------------------------------------------
特殊字符的含义 URL编码
# 用来标志特定的文档位置 %23
% 对特殊字符进行编码 %25
& 分隔不同的变量值对 %26
+ 在变量值中表示空格 %2B
\ 表示目录路径 %2F
= 用来连接键和值 %3D
? 表示查询字符串的开始 %3F
可使用:codeLabel=<%=java.net.URLEncoder.encode(sUDRName6)%>转码
----------------------------------------------------------------------------------
在web页面中有时会用到这种场景,要在链接中加入提示,如在删除一条数据或修改时,在点击删除或修改按钮时,会提示“是否真的删除?”,想达到这样效果,做法有:
<a href='地址' οnclick="return confirm('删除后无法恢复,确定要删除吗')">删除</a>
<a href="网址" οnclick="{if(confirm('确定要删除吗?')){return true;}return false;}">删除</a>
<a href="javascript:void(0)" onClick="if(window.confirm('您确定要冻结该资料吗!')) this.href='xxxx.asp'">冻结</a>
上述的方法都可以。
--------------------------------------------------------------------------------
1.JavaScript传参:这种传参方式用opener关键字, 可以实现跨页传参.其用法就是用opener关键字调用父窗体的一个组件.
举例: opener.myform.txt.value = document.myform.txt.value;
优点: 简单,对网络传输限制比较底.
缺点: 不灵活,对与大量的传参不现实,也不实际.
2. " ? "传参: 在传递地址的尾部加上? 后面跟参数的名字和其值,在另外一个Jsp页面中就可以用request.getParameter("参数名字");获取到传递的参数.
举例: http://localhost:8080/bbs/tiezi/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,费时费力.
任何事物都有它的优缺点,事物都存在两面性,不能片面的使用一种传递方式,我们应该根据实际情况和现实需要,选择一种传递方式.