Request객체의 Header 정보

Structure of Knowledge·2021년 3월 23일
0

Spring MVC Exercise #2

목록 보기
5/6

카트에 상품을 넣고, 원래 페이지로 돌아가기 위한 로직.

  • 카트에 상품을 넣는 url은 여러 페이지에서 접근이 가능하기 때문에, request객체의 Header 에서 Referer라는 파라미터를 가져와서 처리함.

  • referer는 localhost:8080/~ 형식으로 url전체가 저장된다.

@RequestMapping("add.do")
public void addtoCart(CartVo cartVo, HttpSession session, HttpServletRequest request,
			HttpServletResponse response) throws IOException{
	// 세션에 장바구니에 추가한 상품 정보를 입력하는 로직
	log.info(cartVo);
	List<CartVo> list = null;
	Object listObj=session.getAttribute("list");
	if(listObj==null) {
		list = new ArrayList<CartVo>();
	}else {
		list=(List<CartVo>)listObj;
	}
	String itemId= cartVo.getItemId();
	Book book= service.getBook(itemId);
	log.info(book);
	cartVo.setBook(book);
	int vol=cartVo.getVol();
	long price= book.getB_price();
	long total= vol*price;
	cartVo.setBook(book);
	cartVo.setTotal(total);
	list.add(cartVo);
	session.setAttribute("list",list);
		
	// 헤더 정보에서 이 전의 페이지 url을 가져옴.
	String referer = request.getHeader("Referer");
	log.info(referer);
    	// javascript 컨펌 메세지를 출력하는 로직. 
	response.setContentType("text/html; charset=euc-kr");
        response.setCharacterEncoding("euc-kr");
	PrintWriter out = response.getWriter();
	out.println("<script>");
	out.println("if(confirm(\"카트페이지로 이동하시겠습니까?\")==true){");
	out.println("location.href = \"../purchase/cart.do\";");
	out.println("}else{");	
	out.println("location.href ='"+ referer +"' ");
	out.println("}</script>");
	out.flush();
}
profile
객체와 제어, 비전공자 개발자 되기

0개의 댓글