/**
* 功能:将http://example.com重定向至http://www.example.com
* */
private static final String DOMAIN = "aaa.com";
/**
* 在DispatcherServlet之前执行
* */
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object handler) throws Exception {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
// 获取域名
String serverName = request.getServerName();
// 获取请求路径
String path = httpServletRequest.getRequestURI();
//queryString 支持多参数 ?a=1&b=2#&c=22## 等
String queryString = (httpServletRequest.getQueryString() == null ? "" : "?"+httpServletRequest.getQueryString()); // 获取路径中的参数
int end = serverName.indexOf(DOMAIN);
if (end!= -1 && end == 0) { //判断是否是example.com,如果是通过ip地址访问暂时不处理 //end == -1 || end == 0(不是本域名都跳转)
httpServletResponse.setStatus(301);
httpServletResponse.setHeader( "Location", "http://www."+DOMAIN+path+queryString);
httpServletResponse.setHeader( "Connection", "close" );
return false;
}
return true;
}