본문 바로가기

programming/Gukbi

국비 교육 79일차 - spring project (cookie사용)

728x90
반응형

오늘하고 또 내일까지 스프링 프로젝트 연습. 

일단 프로젝트를 만들면 진행하는 순서부터 살펴보겠다. 

 

/*
 *    1. 프로젝트 생성 
 *    2. 자바 버젼 변경 (1.8)
 *    3. /WEB-INF/lib/ojdbc14.jar
 *    4. pom.xml에 최근 스프링 버전 설정 
 *    ============================
 *    5. 프로그램 작업 
 *       1) web.xml : Controller,한글변환 
 *       2) 각 클래스 만들기
 *          = ~VO
 *          = ~DAO
 *          = ~Controller
 *       3) VO,SQL문장 저장 => Config.xml (MyBatis)
 *       4) 스프링 연결 : application-context.xml,application-datasource.xml
 *       5) JSP제작 출력 
 *    6. 동작 순서 
 *       1) 사용자 => list.do
 *       2) DispatcherServlet => @RequestMapping을 찾아서 아래있는 메소드에 매개변수 채운다 
 *       3) 찾은 메소드에서 요청처리하고 결과값을 ViewResolver전송
 *       4) ViewResolver에서 Model => request로 변환후에 => JSP에 보낸다
 *       5) JSP에서 실행하고 => 실행결과(HTML) => 해당 브라우저에서 읽을 수 있게 한다   
 */

 위에는 프로젝트를 만드는 순서이고, 아래는 스프링 프로젝트가 동작하는 순서이다. 

 

오늘 한 것 중에 크게 다른건 없었고, 쿠키 사용 하나가 좀 달랐다. 그래서 이것만 정리를 해보겠다. 

 

Cookie[] cookies=request.getCookies();
	   List<String> cList=new ArrayList<String>();
	   if(cookies!=null)
	   {
		   for(int i=cookies.length-1;i>=0;i--)
		   {
			   cookies[i].setPath("/");
			   if(cookies[i].getName().startsWith("m"))
			   {
				   
				   RecipeDetailVO vo=dao.recipeDetailData(Integer.parseInt(cookies[i].getValue()));
				   cList.add(vo.getPoster());
			   }
		   }
		   model.addAttribute("cList", cList);
	   }
	   
<a href="detail_before.do?no=${vo.no }">
		        <img src="${vo.poster }" style="width:100%">
		        <div class="caption">
		          <p>${vo.title }</p>
		          <p>${vo.chef }
		        </div>
		      </a>

디테일 정보를 보러 들어가기 전에 링크를 걸어준다. 

 

@GetMapping("recipe/detail_before.do")
   public String recipe_detail_before(int no,RedirectAttributes ra,HttpServletResponse response)
   {
	   Cookie cookie=new Cookie("m"+no, String.valueOf(no));
	   cookie.setPath("/");
	   cookie.setMaxAge(60*60*24);
	   // 클라이언트로 전송 
	   response.addCookie(cookie);
	   
	   ra.addAttribute("no",no);
	   return "redirect:detail.do";
	   // "detail.do?no="+no
   }

 no를 받아왔으니 여기에 쿠키리스트를 만들어 준다. 그리고 이 정보를 response에 실어 클라이언트로 전송한다. 그리고 이 정보를 redirectAttribute에 담아 넘겨준다. 그리고 detail.do로 이동한다. 

 

이것말고는 새로울게 없어서 여기까지만 정리하도록 하겠다

728x90
반응형