java web的jsp和后台的问题 望大神解惑。。。

java web的jsp和后台的问题 望大神解惑。。。

问题描述:

学习servlet的时候说 request是传到后台的值,返回的话要把值放到response中,
返回给页面,可是为什么看好多源码 ,servlet给页面传值都是request.setAttribute。。。。呢?
然后前台jsp页面也是通过request.getAttribute。。。获取值,而不是通过response获取呢?那还要response干嘛。。。。。。

jsp本质上是一个servlet,你说的在jsp中通过request.getAttribute只是服务器后台之间的数据的共享,还没有通过http协议返回给浏览器,所以也就不用response

.....你这个问题 ,在去好好看看request和response吧

'jsp页面也是通过request.getAttribute。。。获取值' 你自己也知道这是 jsp获取值,还没用处理request中的数据啊,还没到response呐。

传值是通过request传的,比如跳转页面的话,可以request.setAttribute()来设置,用request.getRequestDispatcher("").forward(request, response);进行请求转发。而用response重定向的话就不能用request来传递参数,要用session或者application

首先你要明白什么是域对象,域对象是用来存取数据用的,我们常用的域request,session,pageContext,servletContext都具有这样的作用,而response
并不是域对象,并不能存储数据,他的作用只是向页面响应一些东西,比如你想写一个字符串到页面上,或者返回一些比如json数据,由jquery的ajax来解析。
综上所述,两者的功能是不一样的。存值和取值都只能从域中取,而request域对应的方法是setAttribute()和getAttribute().
只是把复杂的问题让你简单的理解,希望你学习进步。