Meine config in applicationContext.xml abzufangen sich wie folgt:Wie Ressourcen Feder Abfangjäger oder Filter
<mvc:annotation-driven/>
<context:component-scan base-package="com.lixindi.gradproject"/>
<mvc:resources mapping="login/**" location="login/"/>
<mvc:resources mapping="admin/**" location="admin/"/>
<mvc:resources mapping="vote/**" location="vote/"/>
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/admin/**"/>
<bean class="com.lixindi.gradproject.interceptor.LoginInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
LoginInterceptor:
public class LoginInterceptor extends HandlerInterceptorAdapter {
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
if (httpServletRequest.getSession().getAttribute("user") == null) {
httpServletResponse.sendRedirect("/login/login.html");
System.out.println("invoked");
return false;
} else {
return true;
}
}
}
Es gibt mehrere HTML-Dateien unter Webapp/admin, die ich tun Ich möchte nicht DispatcherServlet durchlaufen. Und der Interceptor fängt keine Anfragen ab, zum Beispiel http://localhost:8080/admin/admin.html. Aber ich möchte, dass alle URLs einschließlich Ressourcen abgefangen werden, um sicherzustellen, dass Benutzer angemeldet sind. Wie kann ich das erreichen?
Dank @Serge Ballesta.
Es kann jedoch immer noch keine Ressourcen abfangen, z. B. http://localhost:8080/admin/admin.html.
web.xml:
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.lixindi.gradproject.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
LoginFilter:
public class LoginFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
System.out.println("filter");
if (request.getSession().getAttribute("user") == null) {
response.sendRedirect("/login/login.html");
} else {
filterChain.doFilter(servletRequest, servletResponse);
}
}
public void destroy() {
}
}
Dank genannt werden. Aber es kann immer noch keine Ressourcen abfangen. Bitte sehen Sie meine aktualisierte Frage. –