Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 图像不';当我使用身份验证过滤器时,不能在jsf中加载_Java_Jsp_Jakarta Ee_Uri_Servlet Filters - Fatal编程技术网

Java 图像不';当我使用身份验证过滤器时,不能在jsf中加载

Java 图像不';当我使用身份验证过滤器时,不能在jsf中加载,java,jsp,jakarta-ee,uri,servlet-filters,Java,Jsp,Jakarta Ee,Uri,Servlet Filters,我使用身份验证过滤器。这是过滤器的一部分: if (reqURI.indexOf("/index.xhtml") >= 0) chain.doFilter(request, response); else resp.sendRedirect(reqt.getContextPath() + "/JSFViews/Login.xhtml"); 在jsf页面中,我有一些图像 <h:graphicImage library="image" name="logo.png" /

我使用身份验证过滤器。这是过滤器的一部分:

if (reqURI.indexOf("/index.xhtml") >= 0)
    chain.doFilter(request, response);
else
    resp.sendRedirect(reqt.getContextPath() + "/JSFViews/Login.xhtml");
在jsf页面中,我有一些图像

<h:graphicImage library="image" name="logo.png" />

但它不起作用。我该怎么办?

您可以更改条件以根据文件扩展名筛选资源

if (reqURI.indexOf("/index.xhtml") >= 0 || new URI(reqURI).getPath().endsWith(".png"))
    chain.doFilter(request, response);

如果你移除一个过滤器,你能访问它们吗?@RomanC yes。这是完全正确的,我相信graphicImage将呈现类似(检查html)的内容。所以你的支票行不通。例如,您可以测试“javax.faces.resource”,但我认为最好通过查看会话(或SessionScoped bean)来检查用户是否登录。非常感谢。你帮了我很多。我的问题已经解决了。谢谢
if (reqURI.indexOf("/index.xhtml") >= 0 || new URI(reqURI).getPath().endsWith(".png"))
    chain.doFilter(request, response);
String servletPath = request.getServletPath();

if (servletPath.equals("/JSFViews/index.xhtml") || servletPath.startsWith(ResourceHandler.RESOURCE_IDENTIFIER))
    chain.doFilter(request, response);
else
    resp.sendRedirect(request.getContextPath() + "/JSFViews/Login.xhtml");