BACK END/SPRING

[질문]session의 차이

dinoelll 2023. 4. 9. 23:12
@RequestMapping(value="/detail.go")
	public String detail(@RequestParam String id, 
			HttpSession session) {
		
		logger.info("detail id : "+id);
		session.setAttribute("detailId", id);
		return "detail";
	}
	
	@RequestMapping(value="/detail.ajax")
	@ResponseBody
	public HashMap<String, Object> detail(HttpSession session){
		String detailId = (String) session.getAttribute("detailId");
		logger.info("상세보기 할 아이디 : "+detailId);
		
		HashMap<String, Object> map = service.detail(detailId);
		logger.info("result : "+map);
		if(map != null && map.size()>0) {
			session.removeAttribute("detailId");
		}
				
		return map;
	}

여기서 세션 사용한 이유가 페이지 이동에는 정보를 담을 수 없어서 라고 한 것 같은데,

 

그럼 질문이

Q.1  페이지 이동에 정보를 담을 수 없다는게 정확하게 무엇인지?

Q.2 그리고 세션은 옛날부터 썻었는데

 

@RequestMapping(value="/login.ajax")
	@ResponseBody
	public HashMap<String, Object> login(
			@RequestParam String id,@RequestParam String pw, 
			HttpSession session){
		
		logger.info(id+"/"+pw);
		int success = service.login(id,pw);
		logger.info("login success : "+success);
		
		if(success == 1) {
			session.setAttribute("loginId", id);
		}
		
		HashMap<String, Object> map = new HashMap<String, Object>();
		map.put("success", success);
		
		return map;
	}

이렇게 옛날 부터 세션은 로그인 검사 때부터 계속 썻었는데,

갑자기 detail에서만 정보 이동관련한 세션 이야기 하는 이유가 뭔지?