30%
69,300원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
consumes, produces 속성 질문
consumes 속성은 클라이언트가 요청한 헤더를 제한하는 거고, produces 속성은 클라이언트에게 응답할 만들어진 응답의 헤더를 제한하는 것인가요?
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@Controller @RestController 차이
@Controller는 반환 값이 String이면 뷰 이름이 반환되는 것으로 인식하고 뷰를 찾고 랜더링되고, @RestController는 뷰를 찾아 렌더링하지 않고 메시지 바디에 바로 입력되서 클라이언트에게 보내진다라고 이해했습니다. 그렇다면 @RestController사용하게 되면, 주로 언급하신 Spring MVC 플로우(디스패처 서블릿을 중간에 놓고, 핸들러 매핑, 핸들러 어댑터, 뷰 리졸버 등등)에서 뷰에 관련한 플로우가 생략되는 거라고 보면 될까요?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ControllerV4HandlerAdapter 클래스 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.이 코드에서 이 부분을 보면강사님께서 "모델이랑 뷰를 셋팅한다"라는 식으로 말씀하셨습니다.이때, 뷰를 셋팅한다 => 컨트롤러에 맞는 url을 넘겨줘서 웹 페이지를 보여준다 라고 이해를 했습니다.하지만, "모델을 셋팅한다"라는 의미는 무슨 말씀이신지 잘 이해가 안됩니다. 설명 부탁드립니다
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
jsp 라이브러리 적용 안되는 현상
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]라이브러리 다운로드 로딩창도 확인하고, 다운로드 받아진 것으로 보이는데 jsp 파일이 생성되지 않습니다.new 로 생성할 때 jsp 가 보이지 않아서 file 로 new-form.jsp 를 입력해서 만들었는데도 jsp가 생성되지 않습니다. (강사님과 아이콘도 다르고 jsp 내부의 태그가 삽입되지 않은 빈 파일이 열립니다.)인텔리제이 무료버전이라 이런걸까요?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ControllerV4가 이해가 안됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요."MemberFormControllerV4에서 모델을 생성할 필요가 없다. 왜냐하면 프론트 컨트롤러에서 모델을 다 만들어서 넘겨준다." 라고 강사님께서 말씀하셨습니다. 그 이후에 ,FrontControllerServletV4에서 아래와 같이 작성하면서 model을 넘겨줬습니다.질문 1.이때, paramMap이랑 model이 의미하는게 무엇인가요?질문 2.또한, 강사님께서 말씀하신 모델을 각 컨트롤러에서 만들지 않고 FrontControllerServletV4로 넘겨주는 이유는 무엇인가요? 그리고 여기서는 "ModelView를 따로 만들어 줄 필요는 없고 파라미터에서 username과 age를 받아서 그냥 member에 넣어주면 된다" 라고 말씀하셨습니다. 질문 3"ModelView를 따로 만들어 줄 필요는 없고"가 무슨 의미인지 잘 이해가 안됩니다.Model을 FrontControllerServletV4에서 만들어 넘겨주기 때문에 model을 따로 생성하지 않아도 되고, view를 return해준다라고 이해하면 옳게 이해한 것인가요? 우선 저는 아래와 같이 이해를 했습니다.1.컨트롤러 조회 => 어떤 비지니스 로직을 수행할 것인지에 따라 Controller 선택2.호출(paramMap,model) => 선택된 Controller에게 paramMap(=url)과 model(= DB, 데이터를 저장해두는 저장소 객체)를 넘겨주고, 비지니스 로직을 수행함3.ViewName 반환 => 비지니스 로직을 수행하고, 보여줄 웹 페이지 화면의 url의 논리 주소를 넘겨줌4,5,6번 => viewName에 맵핑이 되는 view를 반환하고, model(데이터)를 이용하여 웹 페이지 화면에 보여줌
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
SpringMemberControllerV3 질문입니다!
public ModelAndView save(HttpServletRequest request, HttpServletResponse response) { String username = request.getParameter("username"); int age = Integer.parseInt(request.getParameter("age")); Member member = new Member(username, age); memberRepository.save(member); ModelAndView mv = new ModelAndView("save-result"); //데이터를 직접 view에 전달하는방식 // mv.getModel().put("member", member); mv.addObject("member", member); return mv; } @GetMapping public String members(Model model) { List<Member> members = memberRepository.findAll(); model.addAttribute("members", members); return "members"; } } 위 2개의 코드는 결국 HandlerAdapter에 역할을 수행하여 반환값을 돌려받는 값의 차이가 있다고 생각합니다. 첫번째코드는 ModelandView로 반환이 되는거고 두번째 코드는 String으로 반환이 된다는점에서 차이가있다고 생각합니다. 여기서 제가 질문인사항이 위 2개의 코드를 호출한 코드가 각각메서드가 다르게 설정이 되어있어야 맞다고 생각합니다. viewname을 직접반환한거와 ModelView를반환한거에서 차이가있다고 생각들어 dispatcherservlet를 찾아봤는데 rendering에 대한 코드는 찾아볼수있었습니다만 저 두코드를 실행시킨 코드는 찾아볼수가 없었는지 아니면 제가 코드를 읽을수있는 능력이부족햇는지 잘모르겠습니다저번섹션부터 코드를 하나하나 분석해보니까 저 두코드를 실행시킨 부분도 궁금해서 제 능력으로는 찾아볼수가없어서 어디부분에 있는지 알려주시면 감사하겠습니다
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
modelview에 대해서 잘 이해가 안됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.해당 교재에는 이렇게 나와있습니다.이때, modelView 클래스의 역할은1.데이터(멤버)에 접근(데이터 추가,삭제 그리고 수정등)2.View 이름(이동해야하는 url)을 전달이렇게 이해하면 옳게 이해한 것이 맞나요?
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ParamMap과 model 질문
System.out.println("FrontControllerServeltV4.service"); String requestURI = request.getRequestURI(); ControllerV4 controller = controllerV4Map.get(requestURI); if (controller == null) { response.setStatus(HttpServletResponse.SC_NOT_FOUND); return; } Map<String, String> paramMap = createParamMap(request); Map<String, Object> model = new HashMap<>(); // 추가된부분 String viewName = controller.process(paramMap, model); MyView view = viewResolver(viewName); view.render(model, request, response); } private static MyView viewResolver(String viewName) { return new MyView("/WEB-INF/views/" + viewName + ".jsp"); } private static Map<String, String> createParamMap(HttpServletRequest request) { Map<String, String> paramMap = new HashMap<>(); request.getParameterNames().asIterator() .forEachRemaining(paramName ->paramMap.put(paramName, request.getParameter(paramName))); return paramMap; } public class ModelView { private String viewName; private Map<String, Object> model = new HashMap<>(); public ModelView(String viewName) { this.viewName = viewName; } public String getViewName() { return viewName; } public void setViewName(String viewName) { this.viewName = viewName; } public Map<String, Object> getModel() { return model; } public void setModel(Map<String, Object> model) { this.model = model; } } Map<String, Object> model = new HashMap<>(); 가 언제 생성되어있는지 알고싶어서 인프런 AI답변을 봤는데해당 내용에서 ModelView의 model 필드는 ModelView 클래스의 생성자에서 생성되며, Map<String, String> paramMap을 사용하여 요청 파라미터를 매핑하고 컨트롤러에 전달하는 방식에 대해 설명하고 있습니다. 이렇게 답변이 왔습니다. 저기서 호출한적이 없는거같은데 어떻게 매핑이된거죠? 두번째로, 첫번째 코드에서 Map<String, Object> model = new HashMap<>(); 부분이 두번째 코드와 똑같은 코드로작성되어있는데 다른코드맞는거같은데 왜 선언되어있는지 알수있을까요? 첫번째 질문과 두번째 질문이 많이 헷갈리네요.. 왜 같은지알수있을까요? 그리고 선언되어있는이유도요!
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
V3 Modelview와 Map<String, String> 질문
public ModelView process(Map<String, String> paramMap) { String username = paramMap.get("username"); int age = Integer.parseInt(paramMap.get("age")); Member member = new Member(username, age); memberRepository.save(member); ModelView mv = new ModelView("save-result"); mv.getModel().put("member", member); return mv;public class ModelView { private String viewName; private Map<String, Object> model = new HashMap<>(); public ModelView(String viewName) { this.viewName = viewName; } public String getViewName() { return viewName; } public void setViewName(String viewName) { this.viewName = viewName; } public Map<String, Object> getModel() { return model; } public void setModel(Map<String, Object> model) { this.model = model; }1.Modelview에서 model이 언제생성된거죠..? getmodel을 해주려면 먼저 선언이 되어있는 model을 가지고 반환해줘야하는데 언제선언이 된거죠? Map<String, String> paramMap = createParamMap(request); ModelView mv = controller.process(paramMap); String viewName = mv.getViewName(); //논리이름 new-form MyView view = viewResolver(viewName); view.render(mv.getModel(), request, response); } private static MyView viewResolver(String viewName) { return new MyView("/WEB-INF/views/" + viewName + ".jsp"); } private static Map<String, String> createParamMap(HttpServletRequest request) { Map<String, String> paramMap = new HashMap<>(); request.getParameterNames().asIterator() .forEachRemaining(paramName ->paramMap.put(paramName, request.getParameter(paramName))); return paramMap; } } Map<String, String> createMap에서 .forEachRemaining(paramName ->paramMap.put(paramName, request.getParameter(paramName))); 여기를 보면 request.getParmeter(paramName)로 paramName에대한 Value를 가지고오고있는데 여기서 말하는 Value는 age인데 int로 선언하는게 맞지않나요?항상 답변감사드립니다
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
프로젝트 실행 오류
다음과 같은 오류가 뜨는데 어느 부분을 고쳐줘야 할까요?javax 관련 패키지는 없어보입니다
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
save() 테스트관련 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]savedMember 에는 id, username, age 가 세개 모두 입력된 객체가 findMember 에는 username 과 age 만 가지고 있는 Member 타입 객체가 생성되는 것이 아닌가요?.get() 메서드 설명 읽어보면 value 를 반환한다고 되어있고.save() 메서드에서는 시퀀스로 id 값까지 채워넣은 객체를 반환하고 있는걸로 보여서욤저 @21fd... 는 객체 주소인거지요? 가져오는 데이터가id, username, age / username, age 이렇게 다르지만같은 주소값에 저장되어있다 라는걸 확인하는건가요?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
코드에러를 어떻게 잡아야할까요?
https://drive.google.com/file/d/14AzHAHA4ulJ_F47TmZHwz1U9AP3uyIbw/view?usp=sharing 1.MVC와,Front-controller에서 회원정보를 입력하면 위에경로가 상대경로로지정된 save로 넘어가지않고404로 뜹니다..
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
뷰에서 request.getAttribute()를 사용할 수 있는 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]@WebServlet(name = "mvcMemberSaveServlet", urlPatterns = "/servlet-mvc/members/save") public class MvcMemberSaveServlet extends HttpServlet { private MemberRepository memberRepository = MemberRepository.getInstance(); @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); int age = Integer.parseInt(request.getParameter("age")); Member member = new Member(username, age); memberRepository.save(member); // Model에 데이터를 보관해야 한다. request.setAttribute("member", member); String viewPath = "/WEB-INF/views/save-result.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); dispatcher.forward(request, response); } } 여기서 request.setAttribute("member", member);를 통해 Model에 데이터를 보관하게 되고, 이를 뷰에서 사용할 수 있잖아요.뷰에서 request.getAttribute()를 사용할 수 있는 이유는 dispatcher.forward(request, response); 이 코드에서 request를 인자값으로 넘겼기 때문인가요? 아니면 이거 때문이 아니라 별개의 이유 때문인가요? 정리하면, 컨트롤러에서 request.setAttribute("member", member);를 통해 Model에 데이터를 보관하고,뷰에서 request.getAttribute()를 통해 그 데이터를 받을 수 있는 이유가 바로dispatcher.forward(request, response);에서 request를 인자값으로 넘겼기 때문이 맞는지, 아니면 이 코드랑 별개의 다른 이유가 존재하는지 궁금합니다.
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
상대경로 질문
Spring MVC-1편에서 섹션3. 서블릿,MVC패턴에서 상대 경로 질문입니다.<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>Title</title></head><body><form action="/jsp/members/save.jsp" method="post">username: <input type="text" name="username" />age: <input type="text" name="age" /><button type="submit">전송</button></form></body> 1.이 코드로 계속 왔다갔다할수있으면서 save되는걸 보신다고하셨는데 이때 상대참조이야기도 나오더라구요!action="/jsp/members/save.jsp" 이부분에서 "/jsp/members/save.jsp" 이부분을 웹에있는 action에 준다는거같은데 맞을까요? 그리고 action="/jsp/members/save.jsp" 이부분이 상대참조가 맞는지도 궁금합니다.!!
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
response, request
혹시 제가 이해한게 맞을까요?@WebServlet(name = "memberFormServlet", urlPatterns = "/servlet/members/new-form") public class MemberFormServlet extends HttpServlet { private MemberRepository memberRepository = MemberRepository.getInstance(); @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); response.setCharacterEncoding("utf-8");@WebServlet(name = "memberSaveServlet", urlPatterns = "/servlet/members/save") public class MemberSaveServlet extends HttpServlet { private MemberRepository memberRepository = MemberRepository.getInstance(); @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("MemberSaveServlet.service"); String username = request.getParameter("username"); int age = Integer.parseInt(request.getParameter("age")); // getParameter는 항상 문자로 가저욘다! Member member = new Member(username, age); memberRepository.save(member); 여기서 /servlet/members/save와 /servlet/members/news-form을 서블릿 컨테이너가 서블릿객체로 등록한다. request와 response는 서블릿내장객체로써 Servlet의 요청과 응답을 받고 보낼수있는 역할을 수행한다. 동작방법은 request로 요청을 먼저받아야하는데 서블릿컨테이너에서 request를 찾아보니 /servlet/members/save에 있었고 여기서 요청을받고나서 response를 찾아보니 /servlet/members/new-form에 response가 있어서 서로 연결할수있는것이다 동작방법이 저게맞을까요?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링 MVC1편 섹션3 질문
서블릿 객체랑 서블릿 내장객체는 다르다는걸 알고있습니다. 서블릿 객체는 싱글톤으로 관리되며 서블릿 내장객체는 reponse, request가 요청이 있을때마다 새롭게 생성되며 독립적으로 관리되어야한다는것까지 이해했습니다. @WebServlet(name = "memberFormServlet", urlPatterns = "/servlet/members/new-form") public class MemberFormServlet extends HttpServlet { private MemberRepository memberRepository = MemberRepository.getInstance(); @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); response.setCharacterEncoding("utf-8");위에 있는 코드는 response이고 아래코드는 request입니다@WebServlet(name = "memberSaveServlet", urlPatterns = "/servlet/members/save") public class MemberSaveServlet extends HttpServlet { private MemberRepository memberRepository = MemberRepository.getInstance(); @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("MemberSaveServlet.service"); String username = request.getParameter("username"); int age = Integer.parseInt(request.getParameter("age")); // getParameter는 항상 문자로 가저욘다! Member member = new Member(username, age); memberRepository.save(member); 여기서 질문인게 서블릿내장객체인 request와 response가 요청이있을때마다 새롭게 객체를 만드는데 서블릿객체는 단 하나의 인스턴스를 만들어서 재사용한다고 알고있습니다. 위에코드에도 @WebServlet가 있고 아래에도 @WebServlet가 있는데 request와 response를 윕에서 받기위한 url이라고 생각이듭니다만, 어떻게 request에서 넘겨주면 response에서 응답을 줄수있는거죠? 서블릿은 싱글톤이라고 알고있었는데 url은 따로따로 등록이되는건가요?웹에서 실제넘겨주면 username과 age를 받는부분의 url이 /servlet/members/new-form인데 이건 request에 대한거 아닌가요? 저기서요청을하면 이제 응답을 받는부분이 /servlet/members/save로 되어야할거같은데 뭔가 url이 바뀐거같아서요항상 답변남겨주셔서 감사합니다
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
v2 회원가입 페이지에 들어갔는데 member.jsp가 보입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 이게 formV2이고, package hello.servlet.web.frontcontroller.V2; import hello.servlet.web.frontcontroller.MyView; import hello.servlet.web.frontcontroller.V2.controller.MemberListControllerV2; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.HashMap; import java.util.Map; @WebServlet(name = "frontControllerServletV2", urlPatterns = "/front-controller/v2/*") public class FrontControllerServletV2 extends HttpServlet { private Map<String, ControllerV2> controllerMap = new HashMap<>(); public FrontControllerServletV2() { controllerMap.put("/front-controller/v2/members/new-form", new MemberListControllerV2()); controllerMap.put("/front-controller/v2/members/save", new MemberListControllerV2()); controllerMap.put("/front-controller/v2/members", new MemberListControllerV2()); } @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String requestURI = request.getRequestURI(); ControllerV2 controller = controllerMap.get(requestURI); if (controller == null) { response.setStatus(HttpServletResponse.SC_NOT_FOUND); return; } MyView view = controller.process(request, response); view.render(request, response); } }강의에서 수정한 그대로입니다.. 3~4번 확인을 했는데도 다른부분이 없어요... 근데 회원가입 페이지를 들어가면이렇게 나옵니다.. new-form인데두요.. 중요한건회원목록도 같은 양식으로 나옵니다.. 뭐가 잘못된걸까요?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
http://localhost:8080/request-param 에서 오류가 나는이유?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]해당 코드에서 http://localhost:8080/request-param로 뒤에 쿼리 파라미터를 주지않고 접속을 시도했을때 다음과 같은 오류가 발생하는 이유가 무엇인가요?Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Wed Jan 03 22:01:14 KST 2024There was an unexpected error (type=Internal Server Error, status=500).@WebServlet(name = "requestParamServlet", urlPatterns = "/request-param") 에서 일단 매핑은 되는데, 쿼리 파라미터가 없기 때문에 response를 잘 생성하지 못 해서 발생하는 오류인가요? 코드 상에서 response와 관련된 코드는 마지막줄에 response.getWriter().write("ok");이것뿐인데 이거 때문인지 궁금합니다..
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Servlet 의존성
의존성이 존재한다는게 객체끼리 관계가있음을 알려주는거같습니다. Servlet에서는 의존관계가 필요없는 이유가 요청과 응답만하는 기능만 존재하는데 결국 객체끼리 의존성을 주입해주어 싱글톤을 보장해준다면 개인설정이있는 정보를 공유할수있는 큰 문제점이 발생하기때문에 의존성을 고려안하는거같은데 맞을까요? Spring에서는 의존성을 주입해주는 이유는 결국 코드를 이루는 객체들끼리 중복되는 반복성을 줄임으로써 효율적인코드를 이루는데에 있다 라고 이해해도 괜찮을까요?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@RequestMapping 질문드립니다.
@RequestMapping만 붙인 기존 상태에서 postman으로 같은 url로 GET, POST 요청을 보내도 동일하게 성공하는 것을 확인했습니다. 근데 GET, POST만 되고, PUT, PATCH, DELETE는 안되더라구요. 혹시 GET, POST만 되는 다른 이유가 있을까요? 7:10 부터 관련 내용입니다!(밑에 AI 답변이 있긴하지만, 다른 질문에 대한 답변을 추천해준 것 같습니다)