问一个JavaWeb初级知识:从Servlet转发到JSP页面时,使用的是同一个请求, 50

在Servlet中使用request.setAttribute("list",list);设置好数据之后,但是从JSP页面获取数据时,使用的是request.getAtt... 在Servlet中使用request.setAttribute("list",list);设置好数据之后,但是从JSP页面获取数据时,使用的是request.getAttribute("list");因为是转发,
所以同一个请求,但是JSP页面的代码request是同一个请求中的request,还是JSP页面的四大隐含对象中的那个隐含对象呢?我知道jsp页面运行的原理是jsp页面会被翻译成
Servlet页面,jsp就是穿着HTML衣服的Servlet,但是我还是对这个地方的request有点困惑?
展开
 我来答
lj685963kfl
2015-04-18 · 超过61用户采纳过TA的回答
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:93.8万
展开全部
首先 jsp页面的request是隐藏对象 这个request是转发的同一个请求
要在jsp页面中得到这个request的数据可以按下面传统代码
<%
你的数据类型 li = (你的数据类型)request.getAttribute("list");

if(li == null) {

li = new 你的数据类型();

request.setAttribute("list",li);

}

%>
追问
如果是同一个请求的话,那么为什么没有声明呢,直接使用的话,有点凭空而出的感觉吧,在Servlet中使用的request还是在Service方法里作为形参传入的,但是这个jsp页面的同一个请求出来的这个没有声明怎么使用?
追答
jsp里头的request是内置对象啊 就是容器加载类的实例 不用new就能用 就不用声明了
当然如果你是指request里面的东西 那要有东西才能用的
就像上面写的一样要判断一下是不是存在
if(li == null) { li = new _(); request.setAttribute("list", li); }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式