在前几天看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方法来取出。
浙公网安备 33010602011771号