요청이 들어오면 들어온 요청을 주황색(서블릿)이 가로채
서블릿 - 앞단의 컨트롤러 / 프론트 컨트롤러 / 라이브러리
입력 출력 매핑 - 알아서 편하게 서비스해줌
-> 옛날에는 xml로 했었고 지금은 어노테이션으로
어노테이션 설정만 잘 하면 되겠다
서블릿 jsp공부할때의 컨트롤러의 역할은 ,
클라이언트에서 url로 요청이 들어오면 그 요청을 컨트롤러 클래스가 받아서 doget이나 dopost로 요청을 했었는데
스프링에서는 컨트롤러라는 어노테이션으로 관리를 해줄 수 있다
톰캣 중심일때 톰캣이 사용하는 서블릿을 컨트롤러로 정해놓고 mvc 방식으로 코드를 분리했었다
url매핑을 위해선 xml에 설정한다는 가정해볼때
톰캣과 거리를 두기 위해서 컨트롤러를 서블릿의 규격에 맞춰 만들지 않도록 하는 방법
-> 내가 만드는 컨트롤러가 서블릿이 되면 안된다는 것
서블릿 분리해서 톰캣과의 접점을 낮추었다
서블릿은 하나
디스패처 서블릿이 컨트롤러를 호출
url 매핑은 모든 url로 받음
디스패처 서블릿을 만들어 놓은 라이브러리가 struts
-> 이제는 Spring이 DI, 트랜잭션, MVC 까지 커버
-> url이 너무 길다
get 요청과 post요청이 나눠지는 컨트롤러를 두개로 나눠보자
이름 같아서 오류나는 부분은 아래처럼 바꾸고
매핑도 아래처럼 더 쉽게 하는 방법이 좋음
입력받는 것
1. get 쿼리요청
2. post
3. 쿠키
4.
요청받기위한 테스트 html파일 만들었다
1. 서블릿 API를 이용한 방법
2. 파라미터 이름으로 자동입력
파라미터로 전달하는것이 훨씬 간단하다!
* 예외상황
문자는 숫자로 바꿔야 하고 숫자의 덧셈도 가능해야 되는데
null이거나 ""일 경우 0으로 바꿔줌 - 숫자 0으로
x는 정수형으로 받아줌
클라이언트가 만약 문자열을 입력햇다면? -> 자바스크립트에서 잡아야지
문자열도 받아보기
상태유지의 필요성
(값, 데이터) 유지하기위한 방법
서블릿이 어떻게 하면 상태유지를 할 수 있을 것인가
웹에서는 항상 새로운 문서가 만들어지기때문에 상태유지 안됨
게산기에서 2와 15를 입력받아 덧셈 요청하면 ,
그 다음 페이지에서 2와 15를 유지하는 상태에서 또 덧셈을 유지할 수 있는가
-> url에 쿼리스트링으로 유지하는 법
-> 쿠키(클라이언트 쪽에서 저장되는 것)를 이용
쿠키는 셋팅이 아니고 클라이언트에게 갖고 있도록 요청해야 된다
쿠키가 잘 심어졌다 -> 읽을 수 있어야 함!
쿠키는 세미콜론으로 구분되서 키값으로 온다
-> 원하지 않아도 배열로 꺼내줘야 함
배열로 꺼내서 키 값이 맞으면 읽어오도록 ...
-> 조건에 걸리지 않으면 쿠키가 없는 것이니까
null 일경우에는 쿠키를 읽어오도록
-> 240초 동안 쿠키 남도록 -> 오른쪽은 10일동안 쿠키 남도록
그럼 다시 스프링으로 돌아와서
'뉴렉처 과정 기록 (Backend) > Spring' 카테고리의 다른 글
06/07 Spring(DI, 매퍼클래스/서비스클래스 구현) , (MySQL, MyBatis) 설정 (0) | 2021.06.07 |
---|---|
06/04 Spring (0) | 2021.06.04 |
06/03 Spring 타일 라이브러리 (0) | 2021.06.03 |
06/01 Spring Boot 프로젝트 생성, 라이브러리 설정 (0) | 2021.06.01 |
05/31 Spring Maven, Spring Boot 환경 설치 (0) | 2021.05.31 |