Страница JSF / XHTML называется несколько раз - PullRequest
0 голосов
/ 02 декабря 2018

Я работаю в университете, мне нужно создать простую систему входа в систему, которая запрещает прямой URL-доступ к некоторым страницам, если нет входа, я пытался использовать фильтр, но когда я загружаю любую страницу, фильтр вызываетсяпо крайней мере 20 раз, а затем вызывается еще раз, если я позволю, через 30 секунд вызывается 80 раз, потому что он хочет, мне нужна помощь, пожалуйста, вот мой код.

Фильтр

package edu.eci.pdsw.misc;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import edu.eci.pdsw.view.LoginBean;

public class LoginFilter implements Filter {


public void doFilter(ServletRequest req, ServletResponse res, FilterChain     chain) throws IOException, ServletException {
    // Get the loginBean from session attribute
    HttpServletRequest request = (HttpServletRequest) req;
    HttpServletResponse response = (HttpServletResponse) res;
    HttpSession session = request.getSession(false);
    System.out.println(" ");
    System.out.println(" ");
    System.out.println(" ");
    System.out.println(" ");
    System.out.println(" ");
    System.out.println(String.valueOf(LoginBean.mas()));
    boolean loggedIn = (session != null) && (session.getAttribute("user") != null);

        if (!loggedIn) {
            String contextPath = ((HttpServletRequest)request).getContextPath();

            ((HttpServletResponse)response).sendRedirect(contextPath + "/Inicio.xhtml");

        }
        chain.doFilter(request,response);



}

public void init(FilterConfig config) throws ServletException {}

public void destroy() {} 

}

web.xml

    <?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <context-param>
        <param-name>primefaces.THEME</param-name>
        <param-value>omega</param-value>
    </context-param>
    <!-- Login filter -->
    <filter>
        <filter-name>LoginFilter</filter-name>
        <filter-class>edu.eci.pdsw.misc.LoginFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>LoginFilter</filter-name>
        <url-pattern>*.xhtml</url-pattern>
    </filter-mapping>


    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>faces/Inicio.xhtml</welcome-file>
    </welcome-file-list>
    <listener>
        <listener-class>edu.eci.pdsw.guice.GuiceContextListener</listener-class>
    </listener>
</web-app>

если что-то еще понадобится, пожалуйста, скажите, что я его здесь выложу, спасибо за помощь

...