본문 바로가기
뉴렉처 과정 기록 (Backend)/Spring

06/02 Spring 입력도구와 상태유지

by yeonee3219 2021. 6. 2.

 

요청이 들어오면 들어온 요청을 주황색(서블릿)이 가로채

 

서블릿 - 앞단의 컨트롤러 / 프론트 컨트롤러 / 라이브러리

            입력 출력 매핑 - 알아서 편하게 서비스해줌

     

 

-> 옛날에는 xml로 했었고 지금은 어노테이션으로

어노테이션 설정만 잘 하면 되겠다

 

 

서블릿 jsp공부할때의 컨트롤러의 역할은 ,

클라이언트에서 url로 요청이 들어오면 그 요청을 컨트롤러 클래스가 받아서 doget이나 dopost로 요청을 했었는데 

 

스프링에서는 컨트롤러라는 어노테이션으로 관리를 해줄 수 있다

 

 

 

톰캣 중심일때 톰캣이 사용하는 서블릿을 컨트롤러로 정해놓고 mvc 방식으로 코드를 분리했었다

url매핑을 위해선 xml에 설정한다는 가정해볼때

톰캣과 거리를 두기 위해서 컨트롤러를 서블릿의 규격에 맞춰 만들지 않도록 하는 방법

-> 내가 만드는 컨트롤러가 서블릿이 되면 안된다는 것

 

서블릿객체가 아닌 자바객체로 만든 컨트롤러 -> POJO

서블릿 분리해서 톰캣과의 접점을 낮추었다

 

서블릿은 하나

디스패처 서블릿이 컨트롤러를 호출 

url 매핑은 모든 url로 받음

 

 

디스패처 서블릿을 만들어 놓은 라이브러리가 struts

 

-> 이제는 Spring이 DI, 트랜잭션, MVC 까지 커버

 

 

 

 

 

 

 

-> url이 너무 길다  

 

 

 

 

 

 

get 요청과 post요청이 나눠지는 컨트롤러를 두개로 나눠보자

 

이름 같아서 오류나는 부분은 아래처럼 바꾸고

매핑도 아래처럼 더 쉽게 하는 방법이 좋음

 

이방법에 익숙해지기

 

 

 

입력받는 것

 

1. get 쿼리요청

2. post

3. 쿠키

4. 

 

 

 

 

 

get 요청 테스트

 

요청받기위한 테스트 html파일 만들었다

 

 

 

 

1. 서블릿 API를 이용한 방법

 

 

 

 

 

 

 

 

 

 

2. 파라미터 이름으로 자동입력

 

파라미터로 전달하는것이 훨씬 간단하다!

 

 

 

 

 

* 예외상황

 문자는 숫자로 바꿔야 하고 숫자의 덧셈도 가능해야 되는데

 

null이거나 ""일 경우 0으로 바꿔줌 - 숫자 0으로

x는 정수형으로 받아줌

 

클라이언트가 만약 문자열을 입력햇다면? -> 자바스크립트에서 잡아야지

 

 

문자열도 받아보기

 

 

 

 

상태유지의 필요성

 

(값, 데이터) 유지하기위한 방법

 

 

서블릿이 어떻게 하면 상태유지를 할 수 있을 것인가

 

웹에서는 항상 새로운 문서가 만들어지기때문에 상태유지 안됨

 

게산기에서 2와 15를 입력받아 덧셈 요청하면 ,

그 다음 페이지에서 2와 15를 유지하는 상태에서 또 덧셈을 유지할 수 있는가

 

 

-> url에 쿼리스트링으로 유지하는 법

-> 쿠키(클라이언트 쪽에서 저장되는 것)를 이용

 

 

 

쿠키는 셋팅이 아니고 클라이언트에게 갖고 있도록 요청해야 된다

 

 

쿠키가 잘 심어졌다 -> 읽을 수 있어야 함!

 

쿠키는 세미콜론으로 구분되서 키값으로 온다

-> 원하지 않아도 배열로 꺼내줘야 함

 

배열로 꺼내서 키 값이 맞으면 읽어오도록 ...

 

-> 조건에 걸리지 않으면 쿠키가 없는 것이니까

 

 

null 일경우에는 쿠키를 읽어오도록

 

 

-> 240초 동안 쿠키 남도록   -> 오른쪽은 10일동안 쿠키 남도록

 

 

 

 

 

 

그럼 다시 스프링으로 돌아와서