public class LoginFilter implements Filter {<br />public void destroy() {<br />}<br />public void doFilter(ServletRequest request, ServletResponse response,<br />FilterChain chain) throws IOException, ServletException {<br />// 由於 session 屬於 HTTP 範疇,故需要向下轉型成 HttpServletRequest 類型<br />HttpServletRequest req = (HttpServletRequest) request;</p><p>HttpSession session = req.getSession(); // 取得 session<br />//session.invalidate();<br />String username = (String) session.getAttribute("userName");<br />if((!req.getServletPath().equals("/login.do"))&&(!req.getServletPath().equals("/Avisitor.do"))&&(!req.getServletPath().equals("/visitor.do"))){<br />if((username == null)||(username == "")) {<br />session.invalidate();<br />//System.out.println("session invalidate ");<br />((HttpServletRequest) request).getRequestDispatcher(<br />"session.jsp").forward(request, response);<br />}else{<br />chain.doFilter(request, response);<br />}<br />}<br />else{<br />chain.doFilter(request, response);<br />}<br />}<br />// 在容器啟動時執行<br />public void init(FilterConfig config) throws ServletException {<br />}<br />}<br />
再在web.xml中做如下配置
<!-- 字元過濾器配置<br /> Session失效過濾器配置 --><br /> <filter><br /> <filter-name>loginFilter</filter-name><br /> <filter-class>com.jwc.util.filter.LoginFilter</filter-class><br /> </filter><br /><filter-mapping><br /> <filter-name>loginFilter</filter-name><br /> <url-pattern>*.do</url-pattern><br /> </filter-mapping>