`

URLRewriter c url标签

    博客分类:
  • java
阅读更多

1.urlRewriter  用UrlRewriteWrappedResponse 重写了Response的encodeURL方法。

 

2.帮助文档中说明中,jsp 可以通过

    <%

    response.endoceURL("/hello.do?param=1");

 

   %>

或者

 <c:url value="/hello.do?param=1">

说明response会编 url

来由urlRewriter来自动转成你在<outbound-rule>标签中想要的url

 

在standrad中找到org.apache.taglibs.standard.tag.common.core.UrlSupport.class

用jadx  反编译出来的某段源代码如下:

 

   HttpServletResponse response = (HttpServletResponse)pageContext.getResponse();
    result = response.encodeURL(result);

也是response.encodeURL();

 

结论

说明:实现自定义url标签的时候,可以像c:url一样通过调用 response.encodeURL() 来实现urlRewriter的 页面url转换

      

 

       或者自己实现urlRewriter 通过extends HttpServletResponseWrapper

   实现它的encodeurl方法 来重写页面上的url

 

 

简单模拟下:

response
package com.isvi.web.filter;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;

public class URLReWriterResponse extends HttpServletResponseWrapper {

	public URLReWriterResponse(HttpServletResponse response) {
		super(response);
		
	}
	@Override
	public String encodeUrl(String url) {
		System.out.println("encode url");
		return "myURLRewirter 页面 href 转换";
	}
	@Override
	public String encodeURL(String url) {
		// TODO Auto-generated method stub
		System.out.println("encode url 2");
		return "myURLRewirter 页面 href 转换2";
	}

}

 

filter
package com.isvi.web.filter;

import java.io.IOException;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyURLRewriter extends FilterWrapper {

	@Override
	public void doFilter(HttpServletRequest arg0, HttpServletResponse arg1,
			FilterChain chain) throws IOException, ServletException {
			System.out.println("doFilter");
			URLReWriterResponse ur=new URLReWriterResponse(arg1);
			chain.doFilter(arg0, ur);
		

	}

}

  

 测试jsp

<c:url value="测试"></c:url>
被改写成下边
myURLRewirter 页面 href 转换2

 

分享到:
评论

相关推荐

    ASP.NET地址重写

    - 下载地址:`download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDN URLRewriting.msi` - 注意:下载的可能只是源代码,需要使用Visual Studio 2003编译成`URLRewriter.dll`。如果...

    asp.net下实现URL重写技术的代码

    为了在 ASP.NET 应用程序中实现 URL 重写功能,我们需要借助于 Microsoft 提供的 URLRewriter.dll 组件。以下是一步一步的操作指南: 1. **下载 URLRewriter.dll** - 下载地址1:...

    WIN7+IIS 7.5 伪静态配置

    首先,你需要从官方地址(http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi)下载并安装URLRewriter组件,这是实现IIS伪静态的关键组件。 **第二部:引用...

    aspnet_isapi.dll设置图文方法.net程序实现伪静态

    要实现***程序中的伪静态效果,通常需要借助IIS服务器的URL重写模块或者第三方库URLRewriter。本文将详细介绍如何通过配置aspnet_isapi.dll和使用URLRewriter控件来实现伪静态,并提供相应的Web.Config配置示例和IIS...

    易点内容管理系统 DianCMS v4.4.0 ACC版

    31、URL伪静态功能:采用微软URLRewriter核心架构 32、评论系统 33、后台5种风格主题供选择 34、VS Free标签——任意表数据调用 35、关键字管理 36、完善的会员系统:用户投稿、好友分组、短消息管理、推广奖励、...

    易点内容管理系统 DianCMS v4.4.0 SQL版

    31、URL伪静态功能:采用微软URLRewriter核心架构 32、评论系统 33、后台5种风格主题供选择 34、VS Free标签——任意表数据调用 35、关键字管理 36、完善的会员系统:用户投稿、好友分组、短消息管理、推广奖励、...

Global site tag (gtag.js) - Google Analytics