日期:2014-05-18  浏览次数:20787 次

最近思维混乱.请教一下HttpServletRequest与HttpServletResponse的问 题
为了让JSP获取一个实体.那么就应在servlet的request中setAttribute吧.
突然就想到一个纠结的问题.(因为对请求与响应理解不够深刻.一直模糊的)
请求过来后.服务端从数据库中获取数据并封装成对象"应响"回给JSP..那算是响应吧? 为啥不是response.setAttribute(虽然它是没有这个).为啥是请求setAttribute而不是响应setAttribute呢?
按惯性思维.请求过来后就完蛋了.接下来就是响应回去了.
有没有朋友可以说说请求与应响这个吗? 代码一直在写..但突然迷糊的感觉很纠结的.知道怎么用却不理解是悲惨的.
------解决方案--------------------
一次请求一次响应。  这是一般的情况,比如你用servlet一次请求后,在servlet的处理类中,获取响应对象response,之后获取一个打印流,吧你的文本打印到浏览器。或者一个jsp把处理请求和响应的事情都做了。

你说的这种情况是,一次请求后,又转发到另一个jsp,或另一个servlet处理类,响应阶段由转发后的jsp或servlet来做。
转发就是吧request对象内容发送到下一个jsp或servlet,这时候不涉及响应对象。响应是把结果返回给浏览器,转发不是响应。
------解决方案--------------------
根据request从数据库获取对象,当获取对象后,要使用response的set...来保存对象,也就是请求response来保存获取到的对象,在jsp页面上使用response的get...方法来展示对象,这会就是响应对象了。。。
------解决方案--------------------
你说的是请求转发与重定向中的请求转发吧。
你说的一次请求与一次响应是很理想的情况,在真正的开发中,一个servlet或jsp往往处理不了所有业务请求,这时就需要由一个Servlet转到另外一个Servlet或jsp去处理;