高分求助在tomcat里面实现URL重写

lEFTmOON 2007-06-14 10:16:27
网站已经基本完成,到后期才发现,如果用户关闭了cookie,是没有办法保持session的,上网查了下资料,也知道可以通过response.encodeURL()来实现URL的重写,但目前网站已经写了大部分(没有使用struts和其它的taglib标记库),再回头一个一个改为response.encodeURL()工作量又大又容易出错,请问大家有没有什么好的办法来完成这个麻烦的任务?

尝试过(http://tuckey.org/urlrewrite/)库,但也没有解决问题。
...全文
1040 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruanjiantaotao 2007-06-16
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"
"http://tuckey.org/res/dtds/urlrewrite2.6.dtd">
<urlrewrite>
<rule>
<from>//deluser([0-z]+).html</from>
<to>/delete.jsp?username=$1</to>
</rule>
</urlrewrite>
shan1119 2007-06-15
  • 打赏
  • 举报
回复
不会.或者如楼上方法.
laughsmile 2007-06-15
  • 打赏
  • 举报
回复
你可以写一个程序,遍历你所有的java文件,自动替换为response.encodeURL。
这样就不用你一个一个改了。并且以后的开发还可以用得到
ronanljy2 2007-06-15
  • 打赏
  • 举报
回复
urlrewrite不能解决问题么?这个就是专门用于重写的
likgui 2007-06-15
  • 打赏
  • 举报
回复
关注
cao_david 2007-06-15
  • 打赏
  • 举报
回复
一个简单的方法就是自定义一个继承Filter的类来处理
web.xml配置添加

<filter>
<filter-name>EncodeURLFilter</filter-name>
<filter-class>com.avantouch.action.EncodeURLFilter</filter-class>
<init-param>
<param-name>encode</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>
<filter>

<filter-mapping>
<filter-name>HibernateFilter</filter-name>
<url-pattern>/*</url-pattern>//可以指定目录及文件类型如:/webbackend/*.jsp
</filter-mapping>

package com.avantouch.action;

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 EncodeURLFilter implements Filter {
private String encode = "gb2312";
public void destroy() {

}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(this.encode);
response.setContentType("text/html;charset=" + encode);
HttpServletRequest httpServletRequest = ((HttpServletRequest) request);
HttpServletResponse httpServletResponse = ((HttpServletResponse) response);
httpServletResponse.encodeURL(httpServletRequest.getRequestURI());
chain.doFilter(httpServletRequest, httpServletResponse);
}

public void init(FilterConfig config) throws ServletException {
this.encode = config.getInitParameter("encode");
}

}

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧