显示通知页面后重定向URL

时间:2013-03-24 02:45:15

标签: jsp tomcat url-rewriting tuckey-urlrewrite-filter

我正在使用TomCat服务器,需要转换到新位置。我将暂时在旧服务器上保留TomCat实例,以便优雅地转发旧链接。我发现tuckey的url重写并且似乎工作得非常好,除了它在转发之前不显示消息。

我目前的解决方案是在http://myserver:8080/添加“移动”通知,其中HTML重定向将在5秒后自动转发。

然后我会对任何直接链接使用urlrewrite规则,例如:http://myserver:8080/browse/ISSUE-123转发到http://mynewserver:8080/browse/ISSUE-123。这有效,但我希望能够在将用户转发到新位置之前向用户显示消息。

任何提示都会非常感激。我认为目前的解决方案“足够”,但可能更好。

修改

我找到了一个我认为可行的解决方案,但我仍然愿意接受反馈。我创建了一个带有scriptlet的简单JSP页面,该脚本将接受一个参数(由URL重写器生成)将HTML重定向放入“此页面已移动”模板中。通过这种方式,用户将被转发到正确的位置,并且还会看到一条消息,告诉他们更新他们的链接。

1 个答案:

答案 0 :(得分:0)

好的,因为这已经到位,我想我会详细说明我的答案,以防将来有人帮助。

此解决方案可能需要30分钟才能实施。

  1. 下载Tomcat(http://tomcat.apache.org/
  2. 下载UrlReWrite(http://tuckey.org/urlrewrite/
  3. 使用我想要的转发

    配置urlrewrite.xml
     <urlrewrite>
      <rule>
           <from>/browse/(.*)</from>
           <to type="redirect">http://mynewserver:8080/browse/$1</to>
      </rule>
     </urlrewrite>
    
  4. 这将立即转发新页面。我发现了一个很好的方式来显示一个页面,然后通过创建一个简单的html页面作为.jsp并在其中包含一个scriptlet来转发:

     <meta http-equiv="REFRESH" content="5;url=http://mynewserver:8080/browse/<%= request.getParameter("requestedPage") %>">
    

    然后我将urlrewrite.xml更新为以下内容:

     <urlrewrite>
         <rule>
            <from>/browse/(.*)</from>
            <to type="redirect">%{context-path}/forward.jsp?requestedPage=$1</to>
         </rule>
     </urlrewrite>
    

    这会将所需的页面传递到“转发”屏幕,该屏幕具有元重定向,然后转到新服务器上的同一页面,同时还告诉用户有关服务器移动的信息。