Dynamic Web Project 만들고 우클릭 - Configure - Maven 프로젝트로 변환 클릭
pom.xml에 버전값을 관리할 수 있는 properties와 라이브러리를 추가할 수 있는 dependencies 항목 추가
https://mvnrepository.com/ 에서 라이브러리 검색 후 원하는 버전 클릭, Maven 항목에 있는 텍스트 복사해서 dependencies 안에! 넣어주기
라이브러리랑 properties 다 넣어준 모습
폴더구조
/WEB-INF/spring/appServlet/servlet-context.xml
: 요청과 관련된 객체를 정의
: com.app.controller안에 컨트롤러 파일 넣어줌
root-context.xml
: view와 관련되지 않은 객체를 정의
views/sample.jsp
: views 폴더에는 view만 담당하는 jsp 파일을 넣어줌
web.xml
: 설정을 위한 설정 파일 - 최초로 WAS가 구동될 때, 각종 설정을 정의하고 여러 xml 파일을 인식할 수 있도록 함
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="4.0"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd">
<servlet>
<!-- 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>
<!-- servlet을 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<!-- 모든 경로로 들어온 것을 appServlet이 맡아서 해라.. -->
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
<!-- 외부에서 요청이 들어오면 resources로 연결시키겠다 -->
<resources location="/resources/" mapping="/**"></resources>
: 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴
: 비즈니스 로직과 화면을 구분하는데에 중점을 둠
: get method를 설정해준 페이지에 get 요청을 보냈을 때
: get method를 설정해준 페이지에 post 요청을 보냈을 때 => 허용되지 않은 메소드 오류 발생!