我的问题很清楚,在没有像
这样的文件名的Web服务器请求中http://whatever.com/path_1/path_b/
当使用“welcome-file-list”(在Tomcat应用程序的web.xml中)获取Web服务器响应时,使用默认的可能页面(deafult.html,index.html等)。
有没有办法通过Web服务器知道确切文件或文件名是服务器?
我需要在过滤器中检查文件,但在请求和/或响应对象中似乎不可用
由于
答案 0 :(得分:0)
不,你不能。隐藏文件的物理细节及其在Web服务器后面的访问的目的是提供对服务器资源的简化和安全访问。
答案 1 :(得分:0)
嗯,我已经尝试过这个解决方案,但我不知道它是否太“耗费资源”。
在我的servlet过滤器中,检查第一个现有文件的欢迎文件列表。
String fullURL = httpRequest.getRequestURL().toString();
String realPath = this.servletContext.getRealPath(filePath);
// if path is not a filename
if (fullURL.endsWith("/")){
// welcome file list
for (String wf : (String[])servletContext.getAttribute("org.apache.catalina.WELCOME_FILES")) {
// first encountered - first used
if ((new File(realPath+"\\"+wf)).exists()) {
// el primero que exista será el utilizado
fullURL += wf;
realPath += "\\"+wf;
break;
}
}
}