본문 바로가기

servlet

request,response

📌브라우저 => 서버 (Request)

- 요청에는 Get 방식, Post 방식 2가지가 있다.

 

- Post 방식의 경우, 이클립스로 서블릿을 개발하면서 JAVA 메소드로 인코딩을 할 수 있는데,

 request.setCharacterEncoding("UTF-8"); 로 간단히 인코딩 방식을 설정할 수 있다. 

 

- GET 방식으로 전달된 문자열들은 URI에 포함되어 전달되기 때문에 URI에 대해 인코딩 처리 작업을 해야한다.

서버마다 기본적으로 URI 인코딩 문자코드가 정해져 있는데, GET 방식으로 보내진 한글은 톰캣이 기본적으로 UTF-8이 적용되어 있어서 자동으로 처리를 해주기 때문에 글자가 깨지지 않는다.

 

-따라서 FORM 태그에서 POST 방식으로 한글 데이터를 전송하고, 서블릿에서 doPost() 메소드를 사용해야 하는 경우에 

request.setCharacterEncoding("UTF-8");을 작성해야 한다.

📌서버 => 브라우저 (Response)

- 서버에서 브라우저로 데이터를 보낼 때는 Response 객체를 사용한다.

- 인코딩시 필요한 Response 객체의 메소드는 두 가지다.

- response.setCharacterEncoding("utf-8");

- response.setContentType("text/html; charset=utf-8");

 

📌response.setCharacterEncoding("utf-8");

- 서블릿이 HTML 파일을 만들 때 UTF-8 로 쓰기, 디코딩방식

 

- 디코딩방식을 해주지 않으면 인코딩 방식으로 빠지게 되는데 

인코딩 방식으로 빠지게 되어서 자신이 보낼 id및비번등등 

암호가 가려지지않고 주소로 보내지게 된다.                                                                                                                     

(그렇게 되면 암호화를 보장하지 못하게 된다.)

                                                                                             

 

 

그래서 방법으로 

 이렇게 하게되면  암호화가 되어서 가려주게 된다.

(만약 request.set을 데이터를 보내는 Strind ID 밑에 놓게 된다면

한글로 입력한 데이터들이 깨지게 된다.)

 

 

📌response.setContentType("text/html;charset=utf-8");

- HTML이 UTF-8 형식이라는 것을 브라우저에게 알리는 것으로. 웹에 출력하는것

- 위의 response.setCharacterEncoding("UTF-8"); 이 문장만 사용하면 '안녕하세요'라고 나오지 않고

    '댊뀘'과 같은 처음보는 이상한 문자가 출력이 된다.

- 이는 브라우저마다 기본적으로 문자코드를 해석하는 default가 다르기 때문이다. 

그래서 브라우저한테 '우리는 utf-8 문자코드로 사용할거야. utf-8로 사용해줘'라는 메세지를 전달해야 한다.

- 이러한 메세지를 전달하는 문장이 바로 response.setContentType("text/html; charset=utf-8"); 이다.

 

 

 

📌 request.getRemoteHost();

servlet을 요청한 ip주소 확인하기

String 예시 = request.getRemoteHost();

getRemoteHost <- 원격 호스트 가져오기

 

📌 response.getWriter();

웹에 출력 -> PrintWriter 객체

 

PrintWriter는 개체의 형식화된 표현을 텍스트 출력 스트림에 출력

PrintWriter out = response.getWriter();
out.print("안녕하세요");

 

'servlet' 카테고리의 다른 글

service()  (0) 2023.10.27
데이터 전송 방식 - HTTP Method  (0) 2023.10.27
form 태그, getParameter  (0) 2023.10.26
ContextPath 변경하기  (0) 2023.10.26
URL URI  (0) 2023.10.26