【问题标题】:Page redirecting in a web application at server side服务器端 Web 应用程序中的页面重定向
【发布时间】:2013-09-21 10:06:36
【问题描述】:

我有两个网站说

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

我正在使用弹簧。有人可以指导我如何做到这一点。稍后我也想根据发送请求的设备做一些处理。

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

【问题讨论】:

标签: java spring servlets spring-mvc servlet-filters


【解决方案1】:

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

Filter Interface

【讨论】:

  • 感谢您的回复。正如我所说,我会将 firstwebsite 中的所有页面放入 secondwebsite.com。我将关闭第一个网站。理想情况下,它是一条不再存在的虚拟路径。我是否需要对 apache 服务器进行任何更改。
  • 当你在 firstwebside 中放置页面时,不要删除文件,因为如果没有请求的页面,你会在过滤器运行之前得到 404。我的解决方案不需要对 apache 服务器进行任何更改,只需添加过滤器,然后将页面重定向到新域。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
  • 2011-06-10
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 2022-08-09
  • 2023-03-25
相关资源
最近更新 更多