在程序中用到了response.sendRedirect(),需要将请求转发到另外一个服务器的地址,
现有问题是response.sendRedirect(参数),如果这个参数的地址是无效的,直接访问该地址会显示“该页无法显示”的,那我在转发之前需要怎么判断一下,才能使请求不去转发到这个页面,而在本地这段转向一个自定义的页面呢?望高手指教啊!

解决方案 »

  1.   

    我理解楼主的意思,其实你希望有个函数sendRedirect(a,b).如果a页面不存在,就跳到b页面是吧?
    很遗憾,这个做不到。
    你只能在程序里hard code一下,判断a是否在你的合法页面内部。然后通过程序逻辑来转到b页面
      

  2.   

    现在问题是a没办法判断它是否合法啊,这个url实际上写的是另外一个服务器上配置的servlet地址,
    如果该服务没有启动,访问时肯定是无法访问的,
    这种情况下,有没有一个状态码返回来呢?现在我也没想到如何能根据逻辑来判断啊
      

  3.   

       两种解决办法:
       1. 通过客户端js判断,先redirect或者forward到一个jsp或者html页面,中间使用httprequest,拿到http状态码,如果是404或者500等,那么跳转到另一个页面。   2. 服务端检查,使用HttpUrlConnection连接到一个页面,通过返回的状态码检查   jsp/servlet API本身不提供这种机制,你的需求属于业务范畴
      

  4.   


    说的比较好,很受益
    但我还想问一下,怎么通过request取得状态码,我查了没有发现有此方法啊,能说一下嘛,另外,我目前的做法是jsp请求到后台,用response了,因为有很多业务上的处理的
      

  5.   

    HttpURLConnection httpConnection = ...... int state = httpConnection.getResponseCode()
      

  6.   

    ajax:
    request.status 当前请求的http状态码.只读