Request的getParameter和getAttribute方法的区别

问题描述

Request的getParameter和getAttribute方法的区别(HttpServletRequest.getParameter("modelName");能取到想要的modelObject吗?经过测试之后,发现是不能的。后来想想,其他道理挺简单的,当两个Web组件之间为转发关系时,转发源会将要共享request范围内的数据先用setAttribute将数据放入到HttpServletRequest对象中,然后转发目标通过getAttribute方法来取得要共享的数据。而MVC中用的就是Web组件之间的转发下面整理一下getParameter和getAttribute的区别和各自的使用范围。(1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法(2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数,例如假定welcome.jsp和authenticate.jsp之间为链接关系,welcome.jsp中有以下代码:<ahref="authenticate.jsp?username=wolf">authenticate.jsp</a>或者:<formname="form1"method="post"action="authenticate.jsp">请输入用户姓名:<inputtype="text"name="username"><inputtype="submit"name="Submit"value="提交"></form>在authenticate.jsp中通过request.getParameter("username")方法来获得请求参数username:<%Stringusername=request.getParameter("username");%>(3)当两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request范围内的数据。假定authenticate.jsp和hello.jsp之间为转发关系。authenticate.jsp希望向hello.jsp传递当前的用户名字,如何传递这一数据呢?先在authenticate.jsp中调用setAttribute()方法:<%Stringusername=request.getParameter("username");request.setAttribute("username",username);%><jsp:forwardpage="hello.jsp"/>在hello.jsp中通过getAttribute()方法获得用户名字:<%Stringusername=(String)request.getAttribute("username");%>Hello:<%=username%>从更深的层次考虑,request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据。request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享

解决方案

解决方案二:
mark
解决方案三:

解决方案四:
mark一下,有空试试看!

时间: 2024-09-19 09:49:11

Request的getParameter和getAttribute方法的区别的相关文章

js中的getAttribute方法使用示例_javascript技巧

getAttribute()方法 至此,我们已经向大家介绍了两种检索特定元素节点的办法:一种是使用getElementById()方法,另一种是使用getElementsByTagName()方法.在找到那个元素后,我们就可以利用getAttribute()方法把它的各种属性的值查询出来. getAttribute()方法是一个函数.它只有一个参数--你打算查询的属性的名字: object.getAttribute(attribute) 不过,getAttribute()方法不能通过docume

jQuery中attr和prop方法的区别

之前看网上对比两者的文章,更是列出一个表来区分什么标签下使用prop,什么标签下使用attr,原谅我是懒惰的人,最害怕要背的东西,所以只有自己想想办法了. 既然我们想知道他们两的区别,最好就看看他们的源代码,不要被代码长度所吓到,我们只看关键的几句: attr方法代码(jQuery版本1.8.3)  代码如下 复制代码 attr: function( elem, name, value, pass ) {     var ret, hooks, notxml,         nType = e

js中同步与异步处理的方法和区别总结

 若要在使用ajax请求后处理发送请求返回的结果,最好使用同步请求,下面为大家介绍下js中同步与异步处理的方法和区别,感兴趣的朋友不要错过 在使用异步请求时,有时需要将异步请求的结果返回给另一个js函数,此种情况下会出现未等异步请求返回请求结果,该发送请求所在js函数已经执行完后续操作,即已经执行return ,这样会导致return的结果为空字符.    总结:若要在使用ajax请求后处理发送请求返回的结果,最好使用同步请求.    例如:以下例子会出现返回结果不正确的情况,因为ajax异步请

[C# 3.0 入门] [第一章 Lambda表达式] 第三节:Lambda与匿名方法的区别

Lambda表达式与匿名方法的区别 那么,为什么Lambda表达式比匿名方法写起来要短呢?这种像变戏法一样的手法真的能用吗?有没有重要信息遗漏掉呢?为了回答这些问题,就让我们把匿名方法和Lambda表达式比较一下,看看Lambda表达式究竟怎么写. 1using System; 2 3delegate int SampleDelegate(int x, int y); 4 5class Program 6{ 7 private static void Calculate(int x, int y

执行Shell脚本的4种方法及区别介绍

  这篇文章主要介绍了执行Shell脚本的4种方法及区别介绍,本文讲解了相对路径方式.绝对路径方式.bash命令调用.相对或绝对方式以及说下几种方式的区别,需要的朋友可以参考下 执行shell脚本有以下几种方式 1.相对路径方式,需先cd到脚本路径下 代码如下: [root@banking tmp]# cd /tmp [root@banking tmp]# ./ceshi.sh 脚本执行成功 2.绝对路径方式 代码如下: [root@banking tmp]# /tmp/ceshi.sh 脚本执

jQuery中live与bind方法的区别

 本篇文章主要是对jQuery中live与bind方法的区别进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 注意如果是通过jq添加的层和对象一定要用live(),用其他的都不起作用   live的缺点就是,运行完以后不释放空间,太多的使用会占用更多的内存,bind()则点击完以后释放空间   区别一:   Click here   可以给这个元素绑定一个简单的click事件:   $('.clickme').bind('click', function() { $('body

js正则表达式中test,exec,match方法的区别介绍

 本篇文章主要是对js正则表达式中test,exec,match方法的区别进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 js正则表达式中test,exec,match方法的区别说明   test  test 返回 Boolean,查找对应的字符串中是否存在模式. var str = "1a1b1c"; var reg = new RegExp("1.", ""); alert(reg.test(str)); // true     e

javaee-java框架spring的execute方法的区别

问题描述 java框架spring的execute方法的区别 spring的execute(String callString CallableStatementCallback action)和execute(PreparedStatementCreator psc PreparedStatementCallback action)的区别是什么,用法上有哪些特别之处呢?在官方文档可以找到吗,我怎么都找不出区别来!还有,用这个两个方法调用存储过程时,如果有多个out参数,又该如何返回呢? 解决方

使用JavaScript获取Request中参数的值方法_javascript技巧

假设现在有一个URL,如下. http://www.jb51.net 如何通过JS访问到id和name里面的值呢,实现我们来分析一下思路. 先获取当前页面的URL,通过window.location.href. 提取该URL?后面的部分,通过slice()方法. 把获取到的Request对象分割成字符串数组,通过split() 方法. 接下来看代码. function getUrlVars() { var vars = [], hash; var hashes = window.location