后台通过request.setAttribute向前台传值,前台如何去获取其中的对象或属性值

讲这些,我们先来了解一下request.setAttribute和request.setAttribute()这两种方法的作用。

request.getAttribute(“nameOfObj”); 可得到jsp页面表单中输入框内的value。(其实表单控件中的Object的name与value是存放在一个哈希表中的,所以在这里给出Object的name会到哈希表中找出对应它的value)

request.setAttribute(position,nameOfObj);属于页面之间的传值,从a.jsp到b.jsp一次传递,之后这个request就会失去他的作用范围,再传就要重新设一个request.setAttribute()。(使用session.setAttribute()会在一个过程中始终保持这个值)

注:javascript与jsp中不能相互传值,因为javascript运行在客户端,jsp运行在服务器端。若想使他们能够相互传参数,可以在jsp页面中设置一个hidden属性的控件,用它的value来传递所需的数值。

复制代码
1、把js直接写在了JSP页面,所以能获取到。如果单独把JS抽离出来是不可能获取到的。前者服务端解析能或许到,后者客户端解析获取不到。

2、js里是在客户端执行的,不能直接获取,因为EL表达式是在服务器的时候被解析的,所以可以获取到。一个是客户端的东西,一个是服务器端的东西。

3、jsp能取到,那是因为他本身就是servlet。js不可能有方法直接获取到HttpServletRequest里面的属性值。

4、setAttribute是服务器行为,到了客户端就无效了,也谈不上如何用。除非你在jsp的时候就写到js变量里,或者使用ajax请求你需要的数据。

复制代码
下面开始进入正题:

java后台通过:

request.setAttribute(“msg”,“成功!!”);
在jsp/html页面就可以通过EL表达式获取到request中设置的属性值:

${msg}
js中获取request中的值,就有两种方式:

第一种:

var msg="<%=request.getAttribute(“msg”)%>";
alert(msg);
第二种:

var msg="${msg}";
alert(msg);
这里不能写在引入的js页面中,上面已经说了,他们解析的方式不同,写在外部的js中识别不了,可以通过在html.jsp页面中设置一个隐藏域,然后获取它的value值。如:

JSP中:

javascript中:
var stuName=$(‘stuName’).value;

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: jsp中可以通过request.setAttribute()方法来设置request对象属性,具体语法如下: request.setAttribute("属性名", 属性); 其中,属性名为字符串类型,表示要设置的属性名称,属性可以是任意类型的数据,表示要设置的属性。 例如,设置一个名为"username"的属性属性为"张三",可以使用以下代码: request.setAttribute("username", "张三"); ### 回答2: JSPJavaServer Pages)是Java EE Web应用程序中的一种技术,它允许将Java代码嵌入HTML中,以便向浏览器提供动态生成的内容。当JSP页面被请求时,它们被编译成Servlet,并在服务器上执行。在JSP中,可以使用request.setAttribute()方法将数据存储在请求对象中。这种技术可用于将数据库查询结果、表单提交数据及其他传递到页面中。 request.setAttribute()方法在使用JSP获取数据时是非常重要的。其语法为request.setAttribute(String name, Object value),其中name是要存储在请求对象中的属性名称,value是要存储在请求对象中的属性。该方法可以在JSP页面中使用,从而将一些数据保存在请求对象中,并在将来的页面重定向或转发中使用。 例如,我们可以通过如下代码设置属性: ``` request.setAttribute("message", "Hello, World!"); ``` 然后,在JSP页面中使用EL表达式${message}获取属性: ``` <p>${message}</p> ``` 在实际应用中,我们通常会从数据库或其他源获取数据并将其存储在请求对象中,以便在JSP页面中使用。例如: ``` List<User> userList = userService.getAllUsers(); request.setAttribute("userList", userList); ``` 然后,在JSP页面中使用EL表达式${userList}获取属性: ``` <c:forEach var="user" items="${userList}"> <p>${user.name}</p> </c:forEach> ``` 总之,JSP获取request.setAttribute()是一种非常实用的方式,它可以在JSP页面中将数据存储在请求对象中,并使用EL表达式在页面中获取该数据。这样可以有效地将Java代码与HTML混合在同一页面中,实现更加灵活和动态的应用。 ### 回答3: JSPJava Server Pages)是一种用于生成动态Web页面的技术。在JSP页面中,我们可以使用request.setAttribute()方法来设置请求的属性。该方法用于将一些数据存储在请求对象中,以便在同一次请求中的其他JSP页面中使用或在客户端浏览器中的JavaScript脚本中使用。 在JSP获取request.setAttribute()方法所存储的数据非常简单。只需要在JSP页面中使用jsp:useBean标签调用该方法即可。例如,我们可以在以下方式中使用该方法获取数据: <jsp:useBean id="data" class="java.util.HashMap" /> <% data = request.getAttribute("data"); %> 上面的代码首先使用jsp:useBean标签创建了一个名为data的HashMap对象,然后使用request.getAttribute("data")方法从请求对象获取名为data的属性。最后,将此存储在data变量中。 使用JSP EL(Expression Language)语法来获取request.getAttribute()方法所存储的数据更加简单。在使用<jsp:useBean>标签之前,引用属性的方式如下所示: ${requestScope.data} 属性名在${}中,和 EL 表达式的格式类似,可以直接从 request 对象获取 data 属性。 总而言之,request.setAttribute()方法是JSP中非常有用的一个方法,它可以将一些数据存储在请求对象中,使得在同一次请求中的其他JSP页面或客户端浏览器中的JavaScript脚本可以访问和使用这些数据。而通过使用JSP EL表达式,我们可以更加方便地获取request.getAttribute()方法所存储的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值