日期:2014-05-18  浏览次数:20677 次

forward基础问题
第一个servlet有一部分代码是这样的
  out.println( "ForwardTest输出的! <br> ");
  RequestDispatcher   dispatcher=request.getRequestDispatcher( "forwardtest2 ");
  dispatcher.forward(request,response);


这是forwardtest2的一些代码
                out.println( "forwardtest2输出! ");
                out.println(request.getParameter( "username ")+ " <br> ");
                out.println(request.getParameter( "password "));

在访问第一个servlet后
页面上只显示出来了:
forwardtest2输出!
然后就是传入的参数

没有显示“ForwardTest输出的!”

这是为啥?谢谢回答!

------解决方案--------------------
我记得是这样的:因为你第一个out.print是在跳转前输出的,当前控制权还在你第一个页面,如果你之后不进行跳转,那么是可以输出的,但你out.print完了就紧接着跳转了,此时页面控制权是在第二个页面上,所以只会输出你给跳转后页面的out.print
------解决方案--------------------
简单点说就是ForwardTest页递交到servlet里如果只执行out.println( "ForwardTest输出的! <br> ");那么就跳回到第一个页上输出,但你在那句话后又加上了RequestDispatcher dispatcher=request.getRequestDispatcher( "forwardtest2 ");
dispatcher.forward(request,response);跳转,那么就先执行out.println( "ForwardTest输出的! <br> ");但是你看不见,页面瞬间到了forwardtest2页面,再显示forwardtest2的out.print
------解决方案--------------------
你已经让程序跳转到forwardtest2页面,为什么还要显示原来页面的内容。
------解决方案--------------------
我怎觉得你所需要的是要用 <include> 指令或 <jsp:include> 将第二个页面包含到第一个页面,而不是使用forward。