Notice
Recent Posts
Recent Comments
관리 메뉴

Developer Gonie

[9주차] 5. JSP의 내장객체 'request'*** 본문

K-DigitalTraining 강의/8. JSP

[9주차] 5. JSP의 내장객체 'request'***

이대곤 2022. 7. 12. 14:44

* 특정 요소에 사용자가 입력한 값이 request 객체에 담기게 하려면 꼭 name 속성을 사용해야 해야 한다.(id 속성은 불가)

* request 객체에서 내용을 꺼내쓸 한글데이터가 있다면 그 전에 한글을 위한 인코딩을 지정해줘야 한글이 깨지지 않는다.

JSP의 내장객체 request

웹 브라우저의 요청 정보를 저장하고 있는 객체로, HTTP Header와 HTTP Body으로 구성되어 있다고 함.

 

<form> 태그의 자식으로 text 타입의 요소가 있는 상태에서 사용자 입력후 submit 타입의 버튼을 누를시, 브라우저는 form 태그의 action 속성에 지정된 파일을 서버에 요청하는데, request 객체는 요청을 보내는 바로 이 시점에 사용자 입력을 담아 생성된다. 이렇게 만들어진 request 객체는 action 속성에서 지정한 파일 쪽에서 사용할 수 있도록 넘겨진다. 넘겨진 request 객체를 이용하면 이동한 페이지 쪽에서는 사용자가 입력했던 정보들을 꺼내쓸 수 있다.

 

단, request 객체는 요청을 보낼 때 마다 새로 생성되므로 {페이지1->페이지2->페이지3} 으로 넘어가는 상황이 있을 때

일반적인 상황에서는 페이지1에서 페이지2로 넘어갈 때 생성된 request 객체는 페이지3에서 접근이 불가능하다.
페이지3에서 접근하려는 request 객체는 페이지2에서 새로 생성된 request 객체이기 때문이다.

 

또한, request 객체는 요청을 보낼 때 마다 새로 생성되므로 사용자가 여러명일때도 각각 다른 request 객체가 생성된다.

JSP의 내장객체 request의 메소드

0) setCharacterEncoding() : 받아온 파라미터에 대한 한글 깨짐 방지를 위한 인코딩 방식 변경 메소드

 

1) getParameter("name속성의 값") : 반환 타입은 String,
지정한 이름을 가진 파라미터에 담겨있는 값을 1개만 읽어옴

<input type="text" name="">, 선택박스, 라디오박스에서는 보통 이걸 사용함  

체크박스로 선택한 값을 읽어올 때는 체크된 것중에 맨 앞에 위치한 값 딱 한 개만 넘어와서 2)의 함수를 사용해야 함. 

 

2) getParameterValues("name속성의 값"): 반환 타입은 String 배열,

체크박스로 선택한 여러개의 값들을 모두 읽어올 때 유용함.

그렇다고 <input type="text" name="">, 선택박스, 라디오박스에 대해 사용 못하는게 아님. 이땐 배열의 크기가 1인 것이 반환됨

 

3) getParameterNamse(): 반환값은 Enumeration,

요청에 사용된 모든 파라미터의 이름들을 담고있으며 하나씩 꺼내쓸 수 있음.

서로 다른 개수를 가지는 데이터를 한 번에 다룰 때  사용되며, 2)의 함수와 같이 사용되는게 일반적이다.

 

예제1. request의 getParameter()

페이지1

페이지2

예제2. request의 getParameter() + 정수형 변환

페이지1

페이지2

예제3. request의 getParameter(), getParameterValues()

페이지1

페이지2

예제4. request의 getParameterNames(), getParameterValues()

* form에서 가져온, 처리해야할 변수들이 많을경우 사용하면 좋은 방법이다.

페이지1

 

Comments