`
lan13217
  • 浏览: 500328 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

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

    博客分类:
  • Java
阅读更多
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
分享到:
评论

相关推荐

    (301重定向)urlrewritefilter-4.0.3

    当一个HTTP请求到达时,过滤器会检查这些规则,如果请求URL匹配到某个规则,则执行相应动作,如301重定向。 301重定向对于SEO(搜索引擎优化)至关重要,因为它能确保旧链接的权重传递到新链接。搜索引擎会识别301...

    消除浏览器的301重定向缓存

    浏览器的301重定向缓存是一种常见的问题,当用户输入特定的URL时,浏览器会自动重定向到另一个URL,而不管用户的意图是什么。这是因为浏览器会缓存301重定向的结果,以便加快网页的加载速度。但是,这种缓存机制也会...

    java servlet请求转发重定向

    ### Java Servlet 请求转发与重定向详解 #### 一、引言 在Java Web开发中,请求转发和重定向是两种非常重要的技术手段,用于控制页面之间的跳转逻辑。这两种技术虽然都能实现页面间的跳转,但其工作原理、应用场景...

    请求重定向个请求分派

    请求重定向是指将客户端的请求重新定向到另一个 URL 的过程。这个过程通过 HttpServletResponse 接口提供的 sendRedirect() 方法实现。sendRedirect() 方法将生成 302 响应码和 Location 响应头,从而通知客户端去...

    请求转发与重定向

    或者是网站进行了改版,旧的URL不再使用,需要将旧URL的访问重定向到新URL。 #### 五、总结 请求转发和重定向虽然都能实现页面跳转,但是其工作原理和适用场景不同。开发者应该根据实际需求选择合适的方法。...

    java实现301跳转和重定向的方法

    在Java Web开发中,301跳转和重定向是两个常见的HTTP状态码技术,用于指导浏览器或客户端从一个URL转向另一个URL。这两种方法在不同的场景下有着不同的用途,但都涉及网页内容的位置变动或者请求的重定向。下面将...

    urlrewritefilter-4.0.3.jar 实现网站伪静态301重定向

    `UrlRewriteFilter` 是一个基于Java的URL重写工具,适用于Tomcat等Servlet容器,能够帮助开发者实现复杂的URL转换规则,包括301永久重定向。在本文中,我们将详细探讨`UrlRewriteFilter-4.0.3.jar`的使用方法、原理...

    servlet请求转发、重定向、包含

    - 请求转发是在服务器内部进行的,它不会改变浏览器的URL。当Servlet接收到请求后,可以通过`RequestDispatcher`对象的`forward()`方法将请求转发给其他资源,如另一个Servlet、JSP页面等。 - 请求转发共享相同的...

    javaServlet请求转发和重定向.pdf

    * 请求转发过程结束后,浏览器地址栏保持初始的 URL 地址不变,而 sendRedirect() 方法重定向的访问过程结束后,浏览器地址栏中显示的 URL 会发生改变,由初始的 URL 地址变成重定向的目标 URL。 * forward() 方法的...

    java实现响应重定向发送post请求操作示例

    本文章主要介绍了java实现响应重定向发送post请求操作的相关知识点,通过实例形式分析了java请求响应、重定向及数据处理相关操作技巧。 一、什么是重定向? 重定向是指在服务器端将用户的请求redirect到另一个页面...

    请求转发与重定向的区别

    服务器接收到请求后,返回一个HTTP状态码302(临时重定向)或301(永久重定向),并附带一个新的URL。客户端接收到这个响应后,会自动发起一个新的请求到新的URL,这意味着浏览器的地址栏会显示新的URL。由于是两个...

    java 版Url转换工具,可得到真实的URL

    2. **重定向处理**:在Web服务中,URL重定向是常见的现象,当访问一个URL时,服务器可能会返回301或302状态码,引导浏览器或客户端去访问另一个URL。这个工具能够跟踪这些重定向,直到获取到最终的目标URL。 3. **...

    Java 获取网络302重定向URL的方法

    在实际应用中,我们需要获取到重定向后的URL以便正确处理请求。本文将详细介绍两种在Java中获取302重定向URL的方法。 ### 方法一:使用`HttpURLConnection` `HttpURLConnection`是Java内置的HTTP客户端,它提供了...

    java server face重定向

    可以将参数附加到重定向URL后面,或者利用`ExternalContext.encodeActionURL()`或`encodeResourceURL()`方法对URL进行编码,并将结果作为`redirect()`方法的参数。 5. 重定向和视图刷新: 重定向通常用于避免由于...

    利用HttpSession实现Ajax请求重定向.docx

    HttpSession 实现 Ajax 请求重定向 标题:利用 HttpSession实现Ajax请求重定向 描述:如何在 Ajax 请求正常执行的情况下,实现网页重定向 标签:Ajax 重定向 HttpSession post 在本文中,我们将探讨如何使用 ...

    JAVA实现301永久重定向方法

    在Java Web开发中,有时我们需要将用户从一个URL重定向到另一个URL,特别是在网站结构更改或URL优化时。301永久重定向是一种HTTP状态码,表示原URL已经永久性地移动到新的位置。这种重定向对SEO(搜索引擎优化)非常...

    JAVA中三种URL连接方法

    本文将深入探讨JAVA中三种常见的URL连接方法,即使用`URL`类的`openConnection()`方法、使用`HttpURLConnection`类,以及采用`HttpClient`库进行网络请求。 #### `URL`类及其使用 `URL`类是JAVA中用于表示统一资源...

    请求转发与重定向详解代码

    重定向则意味着新的请求,原有的请求参数不会自动带到新请求中,除非在重定向URL中明确指定。 4. **性能**:请求转发相对更快,因为它不涉及网络往返;重定向需要两次网络请求,可能会影响性能。 5. **应用场景**...

    java禁止直接url访问图片

    在过滤器中,可以检查请求URL,如果匹配到特定的图片路径,就进行权限检查,阻止非法访问。 7. **图片防盗链**: 图片防盗链技术用于防止其他网站未经许可引用你的图片资源,造成流量损失。这可以通过检查HTTP请求...

    HttpServletResponse对象、HttpServletResponse应用、请求重定向

    1. 使用`sendRedirect(String location)`方法进行重定向,`location`参数通常是相对或绝对URL。例如,`response.sendRedirect("/login.html")`将引导用户浏览器跳转至登录页面。 2. 重定向过程: - 服务器收到请求...

Global site tag (gtag.js) - Google Analytics