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");