最近遇到一个客户需求,当用户在点击一个链接时,要求该链接自动转向另一个链接。主要用来规范已有的网站链接,形成模块化管理。例如,点击www.xxx.net/homesinfo自动跳转到www.xxx.net/wscz/home/index.jsp,类似的这样,方便网站管理人员统计链接。
基于此需求,我做了一个表,内容如上:
create table VIRTUALURL (
virtualurl_id NUMBER(10) not null, --ID
virtualurl varchar2(200), --发送给前端用户看的虚拟url
realurl varchar2(200), --对应的真实url
constraint PK_VIRTUALURL_ID primary key (virtualurl_id)
);
/
create sequence VIRTUALURL_ID_SEQ start with 1 increment by 1 cache 20
/
然后开始写代码。我用的是filter,想来想去也只有这样最好做了。可是好久都没有碰filter了哟,,郁闷,都有些想不起来了。回顾了一下,下面就是代码:
然后在web.xml文件中配置吧!
这里主要看requestDispatcher和chain.doFilter。由于好久没用了,不管转向什么页面总是报未找到。很奇怪,偶然间想到,是不是在forward之后继续执行下面的代码呢???测试一下,果然,程序在forward之后居然还会执行下面的代码,这种问题甚至会造成死循环。如果在forward之后继续执行过滤链(chain.doFilter(xxx,xxx))的话,那后台将报response重复提交这个错误。呵呵,开始蛮郁闷的。so,在forward语句之后,加上return ; 解决问题了!
综上所述:知识还是要不断的温故知新的。