我想让servlet给jsp传值结果servlet页面变成了我要传的那个值,jsp变成null了,这是什么原因?

我现在要在地址栏输入jsp的那个地址时显示从servlet传过来的值,而不是地址栏打开servlet页面javascript代码<body><%=request.getA... 我现在要在地址栏输入jsp的那个地址时显示从servlet传过来的值,而不是地址栏打开servlet页面
javascript代码

<body>
<%=request.getAttribute("numberip")%>
</body>
servlet代码
request.setAttribute("numberip",numberip);
request.getRequestDispatcher("project.jsp").forward(req,resp);
展开
 我来答
shiguang0122
2014-05-17 · TA获得超过2778个赞
知道大有可为答主
回答量:1253
采纳率:66%
帮助的人:735万
展开全部

表示不明白你在说什么。。。

<body>
<%=request.getAttribute("numberip")%>
<!--上面是取request域中numberip的值-->
</body>

上面的应该是jsp页面的代码吧。

request.setAttribute("numberip",numberip); //在request域里面放入:numberip变量
request.getRequestDispatcher("project.jsp").forward(req,resp);//将当前的请求转给project.jsp 页面。

上面java的servlet代码


看了上面的注释了吧,流程应该明白了吧。

在servlet中放入值,转发到jsp页面,jsp页面显示servlet中放入的值。


所以和你说的完全相反:浏览器地址栏输入的应该是servlet的地址,然后实际显示的是jsp页面。因为request.getRequestDispatcher("project.jsp").forward(req,resp)将你请求servlet的信息都转发到jsp页面了。

===============纠正完你的用词了

说代码的问题:

request.getRequestDispatcher("project.jsp").forward(req,resp)

^^^^^^^^^这里明明是request,为什么为什么为什么到了^^^^^^这里却成了req了。。。。。

forward的参数必须是原封不动的 servlet中的request,response对象!!!


===================

另外:request.setAttr.....这个方法,是设置request域的,这个request只是存在在当前请求中。

你只打开jsp页面,这个请求的request生命从你的url到服务器再到页面(这个时候request就已经死了,在也找不到了,你再打开,又是一个新的请求,新的request了)。而在这个请求过程中,根本没有经过servlet,也没有代码给numberip设置值。所以是null。

追问
谢谢,你说的很清楚,req和resp只是两个变量HttpServletRequest类和HttpServletResponse类的···前面有定义没发出来···
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式