问一个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有点困惑? 展开
所以同一个请求,但是JSP页面的代码request是同一个请求中的request,还是JSP页面的四大隐含对象中的那个隐含对象呢?我知道jsp页面运行的原理是jsp页面会被翻译成
Servlet页面,jsp就是穿着HTML衣服的Servlet,但是我还是对这个地方的request有点困惑? 展开
1个回答
展开全部
首先 jsp页面的request是隐藏对象 这个request是转发的同一个请求
要在jsp页面中得到这个request的数据可以按下面传统代码
<%
你的数据类型 li = (你的数据类型)request.getAttribute("list");
if(li == null) {
li = new 你的数据类型();
request.setAttribute("list",li);
}
%>
要在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); }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询