java中的過濾器Filter的使用配置
??? import java.io.IOException;import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* 過濾器使用:用戶沒用登錄,不可以在瀏覽器輸入地址訪問頁面
* @author Administrator
*
*/
public class OnlineFilter extends HttpServlet implements Filter {
? public void doFilter(ServletRequest request, ServletResponse response,
?? FilterChain chain) throws IOException, ServletException {
?? RequestDispatcher dispatcher = request.getRequestDispatcher("Login.jsp");
?? HttpServletRequest req =(HttpServletRequest)request;
?? HttpServletResponse res =(HttpServletResponse)response;
?? HttpSession session =req.getSession(true);
?? //從session 里面獲取用戶名的信息
?? String user =(String)session.getAttribute("user");
?? //判斷如果沒有取到用戶信息,就跳轉到登陸頁面,提示用戶進行登陸
????? if(user == null || "".equals(user)){
??? //跳轉到登陸的頁面,進行用戶登錄
??? dispatcher.forward(request,response);
??? System.out.println("用戶沒有登錄,請登陸!");
?? }else{
?? ?System.out.println("用戶已經登陸成功,允許繼續操作!");
?? }
?? chain.doFilter(request, response);
? }
? public void init(FilterConfig arg0) throws ServletException {
? }
? /**
? * Destruction of the servlet. <br>
? */
? public void destroy() {
? super.destroy(); // Just puts "destroy" string in log
? }
? public void init() throws ServletException {
? }
}
Web.xml配置
<!-- 過濾器的? 過濾用戶登陸的session對象 -->
<filter>
<filter-name>sessionFilter</filter-name>
<filter-class>biz.sdna.cbrc.util.OnlineFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sessionFilter</filter-name>
<url-pattern>/jsp/*</url-pattern>
</filter-mapping>
posted on 2010-01-08 17:07 飛熊 閱讀(586) 評論(0) 編輯 收藏 所屬分類: java