이야기를 나눠요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
웹 브라우저에서 hello world가 안보이던 이유
강의 9분에서 진행되던 파라미터를 Response에 다시 돌려주던 부분에서 저는 왜 에러 페이지가 뜰까 고민하다가 발견한 것을 정리했습니다.강의 처음부터 service 메소드를 오버라이딩할 때 super.service(req, resp);가 없었지만 Ctrl + Shift + A를 통해 자동으로 생성할때에는 저 한 줄이 자동으로 붙습니다. 이를 제거해주지 않으면 에러페이지가 표시되고, 응답은 405로 표시됩니다.저 코드의 의미는 부모 클래스의 service 메소드를 실행하라라는 의미인데, 들어가보면 아래의 코드를 만날 수 있습니다.if (method.equals(METHOD_GET)) { long lastModified = getLastModified(req); if (lastModified == -1) { // servlet doesn't support if-modified-since, no reason // to go through further expensive logic doGet(req, resp); } else { long ifModifiedSince; try { ifModifiedSince = req.getDateHeader(HEADER_IFMODSINCE); } catch (IllegalArgumentException iae) { // Invalid date header - proceed as if none was set ifModifiedSince = -1; } if (ifModifiedSince < (lastModified / 1000 * 1000)) { // If the servlet mod time is later, call doGet() // Round down to the nearest second for a proper compare // A ifModifiedSince of -1 will always be less maybeSetLastModified(resp, lastModified); doGet(req, resp); } else { resp.setStatus(HttpServletResponse.SC_NOT_MODIFIED); } } }나름 해석해보면 GET 요청이 올 때, doGet 메소드로 보내는 것을 확인할 수 있고, doGet 메소드는 아래와 같습니다.protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String msg = lStrings.getString("http.method_get_not_supported"); sendMethodNotAllowed(req, resp, msg); }코드를 보면 상속을 하지않은 원형 doGet 메소드는 405코드로 바로 응답하도록 작성되어 있는 것을 확인할 수 있습니다.이를 해결하는 방법은 2가지가 있습니다.상속받은 HelloServlet의 service 메소드에서 super.service(req, resp)를 제거하는 것.상속받은 HelloServlet에 doGet 메소드를 추가로 오버라이딩해서 그곳에 Response를 조작하는 코드를 작성하는 것이 있습니다. 이에 해당하는 방법의 코드는 아래와 같습니다.@WebServlet(name = "helloServlet", urlPatterns = "/hello") public class HelloServlet extends HttpServlet { @Override protected void service( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException { super.service(req, resp); System.out.println("HelloServlet.service"); System.out.println("req = " + req); System.out.println("resp = " + resp); } @Override protected void doGet( HttpServletRequest req, HttpServletResponse resp ) throws IOException { // 파라미터 획득 String userName = req.getParameter("username"); System.out.println("userName = " + userName); // Response Header 설정 resp.setContentType("text/html"); resp.setCharacterEncoding("utf-8"); // Response resp.getWriter().write("hello " + userName); } }
-
스프링 부트 웹 개발 입문 - 따라하며 배우기
스프링 이해가 안되어서 듣고 있는데 ..
정말 너무 좋습니다 ㅠㅠ그동안 이해가 안되었던 부분들을너무 쉽게 설명해주셔서 잘 따라가고 있어요!동네 개발자 형이 옆에서 알려주는듯한 느낌.. ㅋㅋ좋은 강의 감사드립니다!
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
model.addAttribute("data" , "hello!!"); 헬로안뜨네요
vscode 라서그런가요 hello!! 가 안되네요 다른거 다똑같이했는데 ㄷ
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MVC 패턴 관련
현재 JPA 실습을 하고 있는데 MVC패턴에 대하여 궁금하여 문의드립니다. 현재 프로젝트에서 View단인 resource 디렉토리를 제외한 나머지 부분이 모두 백엔드에 속하는건가요?
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Form validation 이후 필드값 유지
별건 아니지만 5분간 삽질한 내용 공유 드립니다.19:25 부분에서 강사님이 말씀하신것처럼 필드 유지가 안되는 경우@Getter @Setter public class MemberForm { @NotEmpty(message = "값이 존재해야 합니다.") private String name; private String city; private String street; private String zipcode; }MemberForm 모델에 수정자가 존재하는지 확인해보세요.@Setter를 사용하지 않는 습관때문에 간단한 것도 놓치네요.혹시 저와 같은 문제를 겪으신 분을 위해 공유합니다.
-
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
파이어베이스 연결 과정이있는 자바 스프링 MVC과정에 대한 문의
지금 스프링MVC2편 강의를 들으면서 파이어베이스 기반의 안드로이드 앱 쇼핑몰의 어드민단 작업을 테스트해보고 있습니다. 혹시 파이어베이스 연동하고 활용하는 것에 대한 강좌가 있는지요? 없다면 혹시 계획은 있으신지 문의드립니다.
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MVC강의랑 JPA기본편이랑 병행하는건 어떨까요?
안녕하세요 현재 영한님 스프링 강의를 듣고 있습니다. 우선 좋은강의만들어주셔서 감사합니다. 제가 지금 야생형으로 해서 JPA 활용1편을 거의 다들었고 JPA기본편을 들을 차례인데요, 개발바닥 이벤트로 영한님의 모든 강의를 구매해놓은 상태입니다. 그래서 문득 JPA강의를들으면서 MVC강의도 같이 들으면 좀더 이해가 잘 될까? 아니면 기존 야생형코스를 다듣고 MVC를 추가로 듣는게 나을까? 고민이 되더라구요 JPA활용1편을 무작정 들어보면서 흥미가 더 올랐고 모르는부분은 제가 찾아가면서 해보니 가면갈수록 내공이쌓여서?? 이해가 잘 되고 있습니다.ㅎㅎ 1월중순부터 지인들이랑 프로젝트를 하나 해보기로한 상황이기도하고.. 궁금해서 여쭤봅니다!