Spring 라이브러리를 이용한 간단 게시판
Spring 라이브러리를 이용한 간단 게시판
1. DispatcherServlet <== Spring제공
-> 요청사항 전달 받는 객체.. web.xml
2. HandlerMapping <== Spring제공
-> 요청사항에 관련된 Controller 반환.. board-servlet.xml
3. ~~~Controller <== 개발자가 생성 (Controller 관련 클래스 : 상속, 구현)
4. 데이터베이스 접근 <== xml문서 이용 .. Context.xml
-> META-INF 폴더
-> Connection 객체들을 여러 개 미리 생성 -> pool 담기
5. DAO / DTO <== 개발자가 생성..
6. 웹브라우저 응답 파일들 <== ~~.html / ~~~.jsp
web.xml 문서
서블릿 등록 방법
<servlet>
<servlet-name> 서블릿 이름 </servlet-name> (3)
<servlet-class> 등록할 서블릿 클래스의 전체 경로및 클래스명 </servlet-class> (4)
</servlet>
<servlet-mapping>
<servlet-name> 서블릿 이름 </servlet-name> (2)
<url-pattern> 웹주소줄을 통하여 요청 <url-pattern> (1)
</servlet-mapping
HandlerMapping 역할을 담당하는 xml 문서
1. 전체를 감싸는 태그는 반드시 <beans ~~></beans> 로 감싸야한다.
2. 작업에 필요한 객체 생성 및 클래스 등록은 <bean></bean> 태그를 사용
<beans ~~>
<bean>
</bean>
</beans>
3. 첫번째 등록은 반드시 HandlerMapping
4. ViewResolver 도 반드시 등록
5. 그 외의 컨트롤러는 반드시 해당 클래스를 만든 후, 등록!!
즉, xml 문서에 미리 설정 금지!!!!
실행순서
application -> web.xml -> 구동시작
웹브라우저 요청 -> web.xml 의 DispatcherServlet -> board-servlet.xml 내의 HandlerMapping 에게 전달
-> HandlerMapping은 요청을 처리할 수 있는 컨트롤러 반환
-> 반환받은 DispatcherServlet 은 ~~~Controller -> 요청사항 처리 후, 결과 값과 출력 파일명을 ModelAndView 객체로 반환
-> 반환받은 DispatcherServlet 은 -> ViewResolver 에게 전달 -> ViewResolver는 해당 파일의 위치와 확장자를 반환
-> 반환받은 DispatcherServlet 은 해당 위치의 파일을 웹브라우저에게 응답처리
클래스 등록방법
1. 해당 xml문서에서 사용할 클래스(객체)
<bean id="객체명" class="패키지.클래스"></bean>
예) 만약 board.dao.BoardDAO 가 있을경우
<bean id="boardDAO" class="board.dao.BoardDAO"></bean>
2. 컨트롤러 클래스 등록방법 1 (전달받는 데이터가 없을 경우: 예)글목록..)
<bean name="요청사항(url)" class="요청사항처리클래스">
<property name="해당 클래스의 멤버변수명">
<ref bean="변수에 전달할 값" />
</property>
</bean>
예) 만약 board.controller.ListActionController 가 존재할 경우,
내부에 BoardDAO dao; 변수가 일을 경우
요청사항이 list.do 일 경우
<bean name="/list.do" class="board.controller.ListActionController">
<property name="dao">
<ref bean="boardDAO" />
</property>
</bean>
3. ViewResolver 클래스 등록방법
<bean id="객체명" class="스프링이 제공하는 InternalResolverViewResolver">
<property name="viewClass" value="스프링이 제공하는 InternalResourceView"></property>
<property name="prefix" value="경로"></property>
<property name="suffix" value="구체적인내용(즉, 확장자)"></property>
</bean>
예) 화면출력용 jsp 파일들이 WebContent 폴더에 존재할 경우: "list" => /list.jsp
<bean id="viewResolver" class="~~~.~~~.InternalResolverViewResolver">
<property name="viewClass" value="~~~.~~~.InternalResourceView"></property>
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>