목록2024/10 (43)
The Debugging Chronicles : "코드의 미학"
HttpServletRequset request를 열어보면 메모리에 데이터가 있을까 없을까? 있을 것이다. 그러면 request는 어디서 new 할까? 핸들러 매핑에 의해 매핑이된 메서드의 인자는 개발자가 new해주지않아도 spring 컨테이너가 new해준다 만약 MemberDTO memberDTO를 하면 어떻게 될까? new가 될까?된다.그래서 인자에 써준다. 마치 useBean에서 setProperty에 *해주면 모든 setproperty가 담기는 것과 같다. 만약에 session이 없다면 HttpServletRequset가 필요없다.만약 없다면 POJO이다 지금 Request가 필요한게 아니라 session이 필요하다 의존성도 사라지게 할 수 있다. 스프링에서 parameter(인자)를..
ds-servlet.xml의 설정이 과도해져서 어노테이션으로 줄일 수 있다. 어노테이션 component는 일반 객체라는 뜻이다 어노테이션 component을 상속 받은 @Repository DAO @Service Service @Controller Controller있는데 Controller어노테이션을 사용한다. 컨트롤러라는 것을 인지 하기 위해 implements Controller를 사용하고 있는데 controller 어노테이션을 사용해 컨트롤러 객체라는 것을 나타낸다. 근데 오버라이드에서 오류가 난다.오버라이드는 부모 인터페이스가 사라지게 되어서 더이상 오버라이드가 불가능하게 된다.(객체(추상클래스)는 extends로 , 인터페이스는 implements로 상속 받음..
VR(ViewResolver)는화면 이동 영향 및 담당하는 객체이다. 기존에 만들어 둔 파일을 살펴보면 삭제 하고 ds-servlet에 설정해보자 resolver들의 종류가 많아서타입만으로 넣기 힘들기 때문에 id=""를 꼭 써줘야한다. "org.springframework.web.servlet.view.InternalResourceViewResolver"주입해야하는 의존성이 2개가 있다. 더 나아가기!실무 코드에서는 어떻게 할까? 페이지에 데이터를 반드시 출력해야할 때 >> 상세보기페이지에 들어갈 때 인증 반드시 해야할 때 >> 관리자 페이지, 마이페이지 실제로 어떻게 처리하는지 살펴보자 없는 페이지를하면 메인으로 돌아가게된다.만약 설정을 안하면 빈화면이 나왔을 것이다. 로그아웃을 하고 글을 쓰..
POJOPlain OId java ObjectVO Value Object == DTO"오래된 방식의 간단한 자바 객체" 간단하게 말해서 특정 프레임워크나 라이브러리에 종속되지 않는 순수한 자바 객체를 말한다.POJO는 복잡한 상속 구조나 인터페이스를 요구하지 않고 간단한 getter/setter메서드와 필드를 이용하여 객체의 상태를 관리하는 방식으로 코드를 작성하는 것을 의미한다. POJO를 이용한 코드public class Member { private int id; private String name; private String email; // 기본 생성자 public Member() {} // 매개변수가 있는 생성자 public Member(int id, ..
뭔가 정의할 때 생기는 에러이다'나 XML를 찾고 있는데 안보여' 라고 하는 뜻이다 찾고 있는 위치는 이곳이다.즉, Spring 에서 제공하는 DispatcherServlet 을 new 하려고 하면[/WEB-INF/ds-servlet.xml]설정 파일을 필요로 한다. 라는 뜻이다. 정리하면서버 구동 하면 톰캣이 서블릿 컨테이너에서 Web.xml을 보고,어? spring 에서 제공하는 DispatcherServlet을 쓰네라고 인식한다.그러면 ds-servlet 주세요 한다.xml 파일을 보게되면서 spring 컨테이너의 개입이 시작됨 해결방안 ds-servlet.xml 파일을 만들면 된다.
dispatcherServlet을 직접 만들었다만약 스프링에서 제공하는 파일을 사용하면 어떻게 될까? 일단 어노테이션은 web.xml에 있는 설정을 대신해서 사용한 것이다.ds내용에는 객체그 아래에는 클래스를 쓰면 된다.org.springframework.web.servlet.DispatcherServlet 맵핑도 같이 한다. web.xml은 서블릿 컨테이너(톰캣)에게 줄 파일을 만드는 것이다.필터와 리스너도 여기서 만들어야 한다. 여기서 서버를 돌려면보면 다음과 같은 에러가 난다.https://sweetseonah1004.tistory.com/155 DS가 자기 의존성을 주입하려고 한다.그러면 handlerMapper와 ViewResolver가 있었어야 한다. 먼저 handlerMapper만 추가 해보..
응답이 2가지로 온다 get view를 한다.줄일 수 있다. package com.koreait.app.view.controller;import java.io.IOException;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;@WebServlet("*.do")public class DispatcherServlet extends HttpServlet { ..
DispatcherServlet은 의존성을 2개 가지고 있는데handlerMapping과 ViewResolver이다POJO이다어디로 갈지를 관여한다. 멤버변수는prefix와 suffix가 있는데setter로 의존성을 주입한다. 어디로 가야할지 관연하는 부분에서어디로 가야할 부분에 접두사(./)랑 접미어(.jsp)를 붙여서 완성시킨다. package com.koreait.app.view.controller;public class ViewResolver { private String prefix; private String suffix; public String getPrefix() { return prefix; } public void setPrefix(String prefix) { this.pre..
FrontController일반적으로 view라고하는데 사용자에게 제공한다는 의미이다. 기본 내용에서 주석을 지우면 예전에는 FrontController라고 불렀는데 스프링에서는 DispatcherServlet 라고 불른다.일반 POJO가 new하지 않는다.서블릿에서는 컨테이너가 주관하는데 바로 톰캣이다.톰캣이 주관하는 web.xml 에 가보면xml 태그에 과도한 설정이을 피하기 위해서 어노테이션을 쓴다. 우리는 요청이 get인지 post인지 알지 못하기 때문에 DoAction을 만들어서 요청을 처리한다. doAction에서 들어오면 해야할 3가지 단계가 있다.1. 사용자(클라이언트, 브라우저)가 무슨 요청을 했는지 추출 및 확인2. 요청 수행 = 요청에 해당하는 controller 기능을 수행3. 응답..