EBNF 표기법 , JSTL, IBATIS 등 경로 - @RequestMapping, 내부이동, 재요청 응답, redirect:, JSP web.xml (jsp-config, jsp-property-group, url-pattern, include-prelude, include-coda)
---------------------------------------EBNF() 표기법-----------------------------------------
EBNF(Extended Bachus-Naur Form) 표기법
A A가 반드시 한번 정의해야 한다.
A+ A는 한번 이상 정의할 수 있다.
A* A는 0번 이상 정의할 수 있다.
A? A는 0번 혹은 1번 정의할 수 있다.
A,B A 다음에 B를 정의한다.
A|B A 혹은 B를 정의한다.
----------------------------------------경로----------------------------------
@RequestMapping("/경로")
- 요청 핸들러 메소드와 경로를 1대1로 연결한다.
- 경로는 " / "로 시작한다.(절대경로 아님, 그냥 경로라는 느낌이 나게 하려고...)
- 경로는 프로젝트 전체에서 고유해야 한다.
- 경로는 항상 .hta로 끝나야한다.
ModelAndView에서의 경로
- 내부이동
- mav.setViewName("경로");
- 경로는 JSP의 위치다.
경로는 "WEB-INF/views/경로"에서
"WEB-INF/views/"를 제외한 나머지 경로
- 적용예
요구사항
localhost/board/list.hta 요청에 대해서
WEB-INF/views/board/list.jsp로 내부이동해서
JSP의 실행결과를 제공한다.
설정내용
mav.setViewName("board/list.jsp")로 설정한다.
- 재요청 응답
- 재요청 경로는 @RequestMapping("/경로")설정된 경로중에 하나여야 한다.
- "redirect:"로 시작해야 하고, ".hta"로 끝나야 한다.
- 재요청 경로는 상대경로, 절대경로 두가지 방식으로 작성할 수 있다.
- 상대경로로 작성한 경우
- mav.setViewName("redirect:상대경로");
- 현재 실행중인 요청 핸들러 메소드를 요청한 URL에 대한 상대적인 주소다.
- 작성예
새글 등록 요청
요청 URL -> localhost/mvc/board/add.hta
요청 핸들러 메소드 실행
mav.setViewName("redirect:list.hta")
재요청 URL -> localhost/mvc/board/list.hta
- 절대경로로 작성한 경우
- mav.setViewName("redirect:/절대경로")
- 현재 실행중인 요청 핸들러 메소드를 요청한 URL과 상관없는 주소다.
- 작성예
로그아웃 요청
요청 URL -> localhost/mvc/member/logout.hta
요청 핸들러 메소드 실행
mav.setViewName("redirect:/mvc/board/list.hta")
재요청 URL -> localhost/mvc/main.hta
------JSP web.xml (jsp-config, jsp-property-group, url-pattern, include-prelude, include-coda)-------
jsp-config
jsp-property-gourp // 안에다가 설정들을 넣는다.
url-pattern 패턴타입 /url-pattern // 해당 어떤 패턴의 파일을 실행할지 명시한다.
include-prelude 파일의 경로 /include-prelude
// 해당 경로와 파일을 작성하면 작성한 파일이 시작하면 맨처음에
입력을 하지 않더라도 사용이 가능하다 include와 같은것
include-coda 파일의 경로 /include-coda
// include-prelude와 같지만 파일의 끝에 자동으로 추가되고 실행되는것이다.
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<!-- url-pattern에서 지정한 패턴에 해당하는 파일의 앞에 자동으로 추가될 파일을 지정 -->
<include-prelude>/WEB-INF/views/common/lib.jsp</include-prelude>
<!-- url-pattern에서 지정한 패턴에 해당하는 파일의 끝에 자동으로 추가될 파일을 지정 -->
<include-coda></include-coda>
</jsp-property-group>
</jsp-config>