EBNF 표기법 , JSTL, IBATIS 등 경로 - @RequestMapping, 내부이동, 재요청 응답, redirect:, JSP web.xml (jsp-config, jsp-property-group, url-pattern, include-prelude, include-coda)

2019. 5. 13. 19:02웹(JSP)

---------------------------------------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>