很多人肯定用tomcat的时候会遇到类似的问题。。。
配置了
<welcome-file-list>
	<welcome-file>index.do</welcome-file>
</welcome-file-list>


但没有用,还是会404错误....挺烦人的,只能弄一个index.html重定向到index.do
但无疑是网站首页访问效率降低了,等于request了2个请求。。

无意看了一下tomcat注释
When a request URI refers to a directory, the default servlet looks for a "welcome file" within that directory and, if present, to the corresponding resource URI for display

也就是说,必须web-app目录下有index.do这个文件。。。。。。于是就加个.do后缀的空文件咯,居然成功了。。。
评论
xuehongliang 2007-06-07
不错的小技巧!!
hbcui1984 2007-06-07
恩,明白了,如果在webapp下有个index.do,里面又没有内容,则会拼成URL,查找servlet
而如果里面有可执行代码,则要先执行其自身代码了
zhangfengsimon 2007-06-07
Lucas Lee 写道
dingyuan 写道
Lucas Lee 写道
可以直接设置一个Servlet为默认的Servlet,将url-pattern设置为/*

最可怕是有图片,加入有20个img,又要经过20次servlet


怎么会呢?
这种方法跟普通servlet的(包括Action)设置没有什么区别,servlet按MVC框架来说还是转向一个index.jsp.
Lucas Lee 2007-05-24
dingyuan 写道
Lucas Lee 写道
可以直接设置一个Servlet为默认的Servlet,将url-pattern设置为/*

最可怕是有图片,加入有20个img,又要经过20次servlet


怎么会呢?
这种方法跟普通servlet的(包括Action)设置没有什么区别,servlet按MVC框架来说还是转向一个index.jsp.
阳光晒晒 2007-05-24
写一个空文件放到对应的目录下面,
起个名叫XXX.do
写一个模块专门在特定的时候打开此文件,把连接写在上面
过个把小时删去文件内容。。。。

一个大防火墙都找不到的空间产生了。。。
aone 2007-05-24
阳光晒晒 写道
dingyuan 写道
xly_971223 写道
我的index。do中的代码
<script type="text/javascript" language="JavaScript">
	alert();
</script>

dddddddddddddd


执行后 先弹出一个窗口 点确定后输出 dddddddddddddd


在index.do中不加入任何代码,就会转向index.do,执行action,你非要加代码,我也没有办法


了解了。。。
只是有这么一种想法而已
手边没项目练习让其它人试试

一种新的check方式产生了。。。

哈哈哈,LZ你太有才了..
阳光晒晒 2007-05-24
dingyuan 写道
xly_971223 写道
我的index。do中的代码
<script type="text/javascript" language="JavaScript">
	alert();
</script>

dddddddddddddd


执行后 先弹出一个窗口 点确定后输出 dddddddddddddd


在index.do中不加入任何代码,就会转向index.do,执行action,你非要加代码,我也没有办法


了解了。。。
只是有这么一种想法而已
手边没项目练习让其它人试试

一种新的check方式产生了。。。
dingyuan 2007-05-24
Lucas Lee 写道
可以直接设置一个Servlet为默认的Servlet,将url-pattern设置为/*

最可怕是有图片,加入有20个img,又要经过20次servlet
dingyuan 2007-05-24
Lucas Lee 写道
可以直接设置一个Servlet为默认的Servlet,将url-pattern设置为/*

这样的话假如我要引用js文件,假如要引用4个js文件,每个js文件都要经过servlet..影响效率
Lucas Lee 2007-05-24
可以直接设置一个Servlet为默认的Servlet,将url-pattern设置为/*
dingyuan 2007-05-24
Qieqie 写道
很幽默,很好玩的一件事情,
问题是还有必要取名index.do吗,直接取名index.html,并配置index.html算了,免得混淆

对了,补一下:
你配置了index.do为welcome file,那他还会去访问strut对应的Action吗
如果会,你很牛
不会的话,呵呵,打


如果web.xml的mapping直接取名为index.html,那么所有的.html后缀的文件都要通过servlet,但有一些静态文件是不需要通过servlet的,岂不自己断了自己的后路
dingyuan 2007-05-24
xly_971223 写道
我的index。do中的代码
<script type="text/javascript" language="JavaScript">
	alert();
</script>

dddddddddddddd


执行后 先弹出一个窗口 点确定后输出 dddddddddddddd


在index.do中不加入任何代码,就会转向index.do,执行action,你非要加代码,我也没有办法
dingyuan 2007-05-24
xly_971223 写道
阳光晒晒 写道
xly_971223 写道
就是说tomcat会去检查这个index.do文件是不是存在,但是不会去执行它而是继续执行index.do这个servlet ? 是这样吗

在那个空文件中写个弹出框。。。看看有没有走这个index.do(空文件)还是直接走action了

能执行吗? 要是能执行 麻烦就大了。传一个文件到服务器 把服务器给格式化了也有可能

根本是不可能的事情,首先,没有人会在welcomelist中配置index.exe ,其次,tomcat也不是解析以.exe为后缀的url
xly_971223 2007-05-24
我的index。do中的代码
<script type="text/javascript" language="JavaScript">
	alert();
</script>

dddddddddddddd


执行后 先弹出一个窗口 点确定后输出 dddddddddddddd
dingyuan 2007-05-24
实践证明一切,有些东西感觉不可能发生,但的确发生了
tomcat的welcome list机制我觉得应该不是url的映射,而是看看webapp的根目录里面有没有welcome list中所指明的文件,有就会执行这个url,而不是文件,这个机制和iis的机制不一样
xly_971223 2007-05-24
阳光晒晒 写道
xly_971223 写道
就是说tomcat会去检查这个index.do文件是不是存在,但是不会去执行它而是继续执行index.do这个servlet ? 是这样吗

在那个空文件中写个弹出框。。。看看有没有走这个index.do(空文件)还是直接走action了

能执行吗? 要是能执行 麻烦就大了。传一个文件到服务器 把服务器给格式化了也有可能
zelsa 2007-05-24
的确可以,action执行了。

不过这个方法也仅限Tomcat。
阳光晒晒 2007-05-24
xly_971223 写道
就是说tomcat会去检查这个index.do文件是不是存在,但是不会去执行它而是继续执行index.do这个servlet ? 是这样吗

在那个空文件中写个弹出框。。。看看有没有走这个index.do(空文件)还是直接走action了
weiqingfei 2007-05-24
有点儿......

诡异。
aone 2007-05-24
它首先会检查<welcome-file-list>里的<welcome-file>的物理文件是否存在,如果存在就把这个文件名拼在url里了,拼在url里去请求就可以找到指定的action了.
dingyuan
搜索本博客
博客分类
存档
最新评论
评论排行榜