我是菜鸟,诚心请教jsp+javabean+servlet的问题!

cfgegif 2012-11-17 10:36:02
我想实现计算器的功能:通过servlet获取jsp的表单数据并进行处理,把处理后的数据传给javabean,然后在另一个jsp页面通过jsp标签调用javabean,但是我所获取的是空值,为什么?(我使用的是request.setAttribute("Mybean",mybean),Mybean是我的javabean类),还有如何正确地把servlet的值保存到javabean,且jsp能正确调用javabean呢?
...全文
190 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cfgegif 2012-11-18
  • 打赏
  • 举报
回复
我的servlet的处理表单的数据:protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name=request.getParameter("name"); String pwd=request.getParameter("pwd"); mine.MyBean mybean=new mine.MyBean(name,pwd); request.setAttribute("Mybean", mybean); RequestDispatcher rd=request.getRequestDispatcher("ans.jsp"); rd.forward(request, response); } javabean的代码如下: package mine; public class MyBean { private String name; private String pwd; public MyBean(){ } public MyBean(String name,String pwd){ this.name=name; this.pwd=pwd; } public void setName(String name){ this.name=name; } public void setPwd(String pwd){ this.pwd=pwd; } public String getName(){ return name; } public String getPwd(){ return pwd; } } ans.jsp页面调用javabean代码如下: <body> <table> <td> <jsp:useBean id="mybean" class="mine.MyBean" scope="request"></jsp:useBean> <jsp:getProperty property="name" name="mybean"/> <jsp:getProperty property="pwd" name="mybean"/> </td> </table> </body> 运行后显示是空值的
cfgegif 2012-11-18
  • 打赏
  • 举报
回复
谢谢你们,我明白了
java3731 2012-11-18
  • 打赏
  • 举报
回复
<jsp:useBean id="mybean" class="mine.MyBean" scope="request"></jsp:useBean> 重新定义了一个bean的对象,所以你的值就不能显示了。 你可以在bean的实例类中加上单例模式,只让bean有一个对象,这样就可以用你方法显示数据了。
new__class 2012-11-18
  • 打赏
  • 举报
回复
楼主。<jsp:useBean id="mybean" class="mine.MyBean" scope="request"></jsp:useBean>这句话是你定义了一个javaBean对象,作用域是request,这个对象是没有刚才你在servlet中处理过的的值的,因为servlet传过来的值包含在Mybean这个属性里面,和你定义的javabean没有关系了,所以显示的是空,要想显示处理过的值你可以试试这样写 ${Mybean.name} ${Mybean.pwd}
  • 打赏
  • 举报
回复
同上
x1n 2012-11-17
  • 打赏
  • 举报
回复
依楼上所说检查一下你的响应方式是转发还是重定向。若是重定向,request作用域里取不到值得。若是转发请帖代码。 request().getRequestDispatcher(location).forward(request, response) response().sendRedirect(location)
心灵守望 2012-11-17
  • 打赏
  • 举报
回复
你从Servlet到另一个JSP页面用的是请求转发还是请求重定向?如果是重定向则Request对象不会有MyBean对应的值,重定向会向另一个JSP页面发送一个新的请求容器会给这个新的请求分配一个新的Request对象。在Servlet中用转发则可以解决问题,或者将MyBean对应的值保存到Session对象中也可以取出。 不知道对不对,希望对楼主有帮助。
最美的词 2012-11-17
  • 打赏
  • 举报
回复
1楼正解

81,092

社区成员

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

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