Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

까마귀코딩.log

spring pattern project 00 본문

스프링

spring pattern project 00

까마귀코딩 2023. 1. 19. 18:18

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주소로 사용한다는뜻이다. 

 

 

 

 

 

스프링 webmvc 설정법

[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