pom.xml
<dependency> 라는 태그는 하나의 라이브러리를 의미
라이브러리를 또 하나 추가하고 싶다면 <dependency>라는 태그를 추가하면 새로운 라이브러리를 추가 할 수 있다.
web.xml
서블릿 배포 기술자 , DD (Deploment Descriptor)라고 한다.
WAS(Web Application Server ex.tomcat) 이며, 최초 구동할 때, WEB-INF 디렉토리에 존재하는 web.xml를 읽어 웹 애플리케이션 설정을 구상
설정을 위한 설정파일
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>
위와 같이 JSP 파일 return home으로 되어있으면 /WEB-INF/views(prefix)/home.jsp(suffix) 이렇게 자동으로 붙여짐
이 구조를 간단히 살펴보자.
1) src/main/java는 java 파일이 모여있는 디렉토리이다. 우리가 앞으로 만들 java 파일은 전부 이 디렉토리에 구성된다.
2) src/main/resources는 여기서는 사용하지 않지만, 추후 스프링 설정 파일이나 쿼리가 저장될 디렉토리이다.
3) src/test/ 관련 폴더는 test 관련 폴더인데, 우리는 TDD(Test Driven Development) 방법론이나 테스트코드를 따로 작성하는 방식은 아직까지는 사용하지 않기 때문에, 현재로써는 필요없는 폴더이다. 과감히 삭제.
4) 우리는 메이븐을 사용하는데, 메이븐의 기본 폴더는 src/main/webapp 폴더가 기본 폴더이다. webapp 폴더 밑에 모든 jsp 및 js 등의 파일이 포함된다.
5) servlet-context.xml, root-context.xml은 서블릿(Servlet)관련 설정파일이다.
출처: http://addio3305.tistory.com/37?category=772645 [흔한 개발자의 개발 노트]
1 2 3 4 5 6 7 8 9 10 11 12 13 | @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"; } | cs |
1. @RequestMapping : 웹 클라이언트(JSP)에서 들어온 요청에 해당하는 비즈니스
어떤 URL로 들어오고 있는지 명시해준다.
2. return "home" : 수행결과를 어느 JSP 로 보낼지 적어준다. home.jsp 라는 jsp 파일을 참조
서블릿 설정에서 자동으로 앞에는 "/WEB-INF/views" 붙여주고 (prefix), ".jsp" 는 뒤에 붙인다 (suffix)
3. model.addAttribute("serverTime", formattedDate)
실행되는 로직에서 formattedDate를 "serverTime"이라는 변수에 대입해서 return 해주는 곳(ex. home.jsp )으로 이동!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ page session="false" %> <title>Home</title> <h1> Hello world! </h1> <p> The time on the server is ${serverTime}. </p> | cs |
4. ${serverTime} : 3. model.addAttribute("serverTime", formattedDate) 에서 받아온 결과값을 리턴 받는다.