50分请问以下传值为什么失败了 在线等

zhengzhouflt2 2010-01-13 01:27:03
有两个servlet getpassword1.java, getpassword2.java
1个getpassword2.jsp
getpassword2.jsp接收了从getpassword1.java的传值如下:

<%String tmp = String.valueOf(request.getAttribute("uname")); %>
<tr><td><%out.println(tmp+"您好!"); %></td></tr>
<%request.setAttribute("uk",tmp); %>
<tr algin="center"><td algin="center"><input type="textbox" name="unumber"></td></tr>
在第二行打印出来了用户名,是正确的,接着第三行要把这个用户名传送给servlet getpassword2.java。
第四行是让用户输入的。
在getpassword2.java中接收是这样写的:
String username = String.valueOf(request.getAttribute("uk"));
out.println(username);
打印的总是用户的输入值,即相当于了out.println(request.getParameter("unumber"));
为什么打印出来的内容不对?应该打印用户名才对啊!
...全文
114 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
fzxs8 2010-01-13
  • 打赏
  • 举报
回复
<%String tmp = String.valueOf(request.getAttribute("uname")); %>
<tr> <td> <%out.println(tmp+"您好!"); %> </td> </tr>

<input type="hidden" name="uk" value='<%=tmp%>
<tr algin="center"> <td algin="center">
<input type="textbox" name="unumber"> </td> </tr>

在getpassword2.java中接收是这样写的:
String username = String.valueOf(request.getParameter("uk"));
out.println(username);
zhengzhouflt2 2010-01-13
  • 打赏
  • 举报
回复
找到错误了,我真猪啊,马上散分
lingar02 2010-01-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zhengzhouflt2 的回复:]
引用 2 楼 maer56 的回复:
<%request.setAttribute("uk",tmp); %>
改为 <%session.setAttribute("uk",tmp); %>


在getpassword2.java中接收是这样写的:
  String username = String.valueOf(session.getAttribute("uk"));
  out.println(username);




大哥,在servlet中怎么引用session啊?session.报错了。不认
[/Quote]
session是通过request获取的
<%request.getSession().setAttribute("uk",tmp); %>
maer56 2010-01-13
  • 打赏
  • 举报
回复
应该不可能,你是不是把number也设置到uk里面去了?
zhengzhouflt2 2010-01-13
  • 打赏
  • 举报
回复
用隐藏框也是,疯了
jiaqiang22 2010-01-13
  • 打赏
  • 举报
回复
在url上加参数试试。。。url?"uk"=tmp;
zhengzhouflt2 2010-01-13
  • 打赏
  • 举报
回复
<%session.setAttribute("uk",tmp); %>
request.getSession().getAttribute("uk");
我这样改了,结果
out.println(username+"<br>");
打印还是数字不是用户名
阿_布 2010-01-13
  • 打赏
  • 举报
回复
大哥,在servlet中怎么引用session啊?session.报错了。不认
-----------------------------------------------------------
Session session = request.getSession();
zxhbjz5 2010-01-13
  • 打赏
  • 举报
回复
不是同一个request,所以在getpassword2类中获取不到值。
要么你在jsp页面使用隐藏域将值重新赋值一次,要么将值写在session范围内
maer56 2010-01-13
  • 打赏
  • 举报
回复
还有个application
maer56 2010-01-13
  • 打赏
  • 举报
回复
request.getSession()
这个方法在Servlet就能获取,我刚以为你在JSP页面里面呢

顺便跟你说下,request,session,response,pageContext,page在JSP里面是内置对象,可以直接用,不用声明
andyan_2008 2010-01-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 maer56 的回复:]
<%request.setAttribute("uk",tmp); %>
改为 <%session.setAttribute("uk",tmp); %>


在getpassword2.java中接收是这样写的:
  String username = String.valueOf(session.getAttribute("uk"));
  out.println(username);


[/Quote]
放到session中传递
还可以通过hidden实现
<input type="hidden" name="uk" value='<%=tmp%>'>
在getpassword2.java中通过request.getParameter("uk")取得
maer56 2010-01-13
  • 打赏
  • 举报
回复
    
/**
* doGet服务请求
* @param request 请求
* @param response 响应
* @throws ServletException ServletException
* @throws IOException IO异常
*/
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
service(request, response);
}

/**
* doPost服务请求
* @param request 请求
* @param response 响应
* @throws ServletException ServletException
* @throws IOException IO异常
*/
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
service(request, response);
}

/**
* 服务请求
* @param request 请求
* @param response 响应
* @throws ServletException ServletException
* @throws IOException IO异常
*/
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
request.getSession().getAttribute("uk");
}
子龙奶爸 2010-01-13
  • 打赏
  • 举报
回复
程序没错,而且也显示了第一个的东西。是不是哪里把Attribute的值给改了啊?给完整代码。因为Attribute和Parameter是不冲突的,一个是属性,一个则是参数。
zhengzhouflt2 2010-01-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 maer56 的回复:]
<%request.setAttribute("uk",tmp); %>
改为 <%session.setAttribute("uk",tmp); %>


在getpassword2.java中接收是这样写的:
  String username = String.valueOf(session.getAttribute("uk"));
  out.println(username);


[/Quote]

大哥,在servlet中怎么引用session啊?session.报错了。不认
awusoft 2010-01-13
  • 打赏
  • 举报
回复
你需要用一个隐藏域来存在这个uk,然后等提交的时候再把它提交到getpassword2.java,使用的方法就是getParameter,
第一次的时候,看到页页后,那个request对象就不存了,所以你需要把东西先放到页面上,然后等提交到第二个里边去。
fzxs8 2010-01-13
  • 打赏
  • 举报
回复
能不能贴出来完整的看一眼...
hoojo 2010-01-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 maer56 的回复:]
<%request.setAttribute("uk",tmp); %>
改为 <%session.setAttribute("uk",tmp); %>


在getpassword2.java中接收是这样写的:
  String username = String.valueOf(session.getAttribute("uk"));
  out.println(username);


[/Quote]
正解
maer56 2010-01-13
  • 打赏
  • 举报
回复
第二个获取uk的时候,已经不在第一个request 的范围内了,所以你获取不到
maer56 2010-01-13
  • 打赏
  • 举报
回复
<%request.setAttribute("uk",tmp); %>
改为<%session.setAttribute("uk",tmp); %>


在getpassword2.java中接收是这样写的:
String username = String.valueOf(session.getAttribute("uk"));
out.println(username);

加载更多回复(1)

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧