* request 기본 객체 : 웹브라우저에 웹 사이트 주소를 입력하면 웹 브라우저는 해당 웹 서버에 연결한 후, 웹 서버에

 요청 정보를 전송한다. 클라이언트가 전송한 요청 정보를 제공하는게 바로 request.getParameter() 기본 객체이다.

 

* parameter : 페이지와 페이지 간의 정보 중 다음 페이지를 읽어들일 때 필요한 정보를 넘겨주고 받는 것을 의미

 다음 페이지에서 그대로 읽어들이기 위해서도 사용하지만 DB정보 요청, 중요 로직값을 사용하는 인자 값으로도 사용된다.

 

request 객체는 웹 브라우저에서 jsp 페이지로 전달되는 정보의 모임으로 http 헤더와 http 바디로 구성된다.

웹 컨테이너는 요청된 http 메세지를 통해 HttpServletRequest 객체를 얻어내서 이로부터 사용자의 요구 사항을 얻어낸다.

 

 

1. request.getParameter() :  String 형만 주고 받을 수 있다.

request.setParameter()로 지정하고 request.getParameter()로 받아온다.

 

 

2. request.getAttribute() : String 형 이외에 int나 List 형의 값을 받을 수 있다.

기본 타입은 Object이기 때문에 반드시 형 변환이 필요하다.

request.setAttribute()로 지정하고 request.getAttribute()로 받아온다.

 

request.setAttribute("currentPage", pages); => page를 currentPage라는 이름으로 지정

request.getAttribute("currentPage"); => 이름으로 지정했던 currentPage를 가져옴

 

 

3. get 방식 vs post 방식

ㄱ. get : (ex. http://localhost:8080/insert.jsp?name=joon&address=suwon

  url 뒤에 파라미터 값을 적어주는 방식. 데이터가 외부에 노출되어 보안에 취약함

  지정된 리소스에서 데이터를 요청하여 읽을 때 사용하는 리소스

  클라이언트로부터 데이터를 이름 + 값이 결합된 String 형태로 전달받는다.

  전송할 수 있는 데이터 양은 255가지

 

ㄴ. post : (ex. http://localhost:8080/form.jsp)

html의 <form>에 객체를 담아 넘기는 방식. 주로 사용자가 입력한 값을 넘긴다

    보안 가능. 개인정보가 담겨 있는 데이터에 주로 쓰임

    지정된 리소스에서 데이터를 처리하는 경우인 write, insert, delete인 경우에 쓰임

    클라이언트와 서버 간에 인코딩을 하여 서버로 전송한다 (클라이언트측 데이터 인코딩 => 서버측 디코딩)

    헤더를 통해 전송되는 방식, 전송할 수 있는 데이터의 양은 무제한

    get방식에 비해 처리 속도가 느리다.

 

 

4. get < post인 이유

get 방식은 데이터의 용량 제한이 있는 반면 post 방식은 용량 제한이 없고, get 방식은 예약어가 있기 때문에 불편하다.

또한, get방식은 사용자에게 값을 노출시키지 않아도 되기 때문이다.

+ Recent posts