关于参数转发

时间:2022-05-14
本文章向大家介绍关于参数转发,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

在前几天看war包的过程中,对jsp页面数据的传递感到有些迷茫,一开始只是先停留在java文件的代码,所以首先对setAttribute()和getAttribute()的方法感到困惑,我并不能在java文件中找到getAttribute()方法所传输的数据,于是首先对这个方法的使用及说明进行了了解。

getAttribute()方法

通过元素节点的属性名称获取属性的值。

语法:

elementNode.getAttribute(name)

说明:

1. elementNode:使用getElementById()、getElementsByTagName()等方法,获取到的元素节点。

2. name:要想查询的元素节点的属性名字

它与getParameter()都是用于获取两个web组件相互转发之间所传输的数据,当两个Web组件之间为转发关系时,转发源会将要共享 request范围内的数据先用setAttribute将数据放入到HttpServletRequest对象中,然后转发目标通过 getAttribute方法来取得要共享的数据。而MVC中用的就是Web组件之间的转发。虽然同样有转发数据的作用,getParameter()是用于用于客户端重定向时,即当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数。而getAttribute()用于服务器端重定向时,即两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request,session范围内的数据。

将两者对比来看,从更深的层次考虑,request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据。而request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。这两个方法能够设置Object类型的共享数据。getAttribute是返回对象,getParameter返回字符串。

从总的来说:request.getAttribute()方法返回reques,sessiont范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。


setAttribute()方法

增加一个指定名称和值的新属性,或者把一个现有属性设定为指定的值。

1.把指定的属性设置为指定的值。如果不存在具有指定名称的属性,该方法将创建一个新属性。

2.类似于getAttribute()方法,setAttribute()方法只能通过元素节点对象调用的函数。

setAttribute这个方法的使用,是在JSP内置对象session和request都有这个方法,这个方法作用就是保存数据,然后还可以用getAttribute方法来取出。


原文地址:https://www.cnblogs.com/kokonotsu/p/16269518.html