文章转自http://blog.csdn.net/saygoodbyetoyou/article/details/9006001
request.getParameter取得Web客户端到web服务端的http请求数据(get/post),只能是string类型的,而且HttpServletRequest没有对应的setParameter()方法。
如利用href(url)和form请求服务器时,表单数据通过parameter传递到服务器,且只能为字符串。
当两个web组件为链接关系时,被链接组件通过getParameter来获取请求参数。
request.getAttribute():当两个web组件为转发关系时,通过getAttribute()和setAttribute()来共享request范围内的数据。attrubute中的数据是Object类型的,通过attribute传递的数据只会存在于web容器内部,仅仅是请求处理阶段。
request.setAttribute是服务器把这个对象放在该页面对应的一块内存中,当发生服务器重定向时,会把这块内存拷到另一页面对应的内存中,这样getAttribute就可以取到值,session也一样,只是对象在内存的生命周期不一样。
小结:request.getAttribute()方法返回request范围内存在的对象,request.getParameter()获取http请求提交过来的数据。
一般的Web应用,基本上是post方式的传递,用getParameter取值。对于自己控制的,可以通过request.setAttribute和getAttribute实现值的传递。
对于应用struts的,getAttribute用的多一点,其他的基本用getParameter,一个可以传对象,一个只能传字符串。