본문 바로가기
스마트인재개발원/JSP . SERVLET

[JSP/SERVLET] 쿼리스트링/데이터전송방식(get,post)차이점 / get,post 인코딩 방법

by 죠졍니 2022. 10. 13.
728x90
반응형
SMALL

쿼리 스트링( Query String)

 

?

: 쿼리스트링의 시작점

 

?name = value &name2=value2...

http://localhost:8081/Servlet/Ex08?color=%23ea2a2a&number1=2&number2=5​

 

 

 

 


데이터 전송방식 2가지

 

데이터 전송방식1  - Get

: 데이터를 쿼리스트링 형태로url 뒤에 붙여서 전송하는 방법

 

데이터 전송방식2 - Post

: 데이터를 패킷의 Body에 담아 전송

 

 

 

 

<데이터전송방식 차이점>

get 방식 1. url로 데이터 전송
2. 전송하는 데이터의 길이에 한계(1024byte) 
3. 보안상 문제있음
4. method='Get' 기본값이 Get이라 생략가능
post 방식 1. HTTP Message 구조 내 Body 부분에 담아 전송
2. 전송하는 데이터 길이에 제한없음
3. 보안에 강함
4. method='Post' 속성을 추가해야함

 

 

 

[Form Data]

data : Hello

key     value

 

 

 

url에서 쿼리 스트링을 주지않는 법 

form action=" " method="post"

 

 

 

 


get방식 encoding 방법

 

* 인코딩은 EUC-KR / UTF-8 2가지 -> 하나로 통일시켜야 한글문제가 생기지 않는다.

 

 

1. Servers폴더에서 server.xml파일에서 수정

 

 

2. Source -> 63번째 줄 Connector 찾기

 

 

3. URIEncoding="EUC-KR" 추가

 

 

 

<출력결과>

 

<console창>

 

 

 

 


Post방식 encoding방법

 

 

 

-> form태그 내에 method="post" 만 추가하면

 

->적용안됨

 

그렇다면?

 

 

 

 

1. Servlet 파일에서 request인코딩 방식을 먼저 지정

 

 

request.setCharacterEncoding("EUC-KR");

 

 

 

 

단, 이러면 페이지에서는 글자 출력안됨

-> 서로의 인코딩 방식이 다르기 때문

->웅답 작성하기 전에도 인코딩 지정 필요

 

 

 

 

 

 

 

 

 

 

2. 아래에 응답 response 인코딩 방식도 지정

 

response.setContentType("text/html; charset=EUC-KR");

 

단, 순서는

항상 setcontents 타입을 먼저 하고 , PrintWriter 한 후, out.print 순서

 

 

 

<실행결과>

 

-> 잘 출력됩니당

 

728x90
반응형
LIST