POJO1의 한계가 뭐였지?
![[구디-12월7일 강의(54일)#^ea00f1]]
- 서블릿 아니어도 괜찮음
- 변경 : ActionServlet.java - FrontController(전처리 지원, 관여) -> DispatcherServlet 동작
- 어제 허용해둔 것도 테이블에서 null 허용이 되지 않기 떄문에 추가적인 xml 작업이 필요함.(아래 내용 MapperConfig.xml에 추가)
- 이러니까 post 방식이 아니라 get 방식으로 테스트 하는 것 필요/???
- 쿼리스트링으로 넘기면 한글깨짐 이슈가 없음.
<settings>
<setting name="jdbcTypeForNull" value="NULL" />
</settings>
- Base64(64진법-26*2) vs 아스키코드(128bit)
- 톰캣은 인코딩 타입이 8859_1로 되어있음.
- 우리는 EUC
- 한글 안개지는지 해결 테스트(https://blog.naver.com/baekmg1988/221302236018)
Connector connectionTimeout="20000" port="8000" protocol="HTTP/1.1" redirectPort="8443" **URIEncoding ="UTF-8"**/>
1 2 3 4 5 6 7 8 9 10 11 12 | <filter> <filter-name>CharacterEncoding</filter-name> <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> | cs |
- 웹 서버랑 웹 컨테이너는 뭐가 다르지?
- 웹서버는 정적인 처리, 간단히 이야기하면 클라이언트 요청에 응답을 보내는 컴퓨터 프로그램
- 웹컨테이너는 웹서비스를 포함하는 처리인데 자바 기반 엔진이다. (servlet-api.jar, jsp-api.jar의 기능을 모두 수행하는 프로그램)
- 그러니까 톰캣은 웹서버 역할, 웹컨테이너 역할 다 처리하는구나? (자바 처리도 가능한 거지?)
- 이외에도 엔터프라이즈 서버(JBOSS, JEUS)도 있는데.. -> 원격에 있는 클래스 호출하여 사용가능한 서버, 보안 강점 (다만 실습에선 사용x (우리는 톰캣 위주 실습!))
- 누군가 IIS 서버에서 서블릿, 스프링 지원하나요? IIS 서버에서 서블릿 컨테이너 지원(서블릿 API 내장)되나요??
- [[VO]]란 객체와 테이블 사이의 매핑을 위해 시작된 클래스 설계
- 자바에서는 String, 오라클에서는 varchar2 -> 다른 타입이지만 동일한 값
- [[lombok]]은 왜사용? 코드 다이어트 가능!! 🏃♀️
- @Builder 있을 때 없을 때 :
- 없다면? 매번 생성할때마다 파라미터 안에 생성자 내용을 파라미터 순서대로 빠지지 않게 다 넣어야 함... 너무 귀찮음 😅
- 있으면? 생성자 파라미터엔 모든 값이 있지만, 일부만 값을 넣거나 그 입력 순서도 상관없이 사용이 가능, 훨씬 간결하고 편해진 전변의 초기화 코드!!
- 클래스 결합도 낮추기 위해 상속을 포기함.
- [[매핑]] 구조에서 extension mapping 구조 사용 예정(스프링에서는 이를 지원하는 어노테이션 있음.-빈관리를 받을 때만 사용 가능, req, res를 주입해주기 때문에?!)
- 어떠한 것도(Controller 인터페이스) implements 받지 않아서 제약 조건이 없음. 순수한 자바 클래스 [[POJO]]이다.
- 페이지 블럭처리 공식 및 변수
- 전체 데이터 값에 따른 페이지 수, 구분이 결정될 수 있도록 설계 필요(어떤 건 데이터가 10개, 어떤 건 100개일 수 있으니...)
- 1 2 3 > < 4 5 6 > < 7 8 ....
[!tip] 배포 위치에 대한 기준
/webapp/board & /WEB-INF/jsp/board
- 둘 중 url을 통해 요청할 수 있는 페이지는?? webapp이다. WEB-INF는 컨테이너를 통해 경유해서 갈 수 있다.
[!tip] 프론트 컨트롤러인 ActionForward, XXXController
- af 는 서블릿이지만 Controller는 아니다.
- 서블릿이 아니면 요청, 응답 못하지 않나? controller 인터페이스의 메소드 오버라이딩으로 해결할 수 있다.
- Controller의 구현체 클래스는 무엇인가? XXXController 이다.
- 잊지말자 [[다형성]]!! 인터페이스 인터페이스변수 = new 구현체클래스();
- 서블릿은 아니지만 요청, 응답객체를 누린다. 인터페이스와 클래스의 형태로 설계를 한 것이다.