读书人

java获得请求url 进行301重定向

发布时间: 2012-12-26 14:39:29 作者: rapoo

java取得请求url 进行301重定向

package com.wystu.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Filter301 implements Filter {    protected String encoding = null;    protected FilterConfig filterConfig = null;    protected boolean ignore = true;    // --------------------- Public Methods    public void destroy() {        this.encoding = null;        this.filterConfig = null;    }    public void doFilter(ServletRequest request, ServletResponse response,                         FilterChain chain)throws IOException, ServletException {    HttpServletResponse httpResponse=(HttpServletResponse)response;    HttpServletRequest httpRequest=(HttpServletRequest)request;    //取得完整请求url-------------------String strBackUrl = "http://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + request.getServletPath() + "?" + this.codeToString(request.getQueryString());        //------------------------------------        // Conditionally select and set the http301 redirect to be used       String redirectUrl ="";    System.out.println("http://www." + httpRequest.getServerName());    if(!httpRequest.getServerName().startsWith("www.")){    redirectUrl = redirectUrl = "http://www." + httpRequest.getServerName();    if(httpRequest.getServerPort()!=80){    redirectUrl += ":" + httpRequest.getServerPort();    }    redirectUrl += httpRequest.getRequestURI();    //redirectUrl += httpRequest.getContextPath() + httpRequest.getServletPath();    if(!( httpRequest.getQueryString()==null || "".equals(httpRequest.getQueryString()) )){    redirectUrl+="?" + this.codeToString(httpRequest.getQueryString());    }    httpResponse.setStatus(301);        httpResponse.setHeader( "Location", redirectUrl);        httpResponse.setHeader( "Connection", "close" );        return;    }    System.out.println("redirectUrl="+redirectUrl);// Pass control on to the next filter        chain.doFilter(request, response);    }    public void init(FilterConfig filterConfig) throws ServletException {    }    public  String codeToString(String str) {        String strString = str;        try {            byte tempB[] = strString.getBytes("ISO-8859-1");            strString = new String(tempB);            return strString;        } catch (Exception e) {            return strString;        }    } }<filter>        <filter-name>filter301</filter-name>        <filter-class>com.wystu.filter.Filter301</filter-class>    </filter>    <filter-mapping>        <filter-name>filter301</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>


RIA知识库
flex
RIA

读书人网 >编程

热点推荐