ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 서블릿 9 - 상태유지를 위한 객체 Session
    servlet/servlet 2021. 11. 26. 19:27
    728x90
    반응형

    application 다루는법이랑 똑같다.

     

    application은 모든 사용자가 쓸수 있는 저장소

    웹서버(WAS)가 현재사용자(Session)을 구분하는 방법

     

    사용자마다 구분할수있는 Session공간이 따로있다.

     

    1. HttpSession session = req.getSession();
    2. int x = (Integer)session.getAttribute("value");
    3. String operator = (String)session.getAttribute("op");
    4. session.setAttribute("value", v);session.setAttribute("op", op);

    한번 요청하면 출력받을때 SID값을 부여받는다.

    다시 요청시 SID값과 같이 요청하여 SID에 저장된 저장소를 쓸수있다.

     

     

     

    @WebServlet("/calc2")
    public class Calc2 extends HttpServlet{
    	@Override
    	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		
    		ServletContext application = req.getServletContext();
    		HttpSession session = req.getSession();
    		
    		req.setCharacterEncoding("UTF-8");
    		resp.setCharacterEncoding("UTF-8");
    		resp.setContentType("text/html; charset=UTF-8");
    		
    		PrintWriter out = resp.getWriter();
    		String v_ = req.getParameter("v");
    		String op = req.getParameter("op");
    		int v = 0;
    		if(v_!=null && !v_.equals("")) v = Integer.parseInt(v_);
    		
    		
    		//계산
    		if(op.equals("=")) {
    //			int x = (Integer)application.getAttribute("value");	
    			// object로 반환하기 떄문에 형변환
    			int x = (Integer)session.getAttribute("value");	
    			// object로 반환하기 떄문에 형변환
    			int y = v;
    //			String operator = (String)application.getAttribute("op"); 
    //			object로 반환하기 떄문에 형변환
    			String operator = (String)session.getAttribute("op"); 
    //			object로 반환하기 떄문에 형변환
    			int result = 0;
    			if(operator.equals("+"))
    				result = x+y;
    			else
    				result = x-y;
    			out.print(result);
    			
    		}else {  //값을 저장
    //			application.setAttribute("value", v);
    //			application.setAttribute("op", op);
    			session.setAttribute("value", v);
    			session.setAttribute("op", op);
    		}
    	}
    
    }
    HttpSession session = req.getSession();
    int x = (Integer)session.getAttribute("value");
    String operator = (String)session.getAttribute("op");
    session.setAttribute("value", v);session.setAttribute("op", op);

     

     

     

    세션 메소드

    728x90
    반응형

    댓글

Designed by Tistory.