내가 계속 보려고 만드는 spring mvc 방법 !
[ 스프링 프레임워크에서 MVC(Model - View - Controller) 아키텍처를 구현하는 방법 ]
MVC : 웹 애플리케이션을 구성하는데 사용되며, 데이터, 비즈니스 로직, 사용자 인터페이스를 분리하여 관리할 수 있게 해준다.
1. spring 프로젝트 설정
Maven 또는 Gradle과 같은 빌드 도구를 사용하여 필요한 spring 라이브러리를 프로젝트에 추가하고,
web.xml 파일을 설정하여 spring 의 DispatcherServlet 을 등록한다.
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
(web.xml 파일에 DispatcherServlet을 설정한 예시)
이 서블릿은 클라이언트 요청을 받아들이고 처리한다.
2. Controller 클래스 작성
MVC에서 Controller는 클라이언트 요청을 처리하고 적절한 데이터와 뷰를 반환한다.
spring에서는 @Controller 어노테이션을 사용하여 Controller 클래스를 정의한다.
Controller 메서드는 요청 매핑 어노테이션인 @RequestMapping 을 사용하여 특정 URL과 연결된다.
@Controller
public class MyController{
@RequestMapping("/hello")
public String hello(){
return "helloPage"; //view의 이름을 반환
}
}
3. View 작성
View는 사용자에게 데이터를 표시하는 역할을 한다.
Spring에서는 JSP, Thymeleaf, Freemarker 등 다양한 템플릿 엔진을 지원한다.
View는 Controller에서 반환된 뷰 이름을 통해 선택된다.
3-1. View Resolver 구성
view Resolver는 Controller가 반환한 뷰 이름을 실제 View로 매핑하는 역할을 한다.
Spring 설정 파일에서 View Resolver를 설정해야 합니다.
InternalResourceViewResolver를 사용하여 JSP 파일의 위치와 확장자를 설정한다.
<!-- dispatcher-servlet.xml -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- View Resolver 설정 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- 다른 설정과 빈들 -->
</beans>
(Spring MVC 설정 파일 : dispatcher-servlet.xml 대신 applicationContext.xml, Java Config생성해 작성한다.)
4. Model 사용
Controller는 데이터를 view로 전달하기 위해 Model을 사용한다.
Model은 데이터를 저장하고 View에서 이를 표시하는데 사용된다.
Controller 메서드의 메개변수로 'Model'객체를 사용하여 데이터를 설정하고 전달한다.
@Controller
public class MyController{
@RequestMapping("/hello")
public String hello(Model model){
model.addAttribute("message", "Hello, Spring MVC!");
return "helloPage");
}
}
4-1. 요청 처리
클라이언트가 특정 URL을 요청하면 Spring의 'DispatcherServlet'이 해당 요청을 받아 Controller에 전달한다.
Controller는 요청을 처리하고 View 이름을 반환하며, View Resolver를 통해 실제 View로 매핑 된다.
4-2. 결과 반환 및 실행
<!-- /WEB-INF/views/helloPage.jsp -->
<!DOCTYPE html>
<html>
<head>
<title>Hello Page</title>
</head>
<body>
<h1>${message}</h1>
</body>
</html>
Controller가 반환한 View는 클라이언트에게 표시된다.
View는 Controller에서 설정한 데이터를 포함하여 사용자에게 표시된다.
JSP 파일은 ' /WEB-INF/views/' 디렉토리에 위치해야 한다.
서버를 시작하고 웹 프라우저에서 'http://localhost:포트번호/프로젝트명/hello'와 같은 URL을 열어보면
클라이언트 요청이 컨트롤러로 라우팅 되고, 'hello' 메서드가 호출되어 'helloPage.jsp'를 표시한다.
'Backend > Spring' 카테고리의 다른 글
[Spring] Socket을 이용해서 채팅 웹페이지 만들기 ! (1) (2) | 2023.09.10 |
---|---|
[Spring] 내가 보려고 만든 spring 용어 정리 ( 9월 25일 수정 ) (0) | 2023.09.04 |
[Spring] DI(Dependency Injection) 란 ? (0) | 2023.09.03 |
[Spring] eclipse / STS / Lombok.jar 설치하기 (0) | 2023.09.03 |
[Spring] 프로젝트 생성 (2) | 2023.08.31 |