Spring Legacy Project를 만들고 간단하게 구조를 보겠습니다!
Spring Legacy Project로 프로젝트를 만들거에요!
SpringMVC라는 이름의 프로젝트를 만들겠습니다!
아래쪽에 보면 Spring MVC Project라는 템플릿이 만들어져있네요 Spring MVC Project도 선택하고 Next를 눌러주세요.
(뭔가 다운로드 해야할수도 있습니다. 다운로드 하라고 나오면 다운로드 하시면 됩니다!)
그러면 패키지 이름을 파란색 영역처럼 3단계로 적어달라고 하네요.
저는 com.mvc.hello로 만들겠습니다.
이런 구조의 프로젝트가 만들어지네요.
프로젝트를 만들자마자 실행시키면 이렇게 한글이 깨져요 ㅜㅜ...
어떻게 고칠수 있을까요??
src/main/webapp/WEB-INF/views/home.jsp에서 코드를 살짝 건드려주는 방법이 있습니다.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<% request.setCharacterEncoding("UTF-8"); %> <%-- 추가 --%>
<% response.setContentType("text/html; charset=UTF-8"); %> <%-- 추가 --%>
<html>
<head>
<title>Home</title>
</head>
<body>
<h1>
Hello world!
</h1>
<P> The time on the server is ${serverTime}. </P>
</body>
</html>
<% request.setCharacterEncoding("UTF-8"); %>
<% response.setContentType("text/html; charset=UTF-8"); %>
이 두줄을 넣어주면 한글이 나옵니다.
다른 방법도 있습니다!
src/main/java에서 com.mvc.hello.HomeController가 있습니다.
빨간색 영역의 코드를 추가하고 실행시켜봐도 한글이 잘 나옵니다!
HomeController.java에 보면 지금 파라미터가 4개가 있습니다.
이 4개의 파라미터는 Dispatcher Servlet에서 알아서 만들어줍니다.
Spring Legacy Project는 예전에 템플릿으로 만들어 놓을 것을 사용하는 것으로 스프링 3.9버전까지는 사용할수 있지만 4버전 이후부터는 Spring Boot만 지원을 합니다.
또한 Spring Legacy Project에서 봐야할 것은 pom.xml과 web.xml / root-context.xml / servlet-context.xml입니다.
모두 기본 설정이 되어있으며 이 모든 것은 템플릿이 제공합니다.
pom.xml에 dependency도 템플릿에서 제공하는 것이지만 servlet-context에는 앞선 포스팅에서 말씀드린 내용 이외에 새로운 내용이 있습니다.
빨간색 영역의 코드는 다루지 않았던 내용인데요.
ViewResolver가 Controller -> Service -> Repository -> DB -> Repository -> Service ->Controller를 통해 전달 받은 것을 Dispatcher Servlet에 있는 ViewResolver가 view(jsp)를 응답시킵니다.
Controller에서 return을 home이라는 view를 넘겼으며 해당 메소드에는 model이 담겨있습니다.
이렇게 넘어오는 객체를 ModelAndView라고 합니다.
ViewResolver에 보면 beans:property태그에 prefix와 suffix가 있는데 리턴받은 view의 앞에는 prefix를 뒤에다가는 suffix를 붙입니다.
만약 컨트롤러에서 home이 리턴되었다면 앞뒤로 prefix, suffix가 붙어서 "/WEB-INF/views/home.jsp"가 되겠네요.
'Java 관련 > Spring Legecy' 카테고리의 다른 글
[Spring] request, response (0) | 2022.04.01 |
---|---|
[Spring] encodingFilter로 한글 설정하기 (0) | 2022.03.31 |
[Spring] Spring MVC & TODO (@RequestMapping @RequestParam @ModelAttribute @SessionAttribute) (0) | 2022.03.29 |
[Spring] AOP(@Component) (0) | 2022.03.28 |
[Spring] AOP(before, after, after-returning, after-throwing, around) (0) | 2022.03.27 |