일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 루테란 떠돌이상인
- 가로세로세팅
- zoom
- IT용어
- 욘 떠돌이상인
- 유튜브
- 애니츠 떠돌이상인
- 3
- 베른 떠돌이상인
- 페이튼 떠돌이상인
- 홈페이지제작견적
- https
- HWP
- sm
- 토토이크 떠돌이상인
- 특정페이지가로로
- 파푸니카 떠돌이상인
- 슈샤이어 떠돌이상인
- SI
- SSL
- 로헨델 떠돌이상인
- 한글
- PIP모드
- 작은화면
- 이름바꾸기
- SE
- 아르데타인 떠돌이상인
- Today
- Total
도담도담
Spring MVC 사용 본문
MVC 모델 1,2 비교
모델1
- 소규모
- 유지보수가 복잡
- 디자이너가 코드 삭제할 위험
모델2 : (핵심- 컨트롤러의 유무)
- 엔터프라이즈급 작업
- 유지보수가 쉽다
- 역할이 확실히 나위어있어 디자이너가 꾸미기 편함
- (개발자는 컨트롤러와 모델만 관리)
MVC | 구성요소 | 개발주체 |
Model | VO,DAO 클래스 | 자바 개발자 |
View | JSP 페이지 | 웹 디자이너 |
Controller | Servlet 클래스 | 자바 개발자 또는 MVC프레임워크 |
Spring MVC 사용
DispatcherServlet => /WEB-INF/내에서 서블릿이름-servlet.xml 문서를 검색 (default)
만약 서블릿이름-servlet.xml 문서의 위치를 변경할 경우,
서블릿 초기화 파라미터를 이용하여 위치 변경 가능..
**서블릿이름-servlet.xml 는 web.xml 문서에 등록된다.
<servlet>
<servlet-name>서블릿이름</servlet-name> 을 이용하여 검색
<servlet-class> ~~~.DispatcherServlet </servlet-class>
</servlet>
예) web.xml문서 내에
<servlet>
<servlet-name>test</servlet-name>
<servlet-class> ~~~.DispatcherServlet </servlet-class>
</servlet>
와 같이 서블릿 이름을 설정하면
DispatcherServlet은 test-servlet.xml 문서를 검색한다.
서블릿이름-servlet.xml 문서 등록 내용
HandlerMapping / ~~Controller / ViewResolver
들을 <bean></bean> 태그를 이용하여 등록!!
서블릿이름-servlet.xml 문서 위치 변경시,
<servlet>
<servlet-name> ~~ </servlet-name>
<servlet-class> ~~ </servlet-class>
<init-param>
<param-name> ~~ </param-name>
<param-value> ~~ </param-value>
</init-param>
</servlet>
와 같이 변경된 위치를 설정..
<init-param></init-param> 는 DispatcherServlet의 init()에 의해서 설정됨.
<param-name> contextConfigLocation </param-name> 는 DispatcherServlet의 멤버변수명 수정불가.
<param-value> ~~ </param-value> 는 변경된 위치 및 설정 파일
예) action-servlet.xml 이 WEB-INF/config/ 이 존재할 경우
<init-param>
<param-name> contextConfigLocation </param-name>
<param-value> /WEB-INF/config/action-servlet.xml </param-value>
</init-param>
예) action-servlet.xml 의 이름을 presentation-layer.xml으로 변경하고, 파일이 WEB-INF/config/ 이 존재할 경우
<init-param>
<param-name> contextConfigLocation </param-name>
<param-value> /WEB-INF/config/presentation-layer.xml </param-value>
</init-param>
Spring MVC 가 제공하는 DispatcherServlet의 내부구조
public class DispatcherServlet extends HttpServlet{
private String contextConfigLocation;
public void init(ServletConfig config) throws ServletException{
contextConfigLocation = config.getInitParameter("contextConfigLocation");
new XmlWebApplicationContext(contextConfigLocation);
}
~~~~~
}
인코딩설정
웹 애플리케이션에 대한 전체적인 요청 인코딩을 설정할 경우
web.xml 문서 내의 상단에 <filter></filter> 와 <filter-mapping></filter-mapping> 을 이용하여 설정
SpringMVC 는 CharaterEncodingFilter 클래스를 제공한다..
<filter>
<filter-name>characterEncoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</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>*.do</url-pattern>
</filter-mapping>
<filter><filter-name>characterEncoding</filter-name></filter> 의 필터 이름과
<filter-mapping><filter-name>characterEncoding</filter-name></filter-mapping> 의 필터 이름은 동일해야 한다!
설정 방법은 서블릿 등록 방법과 동일한 형식!!
<init-param><param-name>encoding</param-name></init-param> 의 파라미터명은 수정 불가능!!!
encoding은 CharacterEncodingFilter 의 멤버변수명이기 때문에...
위의 설정은 요청 URL의 마지막이 ~~.do 로 요청이 들어오면 UTF-8로 인코딩 처리
프로젝트 이름변경시 주의사항
프로젝트 실행시, 웹페이지 주소줄에 프로젝트 이름기반으로 되어있는지 확인
안되어있으면 server 에서 톰캣(서버)를 더블클릭한 후,
[Modules] -> path를 [Edit] -> "/프로젝트이름" 으로 변경 (변경 후 저장까지 해줘야함)
Servlet 됬는지 확인하는곳
src => main => webapp => WEB-INF => web.xml 맨 밑쪽으로 설정한 servlet 내용들이 있다.
'IT 공부 > KH 정보교육원' 카테고리의 다른 글
프레젠테이션, 비지니스 레이어 통합 (0) | 2021.06.28 |
---|---|
Spring MVC를 이용한 구현 (0) | 2021.06.23 |
Spring MVC 구조 (0) | 2021.06.22 |
스프링 트랙젝션(Transaction) (0) | 2021.06.21 |
어노테이션을 이용한 MVC (0) | 2021.06.18 |