贴上Servlt过滤器后,CSS和JS无法正常工作

问题描述

这是我第一次使用dofilter函数对我的jsp Web应用程序进行身份验证,一旦添加它并且CSS和JS在任何页面上均不起作用,我就一遍又一遍地进行搜索,但是无法在代码中应用解决方案 在下面找到dofilter方法

@Override
public void doFilter(ServletRequest req,ServletResponse resp,FilterChain chain)
        throws IOException,servletexception {
    HttpServletRequest request = (HttpServletRequest) req;
    HttpServletResponse response = (HttpServletResponse) resp;

    String servletPath = request.getServletPath();

    // User information stored in the Session.
    // (After successful login).
    UserAccount loginedUser = AppUtils.getLoginedUser(request.getSession());

    if (servletPath.equals("/login")) {
        chain.doFilter(request,response);
        return;
    }

    HttpServletRequest wrapRequest = request;

    if (loginedUser != null) {
        // User Name
        String userName = loginedUser.getUserName();

        // Roles
        List<String> roles = loginedUser.getRoles();

        // Wrap old request by a new Request with userName and Roles information.
        wrapRequest = new UserRoleRequestWrapper(userName,roles,request);
    }

    // Pages must be signed in.
    if (SecurityUtils.isSecurityPage(request)) {

        // If the user is not logged in,// Redirect to the login page.
        if (loginedUser == null) {

            String requestUri = request.getRequestURI();

            // Store the current page to redirect to after successful login.
            int redirectId = AppUtils.storeRedirectAfterLoginUrl(request.getSession(),requestUri);

            response.sendRedirect(wrapRequest.getcontextpath() + "/login?redirectId=" + redirectId);
            return;
        }

        // Check if the user has a valid role?
        boolean hasPermission = SecurityUtils.hasPermission(wrapRequest);
        if (!hasPermission) {

            Requestdispatcher dispatcher //
                    = request.getServletContext().getRequestdispatcher("/accessDeniedView.jsp");

            dispatcher.forward(request,response);
            return;
        }
    }

    chain.doFilter(wrapRequest,response);
}

还在页面中找到CSS链接

<link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet"
type="text/css">

<link
href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i"
rel="stylesheet">

解决方法

我最终在浏览项目时发现了这个问题,这与从Login servelt中删除“ /”并成为@WebServlet({“ / login”})

有关。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...