那你就用response.sendRedirect()进行重定向跳转好了

解决方案 »

  1.   

    但公司里已经做的就是按forward做的阿,
    还有,是不是因为这个原因导致的呢???
      

  2.   

    RequestDispatcher dispatcher=getServletContext().getRequestDispatcher("test/test.jsp");
    dispatcher.forward(request,response);上面这段是写在doGet 方法结束中,dopost也是调用doget方法,看看有没有把两个JSP内置对象 request,response参数带入
      

  3.   

    你可以在页面中写一个"button" , 然后给它个onclick="window.reload();"
      

  4.   

    ???
    要是强制刷新页面
    而servlet没有被再次执行,那才是大麻烦
      

  5.   

    怎么说呢?/现在用的是公司已经封装好的包,
    我现在不明白的是:既然我的servlert已经转发到了一个jsp叶面,但为什么在jsp叶面上显示的的地址还是servlet的???
    有没有办法让转发后的地址变为jsp页面的??这样能不能解决这个问题??
      

  6.   

    >>我现在不明白的是:既然我的servlert已经转发到了一个jsp叶面,但为什么在jsp叶面上显示的的地址还是servlet的???
    ----------
    这是欺骗浏览器的转发,和sendRedirect不一样。>>有没有办法让转发后的地址变为jsp页面的??这样能不能解决这个问题??
    ----------
    forward后再sendRedirect
      

  7.   

    >>这是欺骗浏览器的转发,和sendRedirect不一样。
    不大明白阿,是不是说forward后虽然地址栏显示的是servlet的地址。但实际上已经指向了jsp页面??
    那我刷新的时候,是不是应该执行的是jsp页呢???
      

  8.   

    forward和sendRedirect();前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法
      

  9.   

    那应该怎样解决我提出的问题呢??
    如果必须用forward的话??
      

  10.   

    很久没用servlet中的跳转了,用forward,在struct-congfig.xml文件里面配置路径,这样多好。
      

  11.   

    这样有什么不对吗?forward之后本来就不改变URL,还是开始的那个地址啊.
      

  12.   

    我给你出个主意:到了客户端以后再重定向一下。可以自动进行。
    比如修改完某一元素,要跳到列表页面(假设你用forward),则此时刷新列表,就会再次进入servelt。解决方法:
    1。使用sendRedirect,但你说不能改了。
    2。不要跳到列表,而是跳到一个空白页面,在页面中加入javascript,自动跳到列表页面就可以了。原因分析:
    redirect会给浏览器回发一个302状态包,客户端会从这个包中读取到新的地址,然会转到列表文件,所以地址栏是真实地址,这样的好处是用户可以方便的保存页面。
    forward在中途并不给客户端回发包,所以客户端并不知道转发的过程,他认为地址仍然是servlet的地址。这样做效率会稍高,并且在request作用于可以跨越servlet和列表页面,可以方便的取得变量。
      

  13.   

    我以前发过一个帖子,在wap中,即使是使用redirect,刷新list页面也会转到servlet中。这个问题至今困扰我,我也不知道为什么。