까마귀코딩.log
spring pattern project 00 본문
081. crud 기능하나로 합치기
컨트롤러에서
- form()
-add ()
-list()
-detail()
-update()
-delete()
-fileDelete()

1. @RequestMapping 사용법
2. 스프링의 CharacterEncodingFIlter 사용법
3. 필터를 자바코드로 배치하는 방법
4. "요청핸들러" 의 파라미터를 다루는 방법
== request Handler: 요청이 들어왔을때 호출되는메서드
add(), list(), detail() 등
프론트 컨트롤러인 DispatcherServlet
>>
디스패처서블릿 얘가 하는일이 뭘까??
먼저
1) 요청 url 을 처리할 페이지 컨트롤러의 핸들러를 찾는다.
2) 핸들러의 파라미터를알아낸다.
3) 핸들러에게 넘겨줄 파라미터 값을 찾는다.
4) 준비한 파라미터값을 가지고 핸들러를 호출한다.
5) 핸들러가 리턴할 값을 분석한다.
6) servletRequest 보관소에 담아야 할 값을 담고,
뷰 컴포넌트 url 은 해당 뷰컴포넌트를 실행한다.
7) 클라이언트에 응답한다.
* 멀티파트요청 데이터를 도메인 객체로 받기
멀티파트 요청 데이터는 MultipartResolver 를 사용하면 되고
별도의 설정이 필요하다.
요청 핸들러의 리턴타입?
1. void
2. String
3. Model
4. Map
5. ModelfindView
6.View
설명 !!
1. void handle() { - } == jsp 주소가 없다. 요청 URL 을 jsp 주소로 사용한다.
2. String == jsp url
3. Model == servletRequest 보관소에 담을 객체들을 리턴한다. jsp 주소가 포함되어 있지 않다. ->요청 url을 jsp주소로 사용한다.
4. Map -> model과 같은 메서드로 취급한다.
5. ModelfindView == jsp 주소 + servletRequest 보관소에 저장할 객체들
6.View == jsp 주소를 view 객체에 담아 리턴한다.
* FRONT Controller ( 디스패처 서블릿 ) 은
요청 핸들러의 리턴타입에 따라 적절하게 처리한다.
ModelAndView 와 DispatherServlet
1. 디스패처 서블릿이 list() 를 호출하면
2. 보드컨트롤러에서 list() 를 boardService 에 호출하고
3. 다시 보드컨드롤러로 리턴한다.
4. model And View 에 생성을 해주고
- List < Board >
- jsp 주소
5. modelfindView 리턴해준다.
6. 데이터를 꺼낸다.
7. setAttribute() 담는다. 서블릿 리퀘스트에
8. 디스패처서블릿이 jsp 주소를 꺼내 실행한다.
9. jsp 가 servletRequest 로 보관소에
저장된 데이터를 사용한다.
10. 그리고 jsp 가 디스패처서블릿에 리턴한다.
* view Resolver
뷰 리졸버
1/ 디스패처서블릿이 보드컨드롤러에 list() 를 호출한다.
2/보드컨트롤러가 디스패처 서블릿에 "/board/list" 를 리턴한다.
3/ 디스패처 서블릿이 인터널 리소스 뷰리졸버에 "/board/list" 를 준다.
그러면 internalResourceViewResolver 가
"/" + "board/list"+".jsp" 를 가져가서
"/board/list.jsp" 로 조합해주고
Jstl View 가 JSP 를 실행해준뒤에
다시 그 내용을 InternalResouceViewResolver 에 돌려주고
인터널리소스뷰리졸버가 Dispatcherservler 돌ㄹㅕ준다.
ㅁㅏㄴ약 페이지 컨트롤러가 jsp 주소를 알려주지 않았다면 ?
요청 url 에서 페이지 컨트롤러 path 를 jsp 주소로 사용한다.
예를들면 " board/list" 이거를 jsp주소로 사용한다는뜻이다.
[ServletContainerInitializer ]
1. web.app 시작 -> 서블릿 컨테이너 (예) Tomcat 서버
2. onStartUp() <<interface>> ServletcontainerInitializer
만약 webapp 을 시작하면
서블릿 컨테이너인 톰캣이
onStartUp() 을 호출한다.
인터페이스인 서블릿 컨테이너 이니셜라이저에 on startup을 호출하는 것이다.
1) *.jar / META-INF/servies/javax.servlet.ServletContainerInitializer 파일을 찾는다.
2) 이 파일에 등록된 클래스의 객체를 생성한다.
3) 생성한 구현체에 대해 web App 이 시작되었음을 알리는
onStartup();을 호출한다.
onStartup();??
---------
-구현체가 요구한 클래스목록
-servletcontext 객체
'스프링' 카테고리의 다른 글
erd (0) | 2023.01.30 |
---|---|
[objective-c] iOS 인앱결제 구현 방법 (0) | 2023.01.15 |
안드로이드 인앱결제 (0) | 2023.01.15 |
프로젝트 - 알림시스템 설계 (0) | 2023.01.15 |
Cupidproject Setting 정리 (1) | 2023.01.10 |