服务器端 Web 应用程序中的页面重定向



我有两个网站说

1. firstwebsite.com
2. secondwebsite.com

第一网站中的所有页面都是静态的。现在我想将所有页面移动到 firstwebsite.com secondwebsite.com。我想关闭 firstwebsite.com 的所有服务器

我还想确保当 URL firstwebsite.com/** 应重定向到 secondwebsite.com/**

firstwebsite.com/abc.html 应重定向至 secodnwebsite.com/abc.html

我正在使用弹簧。有人可以指导我如何做吗?稍后我还想根据发送请求的设备进行一些处理。

如果我能得到上面的一些参考资料,那就太好了。

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>

参见

Servlet Filters

过滤器接口

最新更新