3

私は2つのウェブサイトが言う

1. firstwebsite.com
2. secondwebsite.com

firstwebsite のすべてのページは静的です。ここで、firstwebsite.com のすべてのページを secondwebsite.com に移動したいと考えています。firstwebsite.com のすべてのサーバーをシャットダウンしたい

また、URL firstwebsite.com/** が secondwebsite.com/** にリダイレクトされるタイミングも確認したいと思います。

firstwebsite.com/abc.html は、secodnwebsite.com/abc.html にリダイレクトする必要があります。

スプリングを使用しています。誰かがそれを行う方法を教えてくれますか。後で、リクエストの送信元のデバイスに基づいて処理を行いたいと考えています。

上記の参考文献を得ることができれば、本当に素晴らしいことです。

4

1 に答える 1

6

Java EE には、すべての要求で実行されるフィルターがあります。へのすべてのリクエストfirstwebsite.comは、最初にコード内でフィルタによって処理され、次に にリダイレクトされsecodnwebsite.comます。

public class RedirectionFilter implements Filter {

    /**
     * Default constructor.
     */
    public RedirectionFilter () {
        // TODO Auto-generated constructor stub
    }

    /**
     * @see Filter#destroy()
     */
    @Override
    public void destroy() {
        // TODO Auto-generated method stub
    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {

            HttpServletRequest request = (HttpServletRequest) req;
            HttpServletResponse response = (HttpServletResponse) res;

            String servletPath = request.getServletPath();

            if (servletPath.endsWith(".html")) {
                response.sendRedirect("http://secondwebsite.com" + servletPath);
            }
            else {
                chain.doFilter(request, response);
            }
}
@Override
    public void init(FilterConfig fConfig) throws ServletException {
        // TODO Auto-generated method stub

    }
}

このフィルターを配置記述子 (web.xml) に追加することを忘れないでください。このフィルターが最初に実行されるように、別のフィルターがある場合は最初に並べます。

<filter>
    <display-name>RedirectionFilter</display-name>
    <filter-name>RedirectionFilter</filter-name>
    <filter-class>your.package.RedirectionFilter</filter-class>

  </filter>
  <filter-mapping>
    <filter-name>RedirectionFilter</filter-name>
     <servlet-name>Servlet which firstwebsite.com run</servlet-name>
  </filter-mapping>

こちらもご覧ください

サーブレット フィルタ

フィルタ インターフェイス

于 2013-09-17T06:09:41.627 に答える