top

登入頁面的問題

我想做個網頁
我遇到了一個疑問
如果我做一個註冊跟登入的系統
登入請求頁面("index.jsp") 我上面寫了一個  記住帳密的按鈕後 交給servlet處理  判斷是否有勾這個選項後 增加Cookie到回應中轉交

我想要的是  如果我是使用者 我在之前已經勾過這個"記住帳密"的按鈕  所以照常理說  我應該可以再輸入"登入請求頁面("index.jsp") " 時畫面應該會直接進到會員專區

所以我想到在 "登入請求頁面("index.jsp") " 前加個Filter 判斷裡面有沒有Cookie 符合我資料庫裏面的帳密 有就轉交到會員專區
內容是這樣
public class loginFilter implements Filter{
        private String USERS;
        private UserService userservice;
        @Override
        public void destroy() {
                // TODO Auto-generated method stub
               
        }

        @Override
        public void doFilter(ServletRequest req, ServletResponse res,
                        FilterChain chain) throws IOException, ServletException {
                // TODO Auto-generated method stub
                if(userservice.checkCookie(((HttpServletRequest)req).getCookies())){
                        req.getRequestDispatcher("/member.jsp").forward(req, res);
                }
                chain.doFilter(req, res);
        }

        @Override
        public void init(FilterConfig config) throws ServletException {
                // TODO Auto-generated method stub
                USERS=config.getServletContext().getInitParameter("USERS");
                UserService userservice=(UserService)config.getServletContext().getAttribute("UserService");
        }

}

可是我發現  我再次點選 "登入請求頁面("index.jsp") "的時候還是會要求我輸入帳號密碼  想請問一下 是我邏輯哪邊出問題  程式是夠執行的!!
麻煩了  謝謝!!

  1. if(userservice.checkCookie(((HttpServletRequest)req).getCookies())){
  2.     req.getRequestDispatcher("/member.jsp").forward(req, res);
  3. } else {
  4.     chain.doFilter(req, res);
  5. }
複製程式碼


BTW, 不建議直接把 Cookie[] 實例傳給 userService,這會跟 Servlet API 綁在一起了 … XD

TOP