목차
-
내장 객체의 개요
-
내장 객체(implicit object)
-
내장 객체의 종류
-
속성 처리 메소드의 종류
-
request 내장 객체의 기능과 사용법
-
request 내장 객체
-
요청 파라미터 관련 메소드
-
요청 파라미터 관련 메소드의 종류
-
요청 HTTP 헤더 관련 메소드
-
요청 HTTP 헤더 관련 메소드의 종류
-
웹 브라우저/ 서버 관련 메소드
-
URL과 URI
-
response 내장 객체의 기능과 사용법
-
response 내장 객체
-
페이지 이동 관련 메소드
-
페이지 이동 메소드
-
페이지 이동 방식 비교
-
액션 태그의 forward 방식
-
response 내장 객체의 redirect 방식
-
응답 HTTP 헤더 관련 메소드
-
응답 HTTP 헤더 관련 메소드의 종류
-
응답 콘텐츠 관련 메소드
-
응답 콘텐츠 관련 메소드의 종류
-
Out 내장 객체의 기능과 사용법
-
out 내장 객체
-
out 내장 객체 메소드의 종류
-
out.println
내장 객체의 개요
내장 객체(implicit object)
- JSP 내에서 선언하지 않고 사용할 수 있는 객체
- JSP 컨테이너에 미리 정의된 객체
- JSP 페이지 → 서블릿 프로그램 번역될 때 JSP 컨테이너(톰캣)가 자동으로 내장 객체를 멤버 변수, 멤버 변수, 메소드 매개변수 등의 각종 참조 변수(객체)로 포함
- _jspService() 내에 지역적으로 선언 되어 있다.
- JSP 페이지에 별도의 import 문 없이 자유롭게 사용 가능하다.
- 스크립틀릿 태그나 표현문 태그에 선언을 하거나 객체를 생성 하지 않아도 직접 호출하여 사용 가능하다.
내장 객체의 종류
속성 처리 메소드의 종류
- • request, session, application, pageContext
request 내장 객체의 기능과 사용법
request 내장 객체
- 웹 클라이언트로부터 전달 받은 사용자 요청(request)과 관련된 기능을 제공
- 웹 브라우저에서 서버의 JSP 페이지로 전달하는 정보 처리할 때 사용
- HTML 폼 태그를 통해 입력된 데이터를 전달하는 요청 파라미터 값을 JSP 페이지로 가져 올 때
- 이외에도 헤더 정보 , 웹브라우저, 서버 관련 정보도 가져옴
- Jsp 컨테이너는 웹 브라우저에서 서버로 전달되는 정보를 처리하기 위해 javax.servlet.http.HttpServletRequest 인터페이스로부터 파생된 객체 타입의 request 내장 객체를 사용하여 사용자의 요구 사항을 얻어낸다.
요청 파라미터 관련 메소드
- 요청 파라미터는 사용자가 폼 페이지에 데이터를 입력한 후 서버에 전송할 때 전달되는 폼 페이지의 입력된 정보 형태를 말함
- 요청 파라미터는 <name=value> 형식으로 웹 브라우저에서 서버의 JSP 페이지로 전송
요청 파라미터 관련 메소드의 종류
request.jsp
<form action="process.jsp" method="post">
<h4>이름 : <input type="text" name="name">
<input type="submit" value="전송">
</h4>
</form>
process.jsp
<%
/* request.setCharacterEncoding("utf-8"); 한글 인코딩 */
String name = request.getParameter("name");
%>
<h1>이 름 : <%=name %></h1>
- submit을 누르면 process.jsp로 POST 메소드로 request.jsp에서 입력된 name의 값이 넘어간다.
- 만약 메소드가 GET 메소드이면 URL상에 process.jsp/?name=값 으로 넘어간다
요청 HTTP 헤더 관련 메소드
- 웹 브라우저는 HTTP 헤더에 부가적인 정보를 담아 서버로 전송
- request 내장 객체는 헤더 정보나 쿠키 관련 정보를 얻을 수 있는 메소드 제공함
요청 HTTP 헤더 관련 메소드의 종류
<%
String hostValue = request.getHeader("host");
String alValue = request.getHeader("accept-language");
out.print("호스트명 : "+ hostValue + "<br>");
out.print("설정된 언어 : " + alValue + "<br>");
%>
- request.getHeader 함수를 이용하여 서버의 헤더 정보를 가지고 올 수 있다.
모든 HTTP 헤더 정보 값 출력
<%@page import="java.util.Enumeration" %>
<%
Enumeration en = request.getHeaderNames(); // 모든 헤더의 이름을 가져와 열거형 객체 타입 변수 en에 전달받는다.
while (en.hasMoreElements()) { // hasMoreElements() 열겨형 요소가 있으면 true, 아니면 false
// 헤더 이름이 있을때까지 반복
String headerName = (String)en.nextElement(); // 현재 헤더 이름을 가져옴
String headerValue = request.getHeader(headerName);
%>
<%=headerName %> : <%=headerValue %><br>
<%} %>
웹 브라우저/ 서버 관련 메소드
- request 내장 객체는 웹브라우저의 요청 및 서버 관련 정보를 얻을 수 있는 메소드 제공
- request.getRemoteAddr() 형식으로 사용 가능
URL과 URI
- URL : 인터넷에서 접근 가능한 자원의 주소를 일관되게 표현할 수 있는 형식
- URI : 존재하는 자원을 식별하기 위한 일반적인 식별자를 규정
예) https://www.naver.com/?search=”검색’
- URL : 전체 주소
- URI : ?search=”검색”
→ URI은 URL에서 http(프로토콜), 호스트명, port번호를 뺀것
response 내장 객체의 기능과 사용법
response 내장 객체
- 요청을 시도한 클라이언트로 전송할 응답을 나타내는 데이터의 묶음
- 사용자의 요청을 처리
- 응답을 다른 페이지로 전달
- 응답 헤더와 요청 처리 결과 데이터를 웹 브라우저로 보냄
페이지 이동 관련 메소드
- 페이지 이동 = 리다이렉션(Redirection)
- 사용자가 새로운 페이지를 요청할 때와 같이 페이지를 강제로 이동하는 것
- 서버는 웹 브라우저에 다른 페이지로 강제 이동하도록 response 내장 객체의 리다이렉션 메소드를 제공
- 페이지 이동 시에는 문자 인코딩을 알맞게 설정해야
페이지 이동 메소드
페이지 이동 방식 비교
액션 태그의 forward 방식
- <jsp: forward page=”이동할 페이지”/>
- 현재 jsp 페이지에서 이동할 URL로 요청 정보를 그대로 전달
- 사용자가 최초로 요청한 정보가 이동된 URL에서도 유효
- 따라서, 이동된 URL이 웹 브라우저 주소 창에 나타나지 않음
- 처음 요청한 URL이 나타나기 때문에 이동 여부를 사용자가 알 수 없음
response 내장 객체의 redirect 방식
- response.sendRedirect(”이동할 페이지”);
- 처음 요청 받은 현재 JSP 페이지로부터 이동할 URL을 웹 브라우저로 반환
- 이때 웹 브라우저는 새로운 요청을 생성하여 이동할 URL에 다시 요청을 전송
- 처음 보낸 요청 정보가 이동된 URL 에서는 유효하지 않음
- 즉, 클라이언트가 새로 페이지를 요청한 것과 같은 방식으로 페이지 이동함
- 이동된 URL이 웹 브라우저의 주소창에 보이게 됨
응답 HTTP 헤더 관련 메소드
- 응답 HTTP 헤더 관련 메소드는 서버가 웹 브라우저에 응답하는 정보에 헤더를 추가하는 기능을 제공
- 헤더 정보에는 주로 서버에 대한 정보가 저장되어 있음
응답 HTTP 헤더 관련 메소드의 종류
응답 콘텐츠 관련 메소드
- response 내장 객체는 웹 브라우저로 응답하기 위해 MIME 유형, 문자 인코딩, 오류 메시지, 상태 코드 등을 설정하고 가져오는 응답 콘텐츠 관련 메소드 제공
응답 콘텐츠 관련 메소드의 종류
Out 내장 객체의 기능과 사용법
out 내장 객체
- 클라이언트의 웹 브라우저에 데이터를 전송하는 출력 스트림 객체
- JSP 컨테이너는 JSP 페이지에 사용되는 모든 표현문(<%= %>) 태그와 HTML, 일반 텍스트 등을 out 내장 객체를 통해 웹 브라우저에 그대로 전달
- 스크립틀릿( <% %> ) 태그에 사용하여 단순히 값을 출력하는 표현문 태그 와 같은 결과를 얻을 수 있음
- 표현문 태그도 out.println(코드)로 변환되어 실행됨
- 편의성을 위해 표현문 태그 사용
out 내장 객체 메소드의 종류
out.println
- out.println 도 실제로 HTML 소스코드에서는 줄바꿈이 되지만 웹 브라우저 랜더링 과정에서
태그가 없어 다음 줄로 이동하지 않는다.
- request 에서 가장 많이 사용하는 것 : getParameter
- response 에서 가장 많이 사용하는 것 : get 말고 다른 것들은 모두 response
내장 객체의 개요
내장 객체(implicit object)
- JSP 내에서 선언하지 않고 사용할 수 있는 객체
- JSP 컨테이너에 미리 정의된 객체
- JSP 페이지 → 서블릿 프로그램 번역될 때 JSP 컨테이너(톰캣)가 자동으로 내장 객체를 멤버 변수, 멤버 변수, 메소드 매개변수 등의 각종 참조 변수(객체)로 포함
- _jspService() 내에 지역적으로 선언 되어 있다.
- JSP 페이지에 별도의 import 문 없이 자유롭게 사용 가능하다.
- 스크립틀릿 태그나 표현문 태그에 선언을 하거나 객체를 생성 하지 않아도 직접 호출하여 사용 가능하다.
내장 객체의 종류
속성 처리 메소드의 종류
- • request, session, application, pageContext
request 내장 객체의 기능과 사용법
request 내장 객체
- 웹 클라이언트로부터 전달 받은 사용자 요청(request)과 관련된 기능을 제공
- 웹 브라우저에서 서버의 JSP 페이지로 전달하는 정보 처리할 때 사용
- HTML 폼 태그를 통해 입력된 데이터를 전달하는 요청 파라미터 값을 JSP 페이지로 가져 올 때
- 이외에도 헤더 정보 , 웹브라우저, 서버 관련 정보도 가져옴
- Jsp 컨테이너는 웹 브라우저에서 서버로 전달되는 정보를 처리하기 위해 javax.servlet.http.HttpServletRequest 인터페이스로부터 파생된 객체 타입의 request 내장 객체를 사용하여 사용자의 요구 사항을 얻어낸다.
요청 파라미터 관련 메소드
- 요청 파라미터는 사용자가 폼 페이지에 데이터를 입력한 후 서버에 전송할 때 전달되는 폼 페이지의 입력된 정보 형태를 말함
- 요청 파라미터는 <name=value> 형식으로 웹 브라우저에서 서버의 JSP 페이지로 전송
요청 파라미터 관련 메소드의 종류
request.jsp
<form action="process.jsp" method="post">
<h4>이름 : <input type="text" name="name">
<input type="submit" value="전송">
</h4>
</form>
process.jsp
<%
/* request.setCharacterEncoding("utf-8"); 한글 인코딩 */
String name = request.getParameter("name");
%>
<h1>이 름 : <%=name %></h1>
- submit을 누르면 process.jsp로 POST 메소드로 request.jsp에서 입력된 name의 값이 넘어간다.
- 만약 메소드가 GET 메소드이면 URL상에 process.jsp/?name=값 으로 넘어간다
요청 HTTP 헤더 관련 메소드
- 웹 브라우저는 HTTP 헤더에 부가적인 정보를 담아 서버로 전송
- request 내장 객체는 헤더 정보나 쿠키 관련 정보를 얻을 수 있는 메소드 제공함
요청 HTTP 헤더 관련 메소드의 종류
<%
String hostValue = request.getHeader("host");
String alValue = request.getHeader("accept-language");
out.print("호스트명 : "+ hostValue + "<br>");
out.print("설정된 언어 : " + alValue + "<br>");
%>
- request.getHeader 함수를 이용하여 서버의 헤더 정보를 가지고 올 수 있다.
모든 HTTP 헤더 정보 값 출력
<%@page import="java.util.Enumeration" %>
<%
Enumeration en = request.getHeaderNames(); // 모든 헤더의 이름을 가져와 열거형 객체 타입 변수 en에 전달받는다.
while (en.hasMoreElements()) { // hasMoreElements() 열겨형 요소가 있으면 true, 아니면 false
// 헤더 이름이 있을때까지 반복
String headerName = (String)en.nextElement(); // 현재 헤더 이름을 가져옴
String headerValue = request.getHeader(headerName);
%>
<%=headerName %> : <%=headerValue %><br>
<%} %>
웹 브라우저/ 서버 관련 메소드
- request 내장 객체는 웹브라우저의 요청 및 서버 관련 정보를 얻을 수 있는 메소드 제공
- request.getRemoteAddr() 형식으로 사용 가능
URL과 URI
- URL : 인터넷에서 접근 가능한 자원의 주소를 일관되게 표현할 수 있는 형식
- URI : 존재하는 자원을 식별하기 위한 일반적인 식별자를 규정
예) https://www.naver.com/?search=”검색’
- URL : 전체 주소
- URI : ?search=”검색”
→ URI은 URL에서 http(프로토콜), 호스트명, port번호를 뺀것
response 내장 객체의 기능과 사용법
response 내장 객체
- 요청을 시도한 클라이언트로 전송할 응답을 나타내는 데이터의 묶음
- 사용자의 요청을 처리
- 응답을 다른 페이지로 전달
- 응답 헤더와 요청 처리 결과 데이터를 웹 브라우저로 보냄
페이지 이동 관련 메소드
- 페이지 이동 = 리다이렉션(Redirection)
- 사용자가 새로운 페이지를 요청할 때와 같이 페이지를 강제로 이동하는 것
- 서버는 웹 브라우저에 다른 페이지로 강제 이동하도록 response 내장 객체의 리다이렉션 메소드를 제공
- 페이지 이동 시에는 문자 인코딩을 알맞게 설정해야
페이지 이동 메소드
페이지 이동 방식 비교
액션 태그의 forward 방식
- <jsp: forward page=”이동할 페이지”/>
- 현재 jsp 페이지에서 이동할 URL로 요청 정보를 그대로 전달
- 사용자가 최초로 요청한 정보가 이동된 URL에서도 유효
- 따라서, 이동된 URL이 웹 브라우저 주소 창에 나타나지 않음
- 처음 요청한 URL이 나타나기 때문에 이동 여부를 사용자가 알 수 없음
response 내장 객체의 redirect 방식
- response.sendRedirect(”이동할 페이지”);
- 처음 요청 받은 현재 JSP 페이지로부터 이동할 URL을 웹 브라우저로 반환
- 이때 웹 브라우저는 새로운 요청을 생성하여 이동할 URL에 다시 요청을 전송
- 처음 보낸 요청 정보가 이동된 URL 에서는 유효하지 않음
- 즉, 클라이언트가 새로 페이지를 요청한 것과 같은 방식으로 페이지 이동함
- 이동된 URL이 웹 브라우저의 주소창에 보이게 됨
응답 HTTP 헤더 관련 메소드
- 응답 HTTP 헤더 관련 메소드는 서버가 웹 브라우저에 응답하는 정보에 헤더를 추가하는 기능을 제공
- 헤더 정보에는 주로 서버에 대한 정보가 저장되어 있음
응답 HTTP 헤더 관련 메소드의 종류
응답 콘텐츠 관련 메소드
- response 내장 객체는 웹 브라우저로 응답하기 위해 MIME 유형, 문자 인코딩, 오류 메시지, 상태 코드 등을 설정하고 가져오는 응답 콘텐츠 관련 메소드 제공
응답 콘텐츠 관련 메소드의 종류
Out 내장 객체의 기능과 사용법
out 내장 객체
- 클라이언트의 웹 브라우저에 데이터를 전송하는 출력 스트림 객체
- JSP 컨테이너는 JSP 페이지에 사용되는 모든 표현문(<%= %>) 태그와 HTML, 일반 텍스트 등을 out 내장 객체를 통해 웹 브라우저에 그대로 전달
- 스크립틀릿( <% %> ) 태그에 사용하여 단순히 값을 출력하는 표현문 태그 와 같은 결과를 얻을 수 있음
- 표현문 태그도 out.println(코드)로 변환되어 실행됨
- 편의성을 위해 표현문 태그 사용
out 내장 객체 메소드의 종류
out.println
- out.println 도 실제로 HTML 소스코드에서는 줄바꿈이 되지만 웹 브라우저 랜더링 과정에서
태그가 없어 다음 줄로 이동하지 않는다.
- request 에서 가장 많이 사용하는 것 : getParameter
- response 에서 가장 많이 사용하는 것 : get 말고 다른 것들은 모두 response