티스토리 뷰
web & develop/웹 공부
[MVC SPRING] 03. 요청(HttpServletRequest)과 응답(HttpServletResponse) 이해하기
Nerd_Lee 2022. 4. 30. 01:29반응형
안녕하세요. Nerd-Lee입니다.
공부 내용은, 인프런 박매일님의[NarP Series]MVC 프레임워크는 내 손에[나프1탄]
을 참고하였습니다.
MVC 1단계인, Servlet 환경으로만 만들어보고, MVC 2단계로 넘어가고
나중에는 Spring Framework를 사용하는 방식의 강의입니다.
MVC 1단계는, Controller + Model 만을 사용하는 방식입니다.
1. Controller 역할에서의 코드를 보고, 실행하는 로직 생각해보기
- jsp에, form 태그에 action 속성에는 calc.do 라고 맵핑이 되어 있다.
- submit 버튼을 클릭하면, input의 name으로 되어 있는 값들이 변수가 되어 해당 값들을 calc.do에 넘겨주게(요청) 된다.
이 때 넘어가는 정보를 요청정보라고 한다. 요청정보는 하나의 패킷으로 전송된다. 패킷은, header와 body로 이루어져있다. - header에 들어있는 값(예)
- ip정보 : 127.87.35.1
- port정보 : 9000
- body에 들어있는 값
- su1 = 1
- su2 = 100
- 톰캣은 header와 body 정보를 먼저 받아야한다. 그러기 위해서는 2개의 객체를 만들게 된다.
그 객체가HttpServletRequest(요청객체)
와HttpServletResponse(응답객체)
객체이다.
2. HttpServletRequest란?
- WAS(tomcat 서버)가 패킷을 받으면, 생성하게 되는 2개의 객체 중 하나로,
요청객체
이다. - 클라이언트가 요청을 하면,
HttpServletRequest
는 header와 body를 저장하게 된다. HttpServletRequest
형 변수가 service라는 메서드 안에 매개변수로 되어 있고
해당 변수에서 getParameter라는 함수에, body의 키값을 입력하면 값을 받아오게 된다.
3. HttpServletResponse란?
- WAS(tomcat 서버)가 패킷을 받으면, 생성하게 되는 2개의 객체 중 하나로,
응답객체
이다. HttpServletResponse
는 패킷에서 body가 아닌 header 정보를 가지게 된다.
그래야 요청받은 값을 프로그래밍해서, 클라이언트에게 응답해줄 수 있기 때문이다.HttpServletResponse
형 변수가 service 메서드 안에 매개변수로 되어 있고
해당 변수에서 getWriter라는 함수에는 클라이언트의 정보가 담겨있고
그 정보를 PrintWriter형 변수에 대입하게 되면 빨대 역할을 하게 된다.
그 빨대에, println 함수로, html이나 값을 넣어서 클라이언트에게 응답하게 되는 것이다.
4. GET과 POST 방식의 차이점
html 또는 jsp에서,
<form>
태그는 기본적으로, GET 방식을 사용한다.
그런데, 숫자를 입력하고, calc.do로 넘어가게 되면
url에 /calc.do?su1=1&su2=100 이라고 값이 보여버리게 된다.
하지만,<form method="post">
라고 post 방식으로 변경하면, url에 보여지지 않는다.GET 방식의 특징
- 보안에 취약하다.
- 데이터의 한계가 온다. url을 이용해서 서버로 넘기기 때문이다.
POST 방식
- packet에 쌓아서 넘기기 때문에, 보안성이 좋다.
- 또한 데이터의 한계도 없고 용량제한도 없다.
보통
form
태그를 사용한다면, POST 방식으로 사용하는 것이 좋다.
다음 공부 내용은, GET과 POST 요청 이해하기이다.
이 글이 도움이 되셨다면 댓글 부탁드립니다^^
다음 글로 찾아오겠습니다!
다음 글로 찾아오겠습니다!
반응형
'web & develop > 웹 공부' 카테고리의 다른 글
[MVC SPRING] 05. Controller에서 Model 분리하기 (0) | 2022.04.30 |
---|---|
[MVC SPRING] 04. GET과 POST 요청 이해하기 (0) | 2022.04.30 |
[MVC SPRING] 02. Controller의 역할 (0) | 2022.04.29 |
[MVC SPRING] 01. Servlet과 Model로 회원관리 만들기 (0) | 2022.04.29 |
Mysql Table 만들기 (0) | 2022.04.29 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Java
- MVC
- 스프링
- Unity
- 뷰포리아
- JSP
- 비지니스 로직
- VR
- GitHub
- HTML
- Git
- c#
- Base Of Coding
- 서블릿
- Controller
- 프리젠테이션 로직
- unity3d
- 유니티로 배우는 C#
- 게임프로그래밍
- Next.js
- 유니티3D
- 안드로이드
- 프로그래밍
- 유니티
- spring boot
- Spring
- CSS
- Vuforia
- baseofcoding
- Servlet
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함