JSP의 경로

세피·2022년 2월 6일
0

스프링

목록 보기
11/11

JSP의 경로

정적파일과 동적파일 동작하는 방법 : https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

따로 관리하는 이유 -> 정적파일을 빨리 실행시키기 위해서

JSP는 어떻게 인식되서 작동되는가???

JSP 파일 자체를 브라우저로 전송하면 인식x, 톰캣 컨테이너에 의해 브라우저로 전송되기 전 실행 단계를 거쳐야 인식o

이 과정을 거치면 브라우저로 전송됨, 전송될때 jsp 파일은 html/css/js로 변환된 파일임

=================

tiles란 개념도 존재하기에 좀 복잡하다.

일단 타일즈 먼저

  • pom.xml 에 tiles 관련 dependency 추가

  • servlet-context.xml 파일에 타일즈 View Resolver 를 추가

  • tiles 관련 설정 xml 추가

  • 기본 레이아웃 jsp 추가

<세세하게 다시 정리>

pom.xml

<!-- Tiles 관련 -->
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>2.2.2</version>
</dependency>

여기서 의문

pom.xml은 뭐지? 프로젝트 실행 흐름에 없는애였다. 그럼 이건.. 메이븐! 메이븐 라이브러리 업데이트

스프링 안에서 그냥, 서버와 관계없이 흘러가는 xml

Maven (빌드툴 ※ 그레들, 엔트)

  • 개발된 프로젝트를 동작 할 수 있는 파일로 만들어주는 기능

  • java -> jar // Web(정적파일) -> war(동적파일)

  • 원하는 라이브러리를 직접 다운 받지 않고 사용 할 수 있는 기능

(사실 특정 코드 넣으면 알아서 다운 받음)

  • 이런 설정들을 pom.xml 에서 해 준다.

  • 기본적으로 사용하는 라이브러리들은 C:/[userPc]/.m2 폴더에 저장 된다.

<세세하게 다시 정리>

https://velog.io/@ehdrms2034/%EC%8A%A4%ED%94%84%EB%A7%81-MVC-Spring-MVC-%EA%B5%AC%EC%A1%B0

사용자 -> 요청(url) -> DispatcherServlet -> handlermapping을 통해 해당 요청을 매핑한 컨트롤러가 있는지 찾음 -> controller 도착 (서비스,dao,mapper 등장) -> 요청 처리 후 결과를 출력할 view의 이름을 리턴 -> servlet.xml에서viewResolver를 통해 jsp 찾아냄 -> view -> 사용자 끝, 주의 주의 jsp보다 tiles가 우선이다 tiles 설정 했는지 꼭 확인

  1. 사용자 -> 요청(url) 을 예로들어 /list.do 라고 해보자
    그럼 스프링에서 얘는 이걸 어떻게 인식을 하는가?
    web.xml

           <!-- action이라는 이름을 가진 DispatcherServlet을 등록 -->
         <servlet-name>action</servlet-name>
         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
         <!-- 서블릿 컨테이너는 *.do라는 경로의 요청이 있어야 DispatcherServlet 객체를 생성 -->
           <servlet-mapping>
         	<servlet-name>action</servlet-name>
         <url-pattern>*.do</url-pattern>
      	</servlet-mapping>
         
           <init-param>
           <param-name>contextConfigLocation</param-name>
           <param-value>
     				/WEB-INF/config/springmvc/common-*.xml
     	</param-value>
         </init-param>
    1. 이제 디스패처에서 핸들러 매핑을 통해 컨트롤러 찾음
      /list.do 가 적혀있는 controller가 어디있을까??? 두리번
    2. 이렇게 내가 알고있는 mvc 패턴을 쭉 다녀온 뒤 ModelAndView을 통해 리턴할 view를 알려줌
    3. viewResolve
      https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=aeroviper&logNo=221193958816
      common-servlet.xml
      // UrlBasedViewResolver , 특별한 맵핑 정보 없이 view 이름을 URL로 사용. View 이름과 실제 view resource와의 이름이 같을 때 사용 가능.

      servlet.xml에서 jsp 설정을 해줌
      View Resolver를 등록하면 WEB-INF 폴더는 절대 브라우저에서 접근하라 수 없다. 하지만 위와 같이 설정하면 JSP 파일을 View화면으로 사용할 수 있다. 단 컨트롤러의 Redirect 요청이 있을때만 가능하다.


profile
세피의 블로그입니다

0개의 댓글