티스토리 뷰

이전글 http://holy1017.tistory.com/31


이전글에서 쓰던 프로젝트이다 http://holy1017.tistory.com/31

위 스샷에서 같은 번호끼리 똑같은 구조라는걸 볼수있는데

펼쳐서 보면 똑같은 폴더 맞다...

위쪽의 자바 소스 구조는 말그대로 자바파일을 다룰때 보는 방식을 위한 방식이고

위쪽의 디플로이드 리소스는 웹 파일을 다룰때 보기 편하라고 있는것이다.

아래쪽 src는 실제 프로젝트 폴더(여기선 워크스페이스/test/)에 저장된 파일 위치를 나타낸 것이다.


자그럼 서버 구동시 제일 먼저 읽어오는 부분(실행 순서)이 있는데.

  • 첫번째로 서버 설정파일(xml)들이다.

이클립스에선 서버 프로젝트내에 해당 서버 폴더(톰캣이라던가)안에 보면 xml파일들이 쭉 있다.

해당 정보는 구글링 참조.

한국에선 제우스라던가 웹투비를 사용하는 경우가 많아서..(실은 나도 잘 몰라)

  • 두번째 /test/src/main/webapp/WEB-INF/web.xml 파일이다.
  • 세번째는 web.xml 안에 설정된 정보대로 쭉 읽고
  • 네번째는 자바파일이다.

  • 실제로 홈페이지가 뜨는 과정

현재 테스트 프로젝트는 web.xml 파일을 읽고

web.xml 파일 안에 있는 

<!-- Processes application requests --> <servlet> <servlet-name>appServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>appServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>


을 읽어서 

servlet-mapping 정보의 url-pattern 대로

http://localhost:8080/test/ 라는 요청을 받으면

 /WEB-INF/spring/appServlet/servlet-context.xml 라는 파일의 설정대로

<context:component-scan base-package="holy.com.test" />

holy.com.test 라는 자바소스 패키지 안에 있는 자바 파일들과 비교해본후

 비교해본 결과

/test/src/main/java/holy/com/test/HomeController.java 파일 안에

//
	@RequestMapping(value = "/", method = RequestMethod.GET)
	public String home(Locale locale, Model model) {
		logger.info("Welcome home! The client locale is {}.", locale);
		
		Date date = new Date();
		DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
		
		String formattedDate = dateFormat.format(date);
		
		model.addAttribute("serverTime", formattedDate );
		
		return "home";
	}
//
라는 부분에서

@RequestMapping(value = "/", method = RequestMethod.GET)

빨간색 친부분과 경로명이 일치하므로

home 메소드를 실행후(public String home(Locale locale, Model model) {} 부분 말하는거다)

(실행 내용은 serverTime 라는 이름을 만들고 거기다가 메소드가 실행됬던 시간을 넣은것 뿐이다)

home 이라는 경로를 돌려준뒤(return "home";)

servlet-context.xml 에서 설정대로 

<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<beans:property name="prefix" value="/WEB-INF/views/" />

<beans:property name="suffix" value=".jsp" />

</beans:bean>

아까 리턴으로 받았던 home(return "home";)에다가+.jsp(파랑색 설정 부분)라는 확장자를 결합시킨뒤

/test/src/main/webapp/WEB-INF/views 라는 폴터 내에(빨강색친부분)서 해당 파일을 검색

/test/src/main/webapp/WEB-INF/views/home.jsp 라는 파일을 실행 시킨다.

home.jsp 안에 ${serverTime} 라는 부분은 HomeController.java에서 

model.addAttribute("serverTime", formattedDate ); 으로 받았던 시간이다.


이걸로 기본적인 스프링 프로젝트가 실행되는 순서를 봤다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함