Day49 - [JSP]HttpRequest

2021. 4. 24. 16:01JSP 공부

이번에는 JSP 환경의 HttpRequest 에 대해서 알아 봅시다.

 

HttpRequest

HttpRequest 는, 서버에 데이터를 요청하는 방법 입니다.

 

즉, 서버에 저장된 데이터를 가져오는 방법 입니다.

 

Request 에는, "Get" 과 "Post" 방식이 있습니다.

 

Get

서버에 데이터를 요청하는 용도로 사용합니다.

전송하는 데이터가 주소에 같이 묶여서 보내 집니다.

전송했던 데이터는 브라우저의 히스토리에 접속했던 주소와 함께 남아 있어 보안성에 취약 합니다.

게시판 글 조회나 검색 같이 서버의 정보를 가져올 필요성이 있을 때 사용 합니다.

전송할 수 있는 최대 크기는 브라우저별로 다르지만 크기가 정해져 있습니다.

HTML <form>태그가 반드시 필요하지는 않습니다.

 

이러한 Get 방식으로 데이터를 보내고, 받아 봅시다.

 

데이터를 입력할 화면 (사용자가 보는 화면)

데이터를 받아서 확인할 화면 (관리자가 보는 화면)

2가지가 필요하기 때문에, 파일을 2개 생성합니다.

 

그리고 먼저, <form> 태그를 사용해서 사용자가 보는 화면을 만들어 봅시다.

<form> 태그를 사용해서 특정 파일로 데이터를 보내기 위해서는 action="파일" 을 사용 합니다.

<input> 을 사용할 때, 꼭 name 속성을 지정 해주어야 데이터를 확인할 수 있습니다.

 

※ 파일 이름은 "req_get_ext01.jsp" 입니다.

그리고, 데이터를 입력받은 걸 확인하는 관리자가 보는 화면을 만들어 봅시다.

서버에 저장된 데이터를 받을 때는 request 의 get메서드를 사용합니다.

단순히 저장된 데이터는 request.getParameter("<input>태그의 name") 으로 가져옵니다.

체크박스로 저장된 다중값 데이터는 request.getParameterValues() 로 가져옵니다.

 

※ 파일 이름은 "req_get_ex02.jsp" 입니다.

그래서, 처음에 사용자가 보는 화면. "req_get_ex01.jsp" 를 실행시켜서 아래와 같이 데이터를 입력하고 "가입하기" 를 누르면, 서버에 데이터를 저장하게 됩니다.

그리고, "req_get_ex02.jsp"로 이동되면서, 방금 입력한 데이터를 확인 할 수 있게 됩니다.

이러한 Get 방식은, <form>태그를 사용하지 않고, <a>태그의 URL주소 뒤에 값을 입력할 수 있습니다.

URL주소 뒤에 값을 입력할 때는 "?넘겨줄이름=값&넘겨줄이름=값" 을 사용합니다.

※ 파일명은 "req_get_ex03.jsp" 입니다.

어쨋든, 데이터를 서버에 보냈으니까 . 데이터를 꺼내는 코드도 필요하겠죠?

※ 파일명은 "req_get_ex04.jsp" 입니다

"req_get_ex03.jsp" 를 실행시키면 아래와 같이 페이지가 나타납니다.

그리고 req ex04로 이동을 클릭하게 되면, URL 주소에 값이 포함되서 넘어간 것을 확인 할 수 있습니다.

그래서, 저 뒤에 있는 값을 변경시키게 되면, 보여지는 화면의 값도 변경 되게 됩니다.

이처럼, Get 방식은 데이터들이 그대로 노출이 되기 때문에, 보안성이 취약합니다.

 

Post

서버에 데이터를 전송하는 용도 입니다

전송되는 데이터가 URL에 묻어나가지 않고 전송 객체의 메시지 바디를 통해 전달 됩니다

브라우저에 전달되는 데이터가 남지 않기 때문에 보안성에 강합니다

비밀번호나 주민번호 등 private한 데이터를 서버에 전송해야 할 때 사용 합니다

반드시 HTML <form>태그가 필요합니다.

데이터 양의 제한이 없기 때문에 대량의 데이터를 전송할 수 있습니다.

 

이러한 Post 방식으로 데이터를 보내고, 받아 봅시다

Post 방식은 무조건 <form>태그를 사용해서 데이터를 보내야 합니다.

 

※ 파일명은 "req_post_ex01.jsp" 입니다

Post 방식으로 보낸 데이터를 받을 때도 Get 방식과 똑같이 request 를 사용하면 됩니다.

주의사항 으로는, 한글로 보낸 데이터도 처리하고 싶다면 setCharacterEncoding("utf-8")을 써주어야 합니다.

 

※ 파일명은 "req_post_ex02.jsp" 입니다

"req_post_ex01.jsp" 를 실행하게 되면, 아래와 같은 화면이 나옵니다.

데이터들을 입력하고 "확인" 을 눌러 줍니다.

Post 형식으로 데이터를 보내면, URL 주소 뒤에 아무것도 없음을 확인 할 수 있습니다.

 

※ Request 생성되는 구문은 생략되어 있습니다. (자동처리)

 

이번에는 HttpRequest 의 Get , Post 에 대해서 알아 보았습니다.

 

고생하셨습니다