세션을 열거 나 닫지 않아도 시작 페이지로 리디렉션하고 싶습니다. Servlet Filter를 추가했지만 작동하지 않습니다. 서블릿 필터가 작동하지 않습니다.
내 SessionFilter 클래스 :public class SessionFilter implements Filter {
private ArrayList<String> urlList;
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
String url = request.getServletPath();
HttpSession session = request.getSession(false);
if (new Bean().getLoggedIn() || urlList.contains(url) || session != null){
chain.doFilter(req, resp);
}
else{
response.sendRedirect("index.jsf");
}
}
public void init(FilterConfig config) throws ServletException {
String urls = config.getInitParameter("avoid-urls");
StringTokenizer token = new StringTokenizer(urls, ",");
urlList = new ArrayList<String>();
while (token.hasMoreTokens()) {
urlList.add(token.nextToken());
}
}
public void destroy() {
}
}
내 web.xml에 :
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<filter>
<filter-name>SessionFilter</filter-name>
<filter-class>com.tsystems.demail.SessionFilter</filter-class>
<init-param>
<param-name>avoid-urls</param-name>
<param-value>/index.jsf, /registration.jsf</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SessionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsf</welcome-file>
</welcome-file-list>
</web-app>
내가 new Bean().getLoggedIn()
이 참 로그인
는 인수로서 상대 경로를 사용하는 것으로
'콩 '이란 무엇입니까? 매번 새로운 시간을 새로 만들려고하십니까? –
"작동하지 않습니다."어떻게 작동하지 않습니까, 전혀 리디렉션하지 않거나, 잘못된 페이지로 리디렉션되거나, HTTP 500이 발생하거나 아무 일도 일어나지 않습니다. 디버거에 의해 결정된 것처럼 else 블록의 코드가 전혀 실행되지 않습니까? 좀 더 자세히 설명해주세요. – Keith
@DaveNewton my Bean 클래스 : http://pastebin.com/EKU1d0EY – rubaka