묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그에 모든 경로의 url이 다 나옵니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 강의를 따라가다보니 저는 로그에 모든 url경로가 다 나오는데 선생님 강의에서는 localhost:8080은 제외한 이후 경로만 나옵니다. 제가 혹시 어느 부분을 놓친건지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
에러메세지 만드는 거
https://drive.google.com/file/d/1z-zuoAUetdDnRiEBscuhmhDL95TM65C-/view?usp=sharing제 공유파일입니다. 수업듣고 혼자서 만들어 보는데 도무지 모르겠습니다. localhost:8080/member/save에서 아무것도 안 누르고 회원가입 눌렀는데 왜 에러메세지 안 뜨고 에러페이지가 뜰까요 ㅠㅠ 컨트롤러에 if(!StringUtils.hasText(memberDTO.getMemberId())) {//springutils spring꺼 임포트 해야함 bindingResult.addError(new FieldError("memberDTO","memberId","아이디는 공백이 안 됩니다.")); }이 부분도 추가 하고 다 했는데 ㅠ
-
해결됨스프링 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, DB 접근 기술
@GetMapping 관련 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@GetMapping 의 실행순서에 관한 질문입니다.@GetMapping("/") , @GetMapping("/members/new")2개의 매핑이 있을 경우, 매핑의 우선순위를 알고 싶습니다.좀 더 구체적인 경로가 먼저 매핑된다고 알고있었는데그럼 localhost:8080 을 실행했을때 home.html 이 아닌createMemberForm.html 이 나와야 하는건가? 해서요단순히 localhost:8080 으로 실행했기 때문에 "/" 로 간걸로 보면되나요?
-
해결됨스프링 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 2편 - 백엔드 웹 개발 활용 기술
httpSession 관련 질문드립니다.
request.getSession() 으로 생성된 httpsession은 sessionStore 인지 아니면 session 인지 궁금합니다.제 생각에는 sessionStore가 아니라 그냥 sessionStore에서 session을 검색해서 가져오거나, 없으면 session을 생성한 것이라고 생각합니다. 이렇게 생각하게 된 이유는, /session-info url로 크롬과 사파리로 브라우저를 다르게 하여 접속한 결과, 크롬에서 로그인을 했더라도, 사라피로 로그인하지 않고 session-info 로 접속한다면 session 이 없다고 떴기 때문입니다. 그렇기 때문에, request.getSession() 으로 생성된 session 에서 session.setAttribute("member", member) 이런식으로 attribute를 추가하는 것은 그냥 그 세션자체에 member라는 것을 추가하는 것으로 짐작됩니다. 따라서 직접 만들어본 SessionManager 의 createSession 과는 다르다고 생각하는게, createSession은 sessionStore에 직접 sessionId 와 member를 묶어서 직접 put을 해준것이고httpsession.setAttribute는 그저 session에 attribute를 추가해준 것이라고 생각하기 때문입니다.그리고 httpSession 은 어딘가에 있을 sessionStore에 저장되겠죠 << 사실 이 부분이 의문입니다. 어느시점에 session이 sessionStore에 저장되는지, 그 sessionStore는 어디있는지 궁금합니다.대충 시점은 getSession() 하는 순간 sesstionStroe를 탐색해서 없다면 sessionStore에 저장하면서 해당 session을 가져오고 그 세션에 setAttribute로 속성을 추가해주는 것 같다고 예상되긴 합니다. 그래서 궁금한 점은 httpSession의 sessionStore은 어디있는지 궁금합니다. 그리고 만약 존재한다면 어느시점에 생성되는건지 궁금합니다. 그리고 직접 확인이 가능한지도 궁금합니다.분명 여러유저가 접속한다면 sessionStore에 session이 쌓일텐데 그 쌓이는게 어떻게 쌓이는지 보고싶습니다. 그와 동시에 궁금해지는 점은 session.getAttribute("loginMember") 이런식으로 한번더 세션에 멤버 어트리뷰트가 존재하는지 확인하는 이유도 궁금합니다. 세션을 만들때 무조건 loginMember를 설정해줄것이고, 만약 세션자체가 사라진다면 그냥 사라질텐데, 세션을 만들때 session.setAttribute("loginMember", loginMember) 를 하지 않는 경우가 있나요??제 가정이 다 맞다고 가정하에, 그리고 브라우저 종료시에 쿠키가 즉시 브라우저에서 삭제된다고 가정할때, 로그아웃 하지 않고 바로 브라우저를 종료하고 로그인 하는 식으로 똑같은 사용자가 여러번 로그인을 한다면, 그때마다 브라우저는 항상 쿠키가 존재하지 않으니까, getSession으로 sessionStore에서 session을 찾지 못할 것이고 그렇다면 새로운 jsessionid 값에 똑같은 사용자를 가진 session을 게속 생성해서 sessionStore에 저장하게 되는 것이 아닌가요?? 그렇다면 세션이 시간이 만료되어서 자동으로 삭제 되기전까지 똑같은 사용자를 포함한 여러개의 세션이 세션스토어에 게속 쌓일것이라고 예상되는데, 그럼 여러가지 jsessionId로 하나의 계정에 접속이 가능한 것인지 궁금합니다. 혹시 제 예측이 틀린것이라면 어떻게 틀렸는지 설명해주시면 감사드리겠습니다.https://www.inflearn.com/questions/989189/request-getsession-%EA%B3%BC-sessionstore위 링크의 질문도 봤는데 아무리 생각해도 sessionStore를 여러개 생성한다는 개념은 뭔가 이상하다고 생각해서 의문이 해결되지 않습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 로드맵 변경 문의드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요. 저는 JPA 기술을 연마하고 싶은 개발자입니다!지금 [우아한형제들 최연소 기술이사 출신 김영한의 스프링 완전 정복]을 결제한 상태이고,[스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술] 강의를 다 들었습니다.그런데 이 강의를 다 듣고나니 저한테 맞는 로드맵은[김영한의 스프링 부트와 JPA 실무 완전 정복 로드맵] 인 것 같아서 문의드립니다. 금액이 문제가 될 수 있지만, 어떻게어떻게 로드맵을 변경할 수 있는 방법이 없을까요? 안그래도 일정이 오래 소요 될 듯하여 걱정 됐었는데, 현재 진행중인 [스프링 완전 정복] 대신 차라리 바로 [스프링 부트와 JPA 실무 완전 정복 로드맵] 공부에 들어가면 제 일정과 딱 맞을 것 같습니다..!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
SpringConfig.java 인식 오류
안녕하세요. 스프링 입문 - 자바 코드로 직접 스프링 빈 등록하기 강의 실습 중 SpringConfig.java 인식이 되지 않는 오류가 발생했습니다. SpringConfig.java 파일 구조와 내용은 위와 같습니다. 에러 코드는 다음과 같습니다.Action: Consider defining a bean of type 'grace.gracespring.service.MemberService' in your configuration. > Task :GraceSpringApplication.main() FAILED Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.5/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':GraceSpringApplication.main()'. > Process 'command 'C:\Program Files\Java\jdk-17\bin\java.exe'' finished with non-zero exit value 1 아래는 controller, service, repository 코드입니다. 도움 주시면 감사하겠습니다.비슷한 오류가 발생하신 다른 분 해결법(SpringConfig.java 가 클래스로 인식안됨)도 시도해보았지만 같은 에러가 계속 발생합니다ㅜ
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
HttpSession과 쿠키
안녕하세요 해당 강의를 듣고 복습하던 중 의문점이 생겨 질문 드립니다!getSession()이 세션이 있는 경우에는 해당 세션을 가져오고, 없는 경우에는 새로 생성한다고 하셨는데 세션이 있는지 없는지는 요청에 있는 쿠키의 JSESSIONID 값을 기준으로 판별하는 건가요? 만약 한 사용자가 로그아웃을 하지 않은 상태로 브라우저를 종료하고 다시 로그인을 수행하면, 쿠키가 삭제되어 이전의 JSESSIONID 값이 사라지게 되어서 getSession()이 해당 세션은 없다고 판단하고 새로운 세션을 생성하게 되나요? 타임아웃이 없다고 가정한다면, 세션 저장소에는 같은 사용자에 대한 세션 정보가 여러개 저장되는건가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
연결 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]org.h2.jdbc.JdbcSQLNonTransientConnectionException: Connection is broken: "java.net.ConnectException: Connection refused: no further information: localhost" [90067-214]Caused by: java.net.ConnectException: Connection refused: no further informationjava.lang.NullPointerException: Cannot invoke "org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(java.sql.SQLException, String)" because the return value of "org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.sqlExceptionHelper()" is null이번 강의부터 이러한 오류가 계속 뜹니다. 8080포트는 사용중이지 않고 혹시 해서 포트번호를 바꿨는데도 계속해서 오류가 뜹니다..
-
해결됨스프링 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, DB 접근 기술
윈도우 스프링 빌드시 libs폴더가 없습니다
현재 5강을 보면서 윈도우 cmd로 스프링 빌드하고 있는데요 빌드에 성공했다고는 떠서 build폴더에서libs폴더로 이동하려는데 libs폴더가 존재하지 않는건 무슨 이유인가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
bindingREsult.hasErrors() 부분 재사용
if(bindingResult.hasErrors()) { log.info("errors = {}", bindingResult); //model.addAttribute("errors", errors); -> model로 넘겨주지않아도 bindingResult 자체로 자동으로 뷰에넘어간다. return "validation/v2/addForm"; }위 코드를 다시 addItemV4의 첫부분에 재사용하는 이유가 먼저 타입오류가 발생하면 밑의 가격 range 오류를 검증하지 않고 바로 "validation/v2/addForm" 뷰로 리턴하여 타입오류 메시지만(하나만) 출력하고 싶을때 이런식으로 하는거죠?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
싱글톤으로 등록됨에 대한 궁금증
[질문 내용]제가 싱글톤 개념을 잘모라서 그럴꺼 같은데,하나만 등록해서 같은 인스턴스를 사용하게 되면order 서비스 같은 건 사용자마다 개별 인스턴스가생성되어야 하는게 아닌가 싶어서요.질문이 정리가 안된거 같기도 하고 헷갈리네요 ㅠ
-
미해결스프링 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, DB 접근 기술
회원목록 조회가 안됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]https://drive.google.com/file/d/1jGfTDdd_dfIXWe6kq_FvMFFKNI1nxWcc/view?usp=sharing수 차례 확인하고 다시 해봤지만 회원목록 조회가 안됩니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
제코드좀 봐주세요 ㅠㅠ
https://drive.google.com/file/d/19EdcpxnIZQKKAeCSlucWIrX8HVv4bCtf/view?usp=drive_link 머리아프네요..17강까지 잘되었습니다..
-
미해결스프링 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에서는 의존성을 주입해주는 이유는 결국 코드를 이루는 객체들끼리 중복되는 반복성을 줄임으로써 효율적인코드를 이루는데에 있다 라고 이해해도 괜찮을까요?