问题描述
这是我第一次使用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);
}
<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”})
有关。