在WEB.XML里面配置<error-page>,如果页面不存在将跳转到一个servlet,如何在servlet中得到之前访问的不存在的页面的URL??高手请指教。。

解决方案 »

  1.   

    request.getRequestURL()
    看行不。
      

  2.   

    这个肯定不行,如果在servlet里面调用这方法,获得的是当前的servlet...
      

  3.   

    不知道有没有request.ServerVariables("HTTP_REFERER")方法
      

  4.   

    是否可以用session,记录之前出错的url,然后在get出来
      

  5.   

    如果访问的是一个不存在的页面,又怎么能在一个不存在的页面上做运行任何代码(不存在的页面本身就没用任何内容,怎么用session)...
    这个应该不行了。请问哪位老大知道Apache URL 重写怎么搞,或者搞个教程来看看,或许用这方法可以代替我本来的想法。。感激不尽。
    等待牛人。
      

  6.   

    楼上错了,应该是request.getHeader("referer")
    不过对404试了下好像没效果。。
      

  7.   

    判断一下页面文件是否存在,存在跳转到页面,不存在将跳转到servlet
      

  8.   

    这个可以参考下,如果页面转发出现异常,catch的时候可以将转发前的URL写到session里。
      

  9.   

    加入你要从A跳去B 但B是不存在的 可不可以在A里面跳之前就拼接出B的URL 然后放入session 如果不存在 就会到error里面 然后再GET
      

  10.   

    回复13楼,这样貌似不可以实现。可能没看清问题。
    是这样的,假设我要访问一个页面:http://www.xxx.com/index.jsp 但是这个页面并不存在,于是跳转到http://www.xx.com/index2.jsp 我现在关心的不是这个跳转能不能成功,而是我在成功跳转到第二个页面(或者servlet)的时候,如何能得到跳转之前的页面的URL(即http://www.xxx.com/index.jsp)。
      

  11.   

    参考这个。
    http://www.java2000.net/viewthread.jsp?tid=184在我提供的输出里面,有一个数据你是感兴趣的。具体那个我卖个关子,你自己找找看。呵呵!
      

  12.   

    如果你真的找不到,就参考另一个文章, http://www.java2000.net/viewthread.jsp?tid=2470
      

  13.   

    菜鸟我第一次在CSDN发帖,有这么多的热心人士帮忙,太开心了。以后常来!
      

  14.   

    想再次请教一下java2000_net
    javax.servlet.forward.request_uri
    javax.servlet.forward.context_path
    javax.servlet.forward.servlet_path   
    javax.servlet.jsp.jspException   
    javax.servlet.error.status_code  
    javax.servlet.error.servlet_name   
    javax.servlet.error.exception   
    javax.servlet.error.request_uri这几个attribute的"key"是哪时候set到request里面的?在Servlet-API文档上没有查到。