接口 URLRewriter
-
public interface URLRewriterURLRewriter用于实现URL重写器。
-
-
方法概要
所有方法 实例方法 抽象方法 修饰符和类型 方法 说明 RewriteResultrewrite(ThreadContext tc, Connection conn, URIParser uriParser)重写URL。java.lang.Stringupdate(java.lang.String str)update()实例方法用于更新URL重写器的内部状态。
-
-
-
方法详细资料
-
rewrite
RewriteResult rewrite(ThreadContext tc, Connection conn, URIParser uriParser) throws java.lang.Throwable
重写URL。
重写URL(即更改存放在uriParser参数的URL)时,只需调用定义在uriParser参数上的各方法(如:uriParser.setPath()、 uriParser.setQuery()等等),最终重写后的URL仍然要缓存在uriParser参数。
如果重写后的URL用于构建资源文件路径或者用于构建HTTP服务模块ID,qhs 为了提高URL的安全性,限制了构成URL路径的字符集。使用已转义(escaped)的URL路径作为参数调用 uriParser.setPath()时,已转义的URL路径应由以下字符构成:'/'、'a'至'z'、'A'至'Z'、'0'至'9'、'-'、'_' 、'.'、 空格的已转义形式、解码为汉字的utf-8字节组的已转义形式等等,否则,qhs发送表达错误的答复给客户 端。同样,使用未转义(unescaped)的URL路径作为参数调用uriParser.setPath()时,未转义的URL路径应 由以下字符构成:'/'、'a'至'z'、'A'至'Z'、'0'至'9'、'-'、'_' 、'.'、空格、解码为汉字的utf-8字节组等等,否 则,qhs发送表达错误的答复给客户端。
- 参数:
tc- 线程上下文。 跟据tc.isPushing()的返回值可以判断存放在uriParser参数的URL的来源:①、tc.isPushing()的返回值等于false,表示存放在uriParser参数的URL来自浏览器发送给qhs的http请求 中的请求URI(Request-URI)。从rewrite()方法返回以后,存放在uriParser参数的URL用于生成http答复。
②、tc.isPushing()的返回值等于true,表示存放在uriParser参数的URL来自urlPaths.xml配置文件的 Push元素说明的推送URL或者来自调用tc.push()的url参数。从rewrite()方法返回以后,存放在 uriParser参数的URL用于生成推送答复。
conn- http连接。uriParser- URI分析器。- 返回:
- 返回值确定存放在uriParser参数上的URL的用途。
- 抛出:
java.lang.Throwable
-
update
java.lang.String update(java.lang.String str) throws java.lang.Throwableupdate()实例方法用于更新URL重写器的内部状态。用户代码通过调用定义在sysThreadSpecificObjectPool 系统对象上的updateURLRewriter()方法来更新URL重写器的内部状态,updateURLRewriter()方法 直接调用此处说明的update()方法。- 参数:
str- 任意字符串。- 返回:
- 返回值可任意。本方法的返回值通过sysThreadSpecificObjectPool.updateURLRewriter()传递给用户代码。
- 抛出:
java.lang.Throwable
-
-