본문 바로가기

JSP

내장 객체 폼

내장 객체(implicit object)는 jsp 페이지에서 사용할 수 있도록 jsp 컨테이너에 미리 정의된 객체로 그 종류가 다양하다. jsp 페이지가 서블릿 프로그램으로 번역될 때 jsp 컨테이너가 자동으로 내장 객체를 멤버 변수, 메소드 매개변수 등의 각종 참조 변수(객체)로 포함한다. 그래서 jsp 페이지에 별도의 import문 없이 자유롭게 사용할 수 있다. 그리고 스크립틀릿 태그나 표현문 태그에 선언을 하거나 객체를 생성하지 않고도 직접 호출하여 사용할 수 있다.

내장 객체의 종류


request 내장 객체
-jsp 페이지에서 가장 많이 사용되는 기본 내장 객체
-웹 브라우저에서 서버의 jsp 페이지로 전달하는 정보를 저장
(폼 페이지로부터 입력된 데이터를 전달하는 요청 파라미터 값을 jsp 페이지로 가져옴)

요청 파라미터 관련 메소드
-요청 파라미터는 사용자가 폼 페이지에 데이터를 입력한 후 서버에 전송할 때 전달되는 폼 페이지의 입력된 정보 형태를 말함
-요청 파라미터는 <name=value> 형식으로 웹 브라우저에서 서버의 jsp 페이지로 전송

요청 파라미터 관련 메소드의 종류


웹 브라우저는 HTTP 헤더에 부가적인 정보를 담아서 서버로 전송하며 request 내장 객체는 헤더 정보나 쿠키 관련된 정보를 얻을 수 있는 메소드들을 제공한다


웹 브라우저/서버 관련 request 내장객체의 메소드 참조


response 내장 객체
-사용자의 요청을 처리한 결과를 서버에서 웹으로 응답으로 전달하는 정보를 저장한다. 즉, 서버는 응답 헤더와 요청 처리 결과 데이터를 웹 브라우저로 보내는데 jsp 컨테이너는 서버에서 웹으로 응답하는 정보를 처리하기 위해 javax.servlet.http.HttpServletResponse 객체 타입의 response 내장 객체를 사용해서 사용자의 요청에 응답한다.

sendRedirect() 방식은 처음 요청받은 현재 jsp 페이지로부터 이동할 url을 웹 브라우저로 반환하는데 이 때 웹 브라우저에서는 새로운 요청을 생성해서 이동할 url에 다시 요청을 전송하므로 처음 보낸 요청 정보가 이동된 url에서는 유효하지 않다. 즉, 클라이언트가 새로 페이지를 요청한 것과 같은 방식으로 페이지가 이동된다. 따라서 이동된 url이 웹브라우저의 주소창에 보이게 되는 것이다.(전화를 받은 직원이 본인이 담당자가 아니라고 담당자 연락처를 주고 다시 전화를 건 것과 비슷한 효과)<=> forwarding : 현재 jsp페이지에서 이동할 url로 요청 정보를 그대로 전달하므로 사용자가 최초로 요청한 정보가 이동된 url에서도 유효하다. 그러나 이동한 url이 주소창에 나타나지 않고 처음 요청한 url이 나타나기 때문에 이동여부는 사용자가 알 수 없다.(전화를 받은 직원이 직접 담당자에게 연결을 해주는것과 비슷한 효과)

응답 HTTP 헤더 관련 메소드는 서버가 웹 브라우저에 응답하는 정보에 헤더를 추가하는 기능을 제공한다. 헤더 정보에는 주로 서버에 대한 정보가 저장된다.
응답 헤더 관련 메소드의 종류


응답 콘텐츠 관련 메소드
-response 내장 객체는 웹 브라우저로 응답하기 위해 MIME 유형, 문자 인코딩, 오류 메시지, 상태 코드 등을 설정하고 가져오는 응답 콘텐츠 관련 메소드 제공


웹 브라우저에 응답할 코드로 원하는 오류 코드를 넣고 원하는 오류 메시지를 출력하도록 response 내장객체의 sendError()를 활용한다.

out 내장 객체
-웹 브라우저에 데이터를 전송하는 출력 스트림 객체로 jsp 컨테이너는 jsp페이지에 사용되는 모든 표현문 태그와 html, 일반 텍스트 등을 out 내장객체를 통해 웹 브라우저에 그대로 전달한다.
-스크립틀릿 태그에 사용하여 단순히 값을 출력하는 표현문 태그(<%=...%>와 같은 결과를 얻을 수 있음


폼(form)
-사용자가 웹 브라우저를통해 입력된 모든 데이터를 한 번에 웹 서버로 전송하는 양식
(전송한 데이터는 웹 서버가 처리하고 처리 결과에 따라 다른 웹 페이지를 보여줌)
-사용자와 웹 어플리케이션이 상호 작용하는 중요한 기술 중 하나
-사용자가 어떤 내용을 원하는지, 사용자의 요구 사항이 무엇인지 파악할 때 가장 많이 사용하는 웹 애플리케이션의 필수적인 요소

폼을 구성하는 태그의 종류
form : 폼을 정의하는 태그로 최상위 태그
-사용자가 다양한 정보를 입력하고 서로 전달할 때 사용하는 태그로 단독으로 쓰이지 않고 사용자가 다양한 정보를 입력하는 양식을 포함하는 최상위 태그이다. 속성을 이용하여 데이터를 전송할때 어디로 보낼지, 어떤 방식으로 보낼지를 설정한다. form태그의 모든 속성은 필수가 아니라 선택적으로 사용된다.
form태그 속성


input : 사용자가 입력할 수 있는 태그
-사용자가 텍스트 입력이나 선택 등을 다양하게 할 수 있도록 공간을 만드는 태그, 단독으로 사용 가능하다.
input태그 속성



select : 항목을 선택할 수 있는 태그
-여러개의 항목이 나타나는 목록 상자에서 항목을 선택하는 태그
-짝태그이며, 리스트 박스에 여러 항목을 추가 삽입하기 위해서는 반드시 option 태그를 포함해야 함.
*option태그는 value값이 없어도 태그 안의 컨텐츠 값이 데이터로 전달됨
textarea : 여러줄을 입력할 수 있는 태그
-짝태그로 입력 폼 안에 사용된 태그와 띄어쓰기가 그대로 출렴됨

요청 파라미터의 값 받기
-request 내장 객체는 웹 브라우저가 서버로 보낸 요청에 대한 다양한 정보를 담고 있어 getParamerter() 메소드를 이용하여 요청 파라미터의 값을 얻을 수 있다.
ex) String 변수 = request.getParameter(요청 파라미터 이름);
type="radio, checkbox"는 value값을 안주고 선택하면 값이 on으로 출력되고 선택을 안한 값은 null로 출력된다.

요청 파라미터의 전체 값 받기
-요청 파라미터를 설정하지 않아도 모든 값을 전달받을 수 있음
-텍스트 박스, 라디오 버튼, 드롭다운 박스와 같은 다양한 유형에 대해 한 번에 폼 데이터를 전달받을 수 있음
폼 데이터의 일괄 처리 메소드

폼데이터 처리
-jsp에서는 사용자가 웹 브라우저의 폼 페이지에 입력한 데이터를 서버로 전달하여 서버가 이를 처리한다. 이렇게 폼 데이터를 처리함으로써 표현문이나 스크립틀릿 태그에 request 내장 객체를 이용하여 폼 페이지에서 전달된 값을 얻을 수 있다.

'JSP' 카테고리의 다른 글

유효성 검사  (0) 2023.07.03
파일 업로드  (0) 2023.06.29
action tag  (0) 2023.06.27
jsp 문법  (0) 2023.06.26
example) taglib을 이용한 디렉티브 태그  (0) 2023.06.26