자바 의 웹 프로젝트 에 서 는 사용자 로그 인 정 보 를 쿠키 로 저장 합 니 다.

3575 단어 cookie
최근 포럼 시스템 을 작성 하 는 과정 에서 사용자 가 로그 인 한 후에 브 라 우 저가 닫 힐 때 까지 세 션 을 유지 하 는 동시에 다음 에 자동 으로 로그 인 할 수 있 도록 쿠키 를 사용 하여 로그 인 정 보 를 저장 할 수 있 습 니 다.struts 2 프레임 워 크 를 사용 하여 구현 합 니 다.   다음은 action 에서 로그 인하 고 로그아웃 하 는 함수 입 니 다.
자바 코드
public String logout() {  
    this.getSession().clear();   
     Cookie idCookie = new Cookie("id", "");   
     Cookie passwordCookie = new Cookie("password", "");   
     idCookie.setMaxAge(0); // cookie     
     passwordCookie.setMaxAge(0);   
     idCookie.setPath("/");   //        
     passwordCookie.setPath("/");   
     servletResponse.addCookie(idCookie);   
     servletResponse.addCookie(passwordCookie);   
    return SUCCESS;   
}   
  
public String login() {   
  
     User user = userService.getUser(id, password);   
    if (user != null) {   
        this.getSession().put("user", id);   
        //             
        if (saveLogin != null) {   
             Cookie idCookie = new Cookie("id", id); //    md5              
             Cookie passwordCookie = new Cookie("password", password);   
             idCookie.setPath("/webappName/"); //cookie    ,                 
             idCookie.setMaxAge(MAX_AGE);   
             passwordCookie.setPath("/webappName/");   
             passwordCookie.setMaxAge(MAX_AGE);   
             servletResponse.addCookie(idCookie);   
             servletResponse.addCookie(passwordCookie);   
             saveLogin = null;   
         }   
        return SUCCESS;   
     } else {   
        this.setInfo("        ");   
        return INFO;   
     }   
} 

쿠키 를 저장 한 후에 사용자 가 이 시스템 의 임의의 페이지 시스템 을 방문 할 때마다 먼저 사용자 의 쿠키 를 방문 하여 로그 인 정보 가 있 는 지 확인 해 야 합 니 다.이것 은 servlet 의 filter 를 사용 하 는 것 이 가장 편리 합 니 다.다음은 filter 코드 입 니 다.
자바 코드
private void doBeforeProcessing(ServletRequest request) {   
         HttpSession session = ((HttpServletRequest) request).getSession(true);   
        //    session,                 
        if (session.getAttribute("user") != null) {   
            return;   
         }   
         Cookie[] cookies = ((HttpServletRequest) request).getCookies();   
         String id = null;   
         String password = null;   
        if (cookies != null) {   
            for (Cookie c : cookies) {   
                if (c.getName().equals("id")) {   
                     id = c.getValue();   
                 }   
                if (c.getName().equals("password")) {   
                     password = c.getValue();   
                 }   
             }   
         }   
         UserService userService = (UserService) this.getApplicationContext().getBean("userService");   
        if (userService.isUser(id, password)) {   
             session = ((HttpServletRequest) request).getSession(true);   
             session.setAttribute("user", id);   
         }   
     }   
  
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)   {   
         doBeforeProcessing(request);   
         chain.doFilter(request, response);   
     }   
     필터 에서 spring 에 접근 하 는 컨 텍스트

좋은 웹페이지 즐겨찾기