WEB-INF中创建的文件不能直接从外部访问到, 这是servlet api的标准里规定的, 所有web容器也都是按此实现的。
想用的话,可以通过代码(如spring mvc)或在可以访问到的jsp里用include标签来间接访问。
静态资源的保护区访问
package com.example;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import org.apache.catalina.servlets.DefaultServlet;
public class StaticServlet extends DefaultServlet
{
protected String pathPrefix = "/static";
public void init(ServletConfig config) throws ServletException
{
super.init(config);
if (config.getInitParameter("pathPrefix") != null)
{
pathPrefix = config.getInitParameter("pathPrefix");
}
}
protected String getRelativePath(HttpServletRequest req)
{
return pathPrefix + super.getRelativePath(req);
}
}
在应用web.xml配置
StaticServlet
com.example.StaticServlet
pathPrefix
/WEB-INF/static
StaticServlet
/static/*