论坛首页 Java企业应用论坛

程序也玩闹鬼 <welcome-file-list>到底怎么了

浏览 3612 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2009-05-21  
今天和公司的网络推广人员为了一个问题好生争论了一番,原因是他在做友情链接的时候遇到困难,由于我们网站目前是采用
域名http://www.wibowibo.com
默认页面:index.jsp
index.jsp加载即跳转至index.htm

index.htm才是真正的首页。

web.xml:
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

这样做就是为了优化推广,把*.htm解析为jsp文件。
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.htm</url-pattern>
</filter-mapping>
而这个hibernateFilter是为了open session等一系列操作,然后index.htm里面利用自定义标签查询数据库生成首页。

看到这里有的人就要问了,为什么不直接把index.htm设置为默认页。
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>

我原因也是这样想的,也是这样做的,但是这样做的后果就是报错,因为地址栏里没有*.htm导致filter截取不到从open session失败。根据我的调试,报的错误是null,就是自定义标签对应class文件里的session为null。

所以呢我就是做了一个index.jsp,然后迂回跳转到index.htm,从而使地址栏里有index.htm这个东东,这样终于session open成功了,程序正常运行。

就这样一直沿用至今。

今日网络推广的人和我说这样不利于友情链接,问我能不能把首页默认的index.htm去掉不显示。我说这样不行的,会报错,然后见他很执着,我也解释不清,就说不信我给你做个实验。

实验结果,不用说了,没有报错。。。真实让我大跌眼镜了。。。

我感觉很尴尬,自己曾经用实验得出的结论今天居然被另一次实验给推翻了。。。我于是MSN我以前的老大,因为上次的问题他也有参与,他也很无语,问我是不是url-rewrite的原因,于是我再一个没有用url-rewrite的项目也做了次试验,实验结果是:依然可以!!!

望着屏幕,我真的傻眼了。。。

大家能体会这种感受么?相同的实验,环境一致,结果却截然相反。

难道世上真的有鬼么???????

所以贴出来,javaeye的大鱼们来解释一下。

这里其实有两点
1是
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
这里有没有执行到。
2是
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.htm</url-pattern>
</filter-mapping>
这里有没有执行到。

我已经做了两次实验了,,,哪位有空的欢迎也做一次实验。。。

还有这个<welcome-file-list>具体原理机制是怎么样的?
   发表时间:2009-05-21  
JavaEE容器你用的什么?Tomcat还是Resin?
0 请登录后投票
   发表时间:2009-05-22  
TOMCAT
0 请登录后投票
   发表时间:2009-11-17  
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>

要写在TOMCAT_HOME/conf/web.xml文件中

这个<welcome-file-list>具体原理机制是怎么样的?

优先级比较低,如果没有映射到具体目录的话,才会采用welcome-file-list里面的内容。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics