월 16,940원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
sendError부분과 setStatus이 차이가 아직 잘이해가 되지않습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]@Slf4j public class MyHandlerExceptionResolver implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { try{ if(ex instanceof IllegalArgumentException){ log.info("IllegalArgumentException resolver to 400"); response.sendError(HttpServletResponse.SC_BAD_REQUEST,ex.getMessage()); ModelAndView mv=new ModelAndView("test"); System.out.println(mv.getViewName()); mv.addObject("message","안녕하세요"); return mv; } }catch (IOException e){ log.error("reslover ex",e); } return null; } }해당 부분에 대해서 궁금한점이 생겨 질문드립니다.sendError같은경우에는 setStatus와는 다르게 제가 이해하기로는 ModelAndView가 있더라도ModelAndView mv=new ModelAndView("test");1.톰캣(WAS)에 에러가 발생했다는것을 알려주고 또한 톰캣은 해당에러를보고 BasicErrorController로 설정한 뷰를 보여주기떄문에 제가설정한 "test"뷰는 무시되고 retrun되는게 맞나요?2.그리고 또궁금한게 해당 부분이 만약에 맞다고 하면 mv.addObject("message","안녕하세요");제가 만든 "test"라는 ModelAndView객체에 모델 데이터를 담았기떄문에 BasicErrorController설정된 뷰화면에 모델데이터가 넘어가지않아야 정상으로 생각이 되는데 BasicErrorController의 뷰에도 해당 모델데이터가 넘어가는데 이유가 뭔지 궁금합니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
typemismatch
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. @PostMapping("/add") public String addItemV4(@ModelAttribute Item item, BindingResult bindingResult , RedirectAttributes redirectAttributes, Model model) { //파라미터 순서 중요 /* ValidationUtils.rejectIfEmptyOrWhitespace(bindingResult, "itemName", "required");*/ //검증로직 if (bindingResult.hasErrors()) { log.info("errors={}", bindingResult); return "validation/v2/addForm"; } log.info("objectName={}", bindingResult.getObjectName()); log.info("target={}", bindingResult.getTarget()); if (!StringUtils.hasText(item.getItemName())) { /* errors.put("itemName", "상품이름값은 필수입니다.");*//* /* bindingResult.addError(new FieldError("item", "itemName",item.getItemName(),false,new String[]{"required.item.itemName"},null, "상품이름은 필수입니다")); */ bindingResult.rejectValue("item", "required"); } if (item.getPrice() == null || item.getPrice() > 1000000 || item.getPrice() < 1000) { /* errors.put("price", "가격은 1000부터 100000까지만 입력하세요");*/ /* bindingResult.addError(new FieldError("item", "price",item.getPrice(),false,new String[]{"range.item.price"},new Object[]{100,1000000}, "가격은 1000부터 100000까지만 입력하세요")); */ bindingResult.rejectValue("price", "range", new Object[]{1000, 10000000}, null); } if (item.getQuantity() == null || item.getQuantity() >= 9999) { /* errors.put("quantity", "수량은 9999이하만 입력가능합니다");*/ /* bindingResult.addError(new FieldError("item", "quantity",item.getQuantity(),false,new String[]{"max.item.quantity"},new Object[]{9999}, "상품이름은 필수입니다")); */ bindingResult.rejectValue("quantity", "max", new Object[]{9999}, null); } //특정 필드가 아닌 복합 필드 값 검증 if (item.getPrice() != null && item.getQuantity() != null) { int resultPrice = item.getPrice() * item.getQuantity(); if (resultPrice < 10000) { /*errors.put("globalErrors", "수량과 값의 합이 10000이상 이어야합니다. 현재 값은 = " + resultPrice);*/ /* bindingResult.addError(new ObjectError("item",new String[]{"totalPriceMin"},null, "수량과 값의 합이 10000이상 이어야합니다. 현재 값은 = " + resultPrice)); */ bindingResult.reject("totalPriceMin", new Object[]{10000, resultPrice}, null); } }#required.item.itemName=상품 이름은 필수입니다. #range.item.price=가격은 {0} ~ {1} 까지 허용합니다. #max.item.quantity=수량은 최대 {0} 까지 허용합니다. #totalPriceMin=가격 * 수량의 합은 {0}원 이상이어야 합니다. 현재 값 = {1} #==ObjectError== #Level1 totalPriceMin.item=상품의 가격 * 수량의 합은 {0}원 이상이어야 합니다. 현재 값 = {1} #Level2 - 생략 totalPriceMin=전체 가격은 {0}원 이상이어야 합니다. 현재 값 = {1} #==FieldError== #Level1 required.item.itemName=상품 이름은 필수입니다. range.item.price=가격은 {0} ~ {1} 까지 허용합니다. max.item.quantity=수량은 최대 {0} 까지 허용합니다. #Level2 - 생략 #Level3 required.java.lang.String = 필수 문자입니다. required.java.lang.Integer = 필수 숫자입니다. min.java.lang.String = {0} 이상의 문자를 입력해주세요. min.java.lang.Integer = {0} 이상의 숫자를 입력해주세요. range.java.lang.String = {0} ~ {1} 까지의 문자를 입력해주세요. range.java.lang.Integer = {0} ~ {1} 까지의 숫자를 입력해주세요. max.java.lang.String = {0} 까지의 문자를 허용합니다. max.java.lang.Integer = {0} 까지의 숫자를 허용합니다. #Level4 required = 필수 값 입니다. min= {0} 이상이어야 합니다. range= {0} ~ {1} 범위를 허용합니다. max= {0} 까지 허용합니다. typeMismatch.java.lang.Integer=숫자를 입력해주세요. typeMismatch=타입 오류입니다.이렇게 따라했는데이런식으로 가격에 오류코드가 안뜨고 화이트라벨오류가 뜹니다 뭐가 문제인가요??타입미스매치를 에러프로퍼티에 명시해놨는데도 안됩니다ㅠ
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
HandlerExceptionResolver부분에 대해서 질문이있습니다.
[질문 내용]HandlerExceptionResolver시작 17:23초 경 @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { try{ if(ex instanceof IllegalArgumentException){ log.info("IllegalArgumentException resolver to 400"); response.sendError(HttpServletResponse.SC_BAD_REQUEST,ex.getMessage()); return new ModelAndView("test"); } }catch (IOException e){ log.error("reslover ex",e); } return null;해당 부분에서 IllegalArgumentException발생되면ModelAndView를 동작시킨다고 하셨는데 response.sendError인해서 400에러가 was까지 전달된후 다시 was는 해당 Error를 읽고 다시 BasicErrorController로 설정된 값이 return 되기때문에 우리가 ModelAndView부분은 sendError로 인해서 반환이 못되는 상태가 아닌가요??제가 잘못 이해했나해서 질문드립니다!
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
AJAX통신
안녕하세요, 김영한 강사님!ajax 통신 관련 강의도 들어야 한다고 생각하는데요!혹시 강사님 강의중에 프론트단과 데이터 통신을 하는 부분의 강의나 ajax 관련강의가 있을까요?ajax 를 몰라서요!강의 목차를 여러개의 강의를 들어가봐서 확인을 해봤더니 ajax 와 관련된 강의를 찾지 못해서요 😃있다면 어느 강의인지 말씀해주시면 감사하겠습니닿ㅎ 백엔드 부분도 ajax 알아야하는것 맞죠?!
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
AI 답변에 대한 재문의
아!.. 제가 궁금한것은/addForm()에서 생성된 빈 객체가1. addITem 메소드 호출시 바인딩 되는 객체와 동일한 객체인지 와editForm 메소드에서 findById 로 찾는 객체와같은 객체인지 궁금합니다!또한,Item 객체가 단순히 자바빈으로 등록되어있는것이지, 싱글톤은 아니죠?( 꼬리에 꼬리를 무는생각으로 이어진고민입니다.).aI 답변을 받았는데 아직 이해가 잘 가지 않아서 재질문 드립니다!
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
postmapping 에서의 모델바인딩 객체
폼에서 작성한 데이터들이 @PostMapping("/add)로 넘어가서 @ModelAttribute 를 통해 item 객체에요청 파라미터를 프로퍼티 접근법으로 값을 세팅하고 모델에 item 객체를 item 의 이름으로 바인딩 되는것이 맞죠?맞다면, @ModelAttribute 를 통해 바인딩 되는 객체는addForm 메소드에서 만들어주어서 타임리프에 활용가능하게 넘겨주었던 그 item 객체인가요?(같은 객체를 재사용하는건지) ,아니면 새로운 객체를 또 만들어서 새로운객체에 값을 세팅해주고 모델에 바인딩을 해주는것인지 궁금합니다 수정폼에서 Item item = itemRepository.findById(itemId); 에서 찾는 item (entity?) 도 addForm 에서 새로 생성했던던 그 객체인것이죠?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
base.html 추가link
base.html 파일에서 <!--추가--> 부분에서알려주셨던 내장 태그<th:block> 태그 대신 일반태그 link 태그를 넣어도 정상작동하는것을 확인했습니다. 둘중 아무거나 사용해도 무방한가요?
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
제가 이해한내용이 맞나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]@ModelAttribute의 경우에는 잘못된 타입입력으로인해 바인딩 자체가 안되더라도 BindingResult에 담기고 Controller가 호출되는반면 @RequestBody의 경우에는 바인딩자체가 호출이 안될때에는Controller자체가 호출이 안된다라고 이해하면될까요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
form Import
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]java.lang.IllegalArgumentException: Name for argument of type [long] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.이렇게 오류 떠서@GetMapping("/{itemId}/edit") public String editForm(@PathVariable Long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "form/editForm"; }위 부분을@GetMapping("/{itemId}/edit") public String editForm(@PathVariable(name="itemId") Long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "form/editForm"; }이렇게 @PathVariable(name="itemId") 속성을 모든 메소드에 적용 했더니 정상 동작합니다.다만 어떤 설정을 해야 기존 코드 기대로 동작하는지 정말 궁금하네요 기존처럼 네임속성 안주고 하려면 따로 설정해야하는게 어떤걸까요?
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 처리하기 - 세션 동작 방식 파트 질문입니다.
중요한 정보는 모두 서버에 저장해야 한다고 써있는데, 만약 서버가 털리게 된다면 이 정보가 모두 노출될 텐데, 서버가 털리는 것은 어떻게 예방할 수 있나요? 예시 몇 가지만 들어주시면 감사하겠습니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
localhost에서 화면이 깨집니다.
수업을 듣고 혼자서 만들어 보는 중입니다 ㅠㅠ https://drive.google.com/file/d/1xmnERIQk89uE6iP8skTuS2jElKDXfPqp/view?usp=sharing드라이브에 올린 제 파일입니다. save.html 파일이 절대경로로 브라우저에서 열면 문제 없이 열리는데 localhost:8080/member/save 로열면 화면이 깨집니다. css 경로도 정확한 거 같은데 왜 이러는걸까요 ㅠㅠ<link href="css/styles.css" rel="stylesheet" /><link href="../templates/css/styles.css" rel="stylesheet" /><link href="./css/styles.css" rel="stylesheet" />다 해봤습니다!! index.html을 제대로 잘 열립니다!! (index파일의 css를 복사해서 약간 수정 후 이름만 다르게 저장한게 save.css입니다)
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
영상처럼 한번에 국제화 보고 수정하는 방법
질문은 아니고 저처럼 다른 분들도 찾을까봐 남깁니다이렇게 보시는 부분이 있는데저도 저렇게 보고싶어서 찾아보니플러그인에서 검색으로 Resource bundle edit 이 플러그인을 설치하면 되더라구요
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
교재 오타 있는거 같아요
18 pageeditForm.html - 추가여기에 <input> 여기에 th:field="${regions}" 이 부분이 th:field="*{regions}" 이거 아닌가요? 오류 엄청 나길래 한참 봤는데 이렇게 고치니까 오류 안 나는데 .. 제가 틀린 건가요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
defaultException @ReqeustParam 속성 - springboot 버전 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)[질문 내용]@GetMapping(“/api/default-handler-ex”) public String defaultException(@RequestParam Integer data) { return “ok”;}위 코드로 테스트해보면Name for argument of type [java.lang.Integer] not specified, and parameter name information not found in class file either.에러가 발생합니다. 구글링해보니 스프링 부트 3.2버전 이상부터는 @RequestParam(name = ) 을 필수로 적용해줘야 한다고 해서 적용해줘 테스트 진행했습니다. 또 구글링해보니 name과 같은 속성을 생략한 코드를 적용하고 싶으면 compile 방식을 intellij에서 gradle로 변경하면 된다하여gradle로 변경해 강의코드로 테스트 잘 되는것 확인했습니다. gradle과 intellij를 비교해보니 build 방식과 기동 시간의차이가 있어 보이는데 이 외에는 상관 없는지 궁금해 여쭤봅니다!!
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
BindingResult 메시지 처리에 대해서 질문있습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]errors.properties의 {0}, {1} 등에 숫자가 들어간 형태로 출력되는 것 같은데 숫자 출력 포맷이 기본적으로 #,###인가요?따로 어떠한 작업 없이 숫자만 들어간 것 같은데 아래처럼 #,###로 숫자가 출력이 되길래 궁금해서 질문드립니다.만약 그렇다면 숫자 구분자 없이 기본 형태로 숫자를 출력하고 싶으면 어떻게 해야하나요아래는 addItemV3를 만든 후 출력된 결과입니다
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
필터와 인터셉트 & afterCompletion()에 대해서
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]1.필터와 인터셉트의 선능차이 관련 로그인 체크해서, 로그인 페이지로 날려버리는 기능을 추가할때필터의 경우는 디스패치서블릿 이전에 실행되고, 차단할 수 있으니까 인터셉터보다는 서버 비용을 조금이라도 더 절감할 수 있는건가요?? 아니면 그냥 무시할정도의 미비한차이니까 인터셉터를 사용하든 상관 없나요? afterCompletion()로 로그처리 afterCompletion의 경우는 핸들러에서 예외가 발생할때에도 실행이 되니까, 모~든 핸들러의 예외를 로그 메세지로 관리하고 싶은 경우에는 "/*"로 필터를 걸고 afterCompletion에 예외관련된 로그 메세지를 출력되게 하면 되나요?실무에서도 이런식으로, 시스템 전체의 예외 메세지를 남기기위해서 사용하나요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
HandlerExceptionResolver 안에서 sendError가 호출된 경우 흐름 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]예를 들어 클라이언트가 잘못된 형식의 값을 입력하면 클라이언트의 잘못이지만 서버 내에서 발생한 오류이기 때문에 500오류가 나고 이를 400번대 오류로 처리하기 위해서 HandlerExceptionResolver 내에서 sendError(400, 오류 메세지)를 호출하여 400번대 오류로 설정한다고 하셨잖아요 그런데 이러면 와스가 sendError가 호출된 것을 보고 다시 재요청을 하지 않나요? HandlerExceptionResolver가 예외를 해결하면서 정상 처리로 만들어 추가 프로세스가 실행되지 않게 한다고 해서 잘 이해가 가지 않습니다. sendError로 오류 코드를 설정하고 모델앤뷰를 반환하면서 오류 페이지 렌더링이 되고 와스는 재요청을 하지 않는게 HandlerExceptionResolver의 올바른 흐름인가요
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ExceptionHandler와 @ResponseStatus 같이 쓰는 경우 API예외처리과정
https://www.inflearn.com/questions/361278/exceptionhandler-%EC%A7%88%EB%AC%B8이 질문에서" @ResponseStatus는 내부적으로 response.sendError(statusCode, resolvedReason); 를 통해 response 내부에 오류가 발생했었음을 상태로 저장하게 됩니다.(이전 강의에서 알려주셨던 내용) "보고 의문이 들어 아래코드를 디버깅을 하고 정리했습니다.ApiResponse를 제가 니즈에 맞게 만든 JSON 형식이라 가정하시면 됩니다. @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(BindException.class) public ApiResponse<Object> bindException(BindException e) { return ApiResponse.of( HttpStatus.BAD_REQUEST, e.getBindingResult().getAllErrors().get(0).getDefaultMessage(), null ); }@ExceptionHandler을 사용하여 API예외처리 진행과정요청의 Accept 헤더가 "*/*", "application/json"인경우(1) 컨트롤러에서 예외발생(2) 이 응답값을 @ExceptionHandler을 사용하여 프로젝트의 니즈에 맞게 변경예로들어 상품에서 일어나는 오류, 회원가입에 일어나는 오류에 맞게 변경return값을 ResponseEntity로 해주거나 클래스에 @RestControllerAdvice를 이용이 부분이 궁금한점인데(Q1) API 오류 처리 이므로 @ResponseStatus에 의해 에러 코드만 변경 되고(500 -> 400) 반환값인 ApiResponse를 DispatchServlet에서 처리하여 클라이언트에게 전달해준다고 생각이 들었습니다. (Q2) 만약 API 오류 처리가 아닌 오류 화면(HTML 오류 처리)이었더라면 (@ExceptionHandler 사용 안하고)-> 컨트롤러에서 예외발생-> @ResponseStatus를 사용하여 에러 코드만 변경되고 error정보가 WAS(HttpServlet)까지 전달-> 기본 에러 페이지인 "/error"로 재요청-> BasicErrorController.errorHtml() 호출-> response.setStatus(getStatus(request).value())(=response.sendError()) 발생-> ModelAndView 리턴을 하는 게 아닌가요? (Q3) @ResponseStatus가 response.sendError()를 발생하는 게 아니라 에러 코드만 변경해주고 이를 바탕으로 ExceptionHandler나 BasicErrorController가 처리해 준다고 생각이 듭니다.
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
화이트 리스트 경우 인증체크 메서드 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.requestURI와 whitelist에 있는 값이 매칭이 된다면 인증체크를 하고, 매칭되는 값이 없다면 인증체크를 하지않는 함수인거는 이해했습니다.리턴값 코드 이해가 잘 안되는거같아서 질문 남깁니다.위 아래 코드가 같은건가요 ? 강사님이 알려주신 코드는 이해가 잘 안가서 다시한번 짜봤습니다 ㅠㅠprivate boolean isLoginCheckPath(String requestURI){ if(PatternMatchUtils.simpleMatch(whitelist,requestURI)){ return false; } return true; }private boolean isLoginCheckPath(String requestURI){ return !PatternMatchUtils.simpleMatch(whitelist,requestURI);
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
HttpServletResponse와 Model의 차이점이 궁금합니다.
'로그인 처리하기 - 쿠키사용' 부분을 듣고 제가 모르는 부분이 있는 것 같아 질문 남깁니다. 쿠키를 생성하고 쿠키를 보낼 때 response.addCookie(idCookie)를 했는데 Model에도 model.addAttribute(idCookie)가 가능한지가 궁금합니다. 만약 가능하다면 어떤것을 쓰는것이 더 좋을지 만약 불가능하다면 불가능한 이유가 궁금합니다.