Jsp页面的几种传参方式

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,费时费力.

任何事物都有它的优缺点,事物都存在两面性,不能片面的使用一种传递方式,我们应该根据实际情况和现实需要,选择一种传递方式.
JSP(JavaServer Pages)中将参数传递给 JavaScript 是一种常见的需求,尤其是在需要将服务器端数据动态注入到客户端脚本中时。可以通过以下几种方式实现参数传递: ### 1. **通过 JSP 表达式将参数注入到 JavaScript 变量中** 在 JSP 页面中,可以使用 `<%= %>` 表达式将 Java 变量的值传递给 JavaScript 变量。例如: ```jsp <% String paramValue = "Hello from JSP"; %> <script type="text/javascript"> var message = "<%= paramValue %>"; console.log(message); // 输出: Hello from JSP </script> ``` 这种方式适用于简单的字符串传递,但如果传递的内容包含特殊字符(如引号),需要进行适当的转义处理。 ### 2. **通过 JSP EL(Expression Language)传递参数** 如果使用的是 JSP 2.0 或更高版本,可以使用 EL 表达式将参数传递给 JavaScript。例如: ```jsp <% request.setAttribute("greeting", "Welcome to JSP and JavaScript"); %> <script type="text/javascript"> var greeting = "${greeting}"; console.log(greeting); // 输出: Welcome to JSP and JavaScript </script> ``` 这种方式更加简洁,适合在 JSP 页面中传递请求作用域中的变量。 ### 3. **通过隐藏的 HTML 表单字段传递参数** 可以在 JSP 页面中使用隐藏的 `<input>` 元素来存储参数,并在 JavaScript 中通过 DOM 操作获取这些值: ```jsp <input type="hidden" id="hiddenParam" value="This is a hidden value" /> <script type="text/javascript"> var hiddenValue = document.getElementById("hiddenParam").value; console.log(hiddenValue); // 输出: This is a hidden value </script> ``` 这种方式适用于需要在页面加载后通过 JavaScript 动态读取参数的场景。 ### 4. **通过 URL 参数传递** 如果参数是通过 URL 传递的,可以在 JSP 页面中使用 `request.getParameter()` 方法获取 URL 参数,并将其传递给 JavaScript: ```jsp <% String urlParam = request.getParameter("param"); %> <script type="text/javascript"> var urlParameterValue = "<%= urlParam %>"; console.log(urlParameterValue); // 输出: 假设 URL 中 param=example,则输出 example </script> ``` 这种方式适用于从客户端传递参数到服务器端,然后再注入到 JavaScript 中。 ### 5. **通过 JSP include 动作传递参数** 如果需要在包含其他资源时传递参数,可以使用 `<jsp:include>` 动作,并结合 `<jsp:param>` 元素传递参数[^1]。例如: ```jsp <jsp:include page="includedPage.jsp"> <jsp:param name="param1" value="value1" /> </jsp:include> ``` 在 `includedPage.jsp` 中,可以通过 `request.getParameter("param1")` 获取该参数,并将其传递给 JavaScript。 ### 6. **通过 JSON 对象传递多个参数** 如果需要传递多个参数,可以将它们组织成一个 JSON 对象,然后将其注入到 JavaScript 中: ```jsp <% String param1 = "value1"; String param2 = "value2"; %> <script type="text/javascript"> var params = { param1: "<%= param1 %>", param2: "<%= param2 %>" }; console.log(params); // 输出: { param1: "value1", param2: "value2" } </script> ``` 这种方式适用于传递多个参数,并且可以在 JavaScript 中以结构化的方式处理这些参数。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值