Day 83

dokiru·2023년 5월 25일
0

학원

목록 보기
44/51

Spring 초기 세팅

  • 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>
  • prefix와 suffix로 파일경로와 파일명이 중복되는 것을 설정해주고 controller에서는 파일명만 써도 연결될 수 있게 함

  • resources 폴더 안에 모듈, 이미지 같은걸 넣어주고 resources 태그에 location과 mapping을 걸어서 해당 위치로 연결될 수 있게 한다
<!-- 외부에서 요청이 들어오면 resources로 연결시키겠다 -->
	<resources location="/resources/" mapping="/**"></resources>


MVC (Model View Controller)

: 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴
: 비즈니스 로직과 화면을 구분하는데에 중점을 둠

  1. Model : 데이터와 비즈니스 로직 관리
  2. View : 레이아웃과 화면 처리
  3. Controller : 모델과 뷰 사이에서 명령을 라우팅

Controller

  • @RequestMapping (요청받을 uri, method)
  • /getpage에 get 방식으로 요청을 받으면 '/WEB-INF/views' 안에 있는 getpage.jsp를 연결


: get method를 설정해준 페이지에 get 요청을 보냈을 때


: get method를 설정해준 페이지에 post 요청을 보냈을 때 => 허용되지 않은 메소드 오류 발생!

  • @GetMapping(uri), @PostMapping(uri)

    : 한 페이지 내에서 요청의 종류를 달리해서 처리해줄 수 있음
profile
안녕하세요!

0개의 댓글