Session 기본 응용 프로그램

4865 단어

Session 소개


Session은 서버 기술입니다. 이 기술을 이용하세요.이 기술을 이용하여 서버가 실행될 때 모든 사용자의 브라우저에 독특한session 대상을 만들 수 있다. Session은 사용자의 브라우저에 독특하기 때문에 사용자가 브라우저 자원에 접근할 때 각자의 데이터를 각각의session에 놓고 사용자가 서버의 다른 웹 자원에 다시 접근할 때 다른 웹 자원은 사용자의 각각의session에서 데이터를 추출하여 사용자에게 서비스를 제공할 수 있다.

Session을 만들거나 가져오고 JSESSIONID를 쿠키로 다시 씁니다.

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session = request.getSession();
        //Session , 。 , , Session。
        //        request.getSession(false);
        String sessionid = session.getId();
        Cookie cookie = new Cookie("JSESSIONID",sessionid);
        cookie.setPath("/");
        // cookie 30 , Session 30 , 。。。
        cookie.setMaxAge(30*60);
        response.addCookie(cookie);
        session.setAttribute("name"," ");
    }

세션의 내용 가져오기

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();

    HttpSession session = request.getSession();
    String product = (String) session.getAttribute("name");
    out.write(" :"+product);
}

JESSIONID를 브라우저 URL에 쓰기

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();

    request.getSession();

    // SessionId, cookies SessionId 
    String url1 = response.encodeURL("/SessionDemo1");
    String url2 = response.encodeURL("/SessionDemo2");

    out.print("구입
"); out.print("계산하다"); }

세션 로그인 인스턴스


홈페이지: index.jsp


  
    Heinika Web
  
  
     :${user.userName}
로그인 로그아웃
this my first web app

로그인 페이지:login.html



    
     





Servlet 로그인:
@WebServlet(name = "LoginDemo")
public class LoginDemo extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        String username = request.getParameter("username");
        String password = request.getParameter("password");

        List users = DB.getAll();
        for (User user:users){
            if(user.getUserName().equals(username)&&user.getPassword().equals(password)){
                request.getSession().setAttribute("user",user);
                response.sendRedirect("/index.jsp");
            }
        }

        out.write(" !");
    }
}

// 
class DB{
    public static List list = new ArrayList();
    static {
        list.add(new User("aaa","111"));
        list.add(new User("bbb","222"));
        list.add(new User("ccc","333"));
    }

    public static List getAll(){
        return list;
    }
}

로그온을 종료하려면 다음과 같이 하십시오.
@WebServlet(name = "LogoutDemo")
public class LogoutDemo extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session = request.getSession(false);
        if(session == null){
            response.sendRedirect("/index.jsp");
            return;
        }

        session.removeAttribute("user");
        response.sendRedirect("/index.jsp");
    }
}

좋은 웹페이지 즐겨찾기