原因:
- WEB-INF目录下的资源有规则不能通过url访问(客户端)
- 因此,当 html 加载时, html 标签将向服务器发送请求(到 url
MyCourses/WebContent/WEB-INF/css/welcome.gif),而资源在 WEB-INF 目录中,因此您无法访问它;
怎么解决
- java程序员可以访问web-inf目录,所以你可以使用Dispatch request api
网络:
<img id="welcomeGIF" src="/MyCourses/getWelcome" class="ribbon"/>
java程序员(FileAccess.class)
request.getRequestDispatcher("/WEB-INF/css/welcome.gif").forward(request,response);
web.xml
<servlet>
<servlet-name>getGif</servlet-name>
<servlet-class>FileAccess</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>getGif</servlet-name>
<url-pattern>/getWelcome</url-pattern>
- 把静态文件放到Web-inf目录之外,(虽然安全性不如以前,但可以这样做)
- 如果你使用 springMvc 框架,你可以使用 mvc:resources 配置来设置直接访问静态文件