java - 访问 WEB-INF 文件夹中的网站背景和其他装饰图像
问题描述
我正在尝试使用一些图像来装饰我的网站。但我无法访问那些放在 WEB-INF 文件夹中的图像。我的代码如下所示:
<img id="welcomeGIF" src="/MyCourses/WebContent/WEB-INF/css/welcome.gif " class="ribbon"/>
如果我只是将它们放在 WebContent 目录下的 WEB-INF 文件夹之外,访问这些图像就没有问题。我想知道我做错了什么?我是 web 应用程序开发的新手,所以我不确定是否所有的 css 文件都应该放在 WEB-INF 中。如果是这样,我如何访问它们?
这是我的程序的结构:
解决方案
原因:
- 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 配置来设置直接访问静态文件
推荐阅读
- bash - 如何在bash中的字符串末尾增加一个数字?
- javascript - 如何在 app.on(“退出前”)中使用 shutdown.bat 停止 Tomcat?
- javascript - 如何将json数据转换成表格
- java - JAR 中的 Jsp 标记文件有时会给出类未找到异常
- java - jsch ssh 连接无法获得authorized_keys
- python - Python 错误“列表分配索引超出范围”
- google-apps-script - Google 表格侧边栏 - 基于列参考
- r - 编写一个转换变量模式和类的函数
- python-3.x - 为什么包含空字符串的列表是真实的?
- python - 用生成器替换函数只会导致一次迭代