-1
我試圖實現一個servlet過濾器來調整web應用中的自動化。然而過濾器沒有被調用,我找不到原因。Servlet過濾器不工作
這是我的過濾器實現:
public class LoginFilter implements Filter{
@Override
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
LoginBean session = (LoginBean) req.getSession().getAttribute("LoginBean");
String url = req.getRequestURI();
if(session == null || !session.isLogged) {
if(!(url.indexOf("/home/index.xhtml") >= 0)){
resp.sendRedirect(req.getServletContext().getContextPath() + "/home/index.xhtml");
}
else{
chain.doFilter(request, response);
}
} else {
if(session.role == 1) {
if(url.indexOf("/admin/*") >= 0 || url.indexOf("/home/index.xhtml") >=0){
resp.sendRedirect("/user/index.xhtml");
} else if (url.indexOf("/home/logout.xhtml") >= 0){
req.getSession().removeAttribute("LoginBean");
resp.sendRedirect(req.getServletContext().getContextPath() + "/home/index.xhtml");
}
else{
chain.doFilter(request, response);
}
} else {
if(url.indexOf("/user/*") >= 0 || url.indexOf("/home/index.xhtml") >=0){
resp.sendRedirect(req.getServletContext().getContextPath() + "/admin/index.xhtml");
} else if (url.indexOf("/home/logout.xhtml") >= 0){
req.getSession().removeAttribute("LoginBean");
resp.sendRedirect(req.getServletContext().getContextPath() + "/home/index.xhtml");
}
else{
chain.doFilter(request, response);
}
}}}
@Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
而且,這裏是過濾器映射:
<filter>
<filter-name>LoggingFilter</filter-name>
<filter-class>com.ibm.club.data.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LogginFilter</filter-name>
<url-pattern>/user/*</url-pattern>
</filter-mapping>
過濾器似乎僅適用於/ user/URL模式 – Ben 2014-09-02 10:25:52
過濾器名稱值在web.xml中的過濾器定義和過濾器映射之間不匹配。 LoggingFilter vs LogginFilter ... – 2014-09-02 10:32:26
@Ben那是我試圖修復錯誤,我恢復了它,但似乎在我的文章保持相同的方式 – 2014-09-02 10:39:05