본문 바로가기

Programming/Servlet

DAY 106. Servlet - 사용자 데이터 전송 방식

 

 

사용자 데이터 전송 방식

 

✔️ get 방식

  • GET 방식은 URL에 데이터를 포함시켜 요청하는 것으로 보안 유지가 불가능하다.
  • 따라서 로그인 같은 경우는 GET 방식은 부적합하다.
  • GET 방식에서 데이터를 Header에 포함하여 전송하고 Body는 빈 상태로 전송되며 Header의 내용 중에 body의 데이터를 설명하는 content-type 헤더도 포함되지 않는다.
  • 데이터 전송 길이 제한이 있다.
  • default 값이다.

 

<방법>

  1. URL 주소 창에 직접 입력한다.
  2. <form> 태그 안에서 메소드 방식을(Request Method) get() 으로 보낸다.
  3. <a></a> 태그를 통한다.

 

  • URL창에 "?" 뒤에 데이터를 입력하는 방법 ( 쿼리 스트링 )
  • ? key = value & key = value
  • 데이터가 여러 개일 경우 & 로 묶어서 보낸다.
  • 데이터 검색에 많이 사용하고 데이터 크기에 한계가 있으며 보안에 취약하다.

 

✔️ post 방식

  • POST 방식은 데이터를 노출하지 않고 요청하는 것으로 보안 유지가 가능하다.
  • 데이터를 Body에 포함하여 전송하고 body의 데이터를 설명하는 content-type 헤더가 포함된다. (데이터가 어떤 타입인지 명시가 된다.)
  • 데이터 전송 길이 제한이 없다.

 


 

서블릿 메소드

 

✔️ doGet

client에서 데이터 전송 방식을 get 방식으로 전송하면 호출되는 메소드

 

✔️ doPost

** 반드시 ServletException 처리를 해야한다.**

client에서 데이터 전속 방식을 post 방식으로 전송하면 호출되는 메소드

 

 


 

서블릿 매개변수 객체

✔️ HttpServletRequest

HTTP Servlet을 위한 요청 정보(request information)을 제공한다.

상속 : javax.servlet.ServletRequest

 

 

 

✔️ HttpServletResponse

요청에 대한 처리 결과, 응답에 대한 정보를 담은 객체이다.

상속 : javax.servlet.ServletResponse

 

 

 


 

[여기까지 중에 가장 중요한 포인트!]

** 우리가 직접 브라우저에서 index.html 파일을 열은 것이 아니라

HTTP 프로토콜을 사용해서

네트워크에 연결된 톰캣 서버에게 요청해서

톰캣에 올라가 있는 웹 애플리케이션 중에

원하는 Context Path를 가지는 프로그램에 접근해서

루트(WebContent)에 있는 index.html를 얻어온 것이다.


** index.html을 생략 가능한 이유?

: <welcome file> list에 있기 때문에, 디렉터리만 지정해주면 자동으로 해당 파일로 응답하도록 설정되어 있다.

: 지워도 모든 xml 파일에 공통적으로 적용되는 web.xml 파일 안에 들어가 있기 때문에 (default 제외)