我有两个网站说
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
过滤器接口