我想知道是否有人有只通过servlet访问网站资源的解决方案。我的所有资源都在WEB-INF下。换句话说,我不希望用户直接访问我的任何资源。
您可以对最终用户隐藏jsp。事实上,您甚至不必在Web应用程序中部署原始jsp文件,您可以预编译它们:
http://tomcat.apache.org/tomcat-5.5-doc/jasper-howto.html#Web应用程序编译
隐藏html/js/css文件的唯一方法就是不要使用它们。发送到浏览器的任何内容都可以在那里查看。
您可以为此使用ServletContext#getResource()
。
URL resource = getServletContext().getResource("/WEB-INF/file.ext");
File file = new File(resource.getPath());
// ...
您甚至可以使用ServletContext#getResourceAsStream()直接获取输入流:
InputStream input = getServletContext().getResourceAsStream("/WEB-INF/file.ext");
// ...
正如您在示例中看到的,ServletContext
在servlet中通过继承的GenericServlet#getServletContext()
方法可用。
也就是说,我不希望用户直接访问我的任何资源。有点矛盾。您是通过servlet来提供这些资源的吗?servlet可以通过URL直接访问。这与“直接访问”有何不同?还是只想根据某些条件控制访问?我想说,过滤器更适合这个任务。
通常只会完全隐藏JSP文件,不允许直接访问。在一个充当前端控制器的Servlet中(根据MVC模式),您可以使用RequestDispatcher#forward()
将请求转发到JSP文件,然后您可以通过ServletRequest#getRequestDispatcher()
获得这些请求。
request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
问题内容: 我已经在我的jsf应用程序中实现了spring安全性。一切正常,除了静态资源需要身份验证。这是我的配置 经过一些谷歌搜索,大多数解决方案是添加MVC资源标签。 我发现了类似的注释,并为此添加了一个配置类 但是仍然静态资源需要身份验证。有关如何进行此工作的一些帮助将非常有用。 注意:我的资源位于中。问题是如果用户未登录,则css,js的效果不会显示在登录页面中。用户登录一次,登录后进入登
JPEG、PNG 或 GIF 图像资源可以从 PSD 文件图层或图层组中的内容生成。将受支持的图像格式扩展添加到图层名称或图层组名称时,会自动生成资源。(可选)您也可以指定所生成图像资源的品质和大小参数。 从 PSD 文件生成图像资源对于多设备 Web 设计来说尤其有用。 视频:在 Photoshop 中生成 Web 资源视频:在 Photoshop 中生成 Web 资源这段视频会向您介绍如何通过
我是Spring的新手,开始从3.0.5升级到3.2.18,我尝试过修改版本,将工件ID更改为新版本(例如.springframework.core改为spring-core,等等)并在声明中将XSD版本从3.0更新到3.2。我在applicationcontext-security.xml中遇到了一个关于intercept-url的问题 在上述文件中, 应用程序抛出以下异常。 我尝试了不同的方法
当生成发票的PDF文件时,我试图在Spring后端中使用Angular应用程序中的徽标。 invoice.logo.url=http://localhost:4200/assets/gfx/img/logos/rkmteam-logo.png 该图像不会显示在PDF中,但当我将其上载到imgur时。com,那么它工作得很好。 手动访问url有时会显示图片,但有时会给我这个错误: 如何访问外部应用程
问题内容: 我将servlet转发到JSP时,我在加载CSS和图像以及创建指向其他页面的链接时遇到了麻烦。具体而言,当我把我的给index.jsp的CSS被加载并正在显示我的图片。但是,如果我把我的给HomeServlet其控制推进到index.jsp,CSS中没有被应用,并且不显示我的图片。 我的CSS文件在中web/styles/default.css。 我的图像在web/images/。 我
问题内容: 我有一个包含要分发的资源(主要是缓存,日志记录等的配置)的文件。 我对这些资源的相对路径有疑问,所以我做了在另一个stackoverflow问题中发现的问题,该问题说这是有效的方法: 不幸的是,这不起作用。 有任何想法吗?谢谢! PS:显然我不能使用绝对路径,如果可能,我想避免使用环境变量 问题答案: 确保资源文件夹在项目设置中列为源文件夹。另外,确保在构建jar时将资源文件夹设置为导