公司的website项目即将发布,但在部署到测试环境(OC4J)的时候却遇到了一个奇怪的问题——居然无法获取页面参数!
由于Oracle Application
Server的licence迟迟没有到位,项目组内部是将Tomcat将为开发环境的。Website采用struts1框架,在Tomcat上面进行开发的时候工作正常,发布试验也没有任何问题,但是周五向OC4J部署的时候却遇到上述的困难。虽然我并没有直接参与website项目组,但是在他们遇到技术困难的时候还是需要去支持一下。我大概花了三个小时时间,终于找到问题所在了——原来OC4J不支持.htm和.html后缀,真是让人始料未及!由于对OC4J了解比较少,不知这是不是它的一个bug。Struts1一般都采用.do作为url后缀,但website项目组没有采用这个惯例,不料却遇到这样一个奇怪的问题,让人哭笑不得。JSP页面有太多以.htm作为后缀的链接,如果一个个去修改的话,确实是一个痛苦的重复劳动过程。
周五在找到这个问题的后,我就没有再去管这个事情了,因为当时直观的想法就是将.htm后缀全部换成.do或者.action之类的后缀,估计website组的成员也是这样干的。但是今天突然想到了一个好的办法,那就是写一个AdapterFilter(实现Filter接口),将后缀.htm修改为其它的后缀,可以很快地搞定这个问题。
插入表情