내장 객체 - JSP 컨테이너 가 자동으로 생성해주는 객체
JSP 페이지에 관련된 내장 객체 : page, config
페이지 입출력에 관련된 내장 객체 : request, response, out
context에 관련된 내장 객체 : session, application, pageContext
Error에 관련된 내장 객체 : exception
- request (javax.servlet.http.HttpServletRequest ) : 웹브라우저 요청 정보
- response (javax.servlet.http.HttpServletResponse ) : 웹 서버 응답 정보
- out (javax.servlet.jsp.JspWriter ) : 페이지 내용 출력 스트림
- session (javax.servlet.http.HttpSession ) : 세션 정보를 가지고 있는 객체
- application (javax.servlet.ServletContext ) : 어플리케이션 공유 정보를 가지고 있는 객체
- page ( javax.servlet.jsp.HttpJspPage ) : JSP 서블릿에 대한 인스턴스
- config( javax.servlet.ServiceConfig ) : JSP 서블릿 configration data
- pageContext ( javax.servlet.jsp.PageContext ) : JSP 컨텍스트 정보
- exception ( javax.lang.Throwable ) : 예외 상황에 대한 정보를 담고 있는 객체
request, session, application, page 내부 객체는 임의 속성값(attribute)를 저장하고, 읽을 수 있는 메서드를 제공한다.
속성을 저장하고 읽을 수 있는 기능은 JSP페이지 등 또는 서블릿간의 정보를 주고 받을 수 있도록 해줍니다.
내부 객체의 속성을 저장하고 읽어내는 공통 메서드
1. setAttribute(String key, Object value ) : 주어진 key(이름)에 속성값을 연결한다.
2. getAttributeNames() : 모든 속성의 이름을 얻어온다.
3. getAttribute(key) : 주어진 key에 연결된 속성값을 얻어온다.
4. removeAttribute(key) : 주어진 key에 연결된 속성값을 제거한다.
out 객체 : 페이지 내용을 담고 있는 출력 스트림 객체
메서드( JspWriter)
1. isAutoFlush() : 출력 버퍼가 가득찼을 때 자동으로 밀어닐 것인지 여부를 지정(false/true)
2. getBufferSize() : 출력 버퍼가 전체 size를 구함.
3. getRemaining() : 출력 버퍼의 남아있는 size
4. clearBuffer() : 출력 버퍼를 비운다.
5. println() : String을 출력한다.
6. flush() : 출력 버퍼 내용을 밀어낸다.
7. close() : 출력 버퍼 내용을 밀어내고 출력 버퍼를 닫는다.
예제> OutTest.jsp
<%-- OutTest.jsp --%>
<%@ page contentType="text/html;charset=euc-kr" %>
<html>
<body>
<%
int total=out.getBufferSize();
int rate=out.getRemaining();
out.println(" total Buffer : "+(total/1024)+"kb"+"<br>");
out.println(" remain Buffer :"+rate+"byte"+"<br>");
out.println(" 사용중인 버퍼 : "+(total-rate)+"byte"+"<br>");
%>
<br>
total Buffer<%= total %><br>
remain Buffer<%=rate %><br>
사용중인 버퍼 : <%= (total-rate)%><br>
</body>
</html>
request 내장 객체 (HttpServletRequest ) : Parameter를 포함한 요청정보를 담고있는 객체
메서드
1. getMethod() :요청 방식 알아내기(Get,Post)
2. getRequestURI() : 요청 파일 경로 알아내기
getRequestURL() : 요청 파일 경로 알아내기
3. getQueryString() : URI와 함께 전달되는 입력정보 알아내기
4. getRemoteHost() : 클라이언트 호스트 이름 알아내기
5. getRemoteAddr() : 클라이언트 주소 알아내기
6. getRemoteUser() : (기본 인증을 이용할 경우) 이용자 ID 알아내기
7. getProtocol() : 사용중인 프로토콜 알아내기(HTTP/1.1)
8. getServerName() : 서버 도메인 이름 알아내기
9. getServerPort() : 서버 port 알아내기
10. getHeader(name) : name에 해당하는 요청 헤더 항목 값을 알아내기
11. getParameter(name) : name에 해당하는 파라미터 값 알아내기
12. getParameterValues(name) : name에 해당하는 파라미터 값을 모두 알아내기
13. getParameterNames() : 폼에 있는 모든 파라미터 이름을 모두 알아내기
예제> RequestTest.jsp
<%@ page contentType="text/html;charset=euc-kr" %>
<html>
<body>
<h1>request정보 </h1>
<li>사용 method 방식 : <%= request.getMethod() %>
<li>요청경로(URL) : <%= request.getRequestURL() %>
<li>요청경로(URI) : <%= request.getRequestURI() %>
<br>
<li> getRemoteHost(사용자 컴퓨터이름) : <%= request.getRemoteHost() %>
<li> getRemoteAddr(사용자 컴퓨터 주소) : <%= request.getRemoteAddr() %>
<li> getRemoteUser : <%= request.getRemoteUser() %>
<br>
<li>프로토콜 :<%= request.getProtocol() %>
<li>서버이름 :<%= request.getServerName() %>
<li>서버포트 :<%= request.getServerPort() %>
<%-- getHeader(name)--%>
<li>현재 사용하는 브라우저 정보 : <%= request.getHeader("User-Agent") %>
<li>브라우저가 지원하는 file의 MIME type 알아보기 : <%= request.getHeader("Accept") %>
<li>이전 URL 알아보기 : <%= request.getHeader("referer") %>
<br>
<a href="RequestTest.jsp">이전 URL알아보기</a>
<br>
</body>
</html>
response객체 ( HttpServletResponse) :요청 객체에 대한 응답을 담고 있는 객체
메서드
1. setContentType() : 출력하는 문서의 contentType 지정
예> response.setContentType("text/html");
2. getCharacterEncoding() : 문자 인코딩 설정 알아보기
3. setHeader( name, value) : 응답헤더 설정
예> response.setHeader("Refresh", "3;URL=http://www.youtobe.com"); //3초후에 유튜브로 고고싱~
4. sendRedirect("url") : 지정 url문서 보여주기 //자주사용함..
"RequestTest.jsp" "
http://www.daum.net" - 내부 외부 URL 모두 사용가능함.
참고 - forward 액션
<jsp: forward page="local url"/>
"RequestTest.jsp" 가능 "
http://www.daum.net" 불가 - 내부 URL만 사용가능.
- include 지시자 (외부문서 포함)
<%@ include file="파일명.확장자" %>
외부 데이터(jsp,txt,html 등을 ) jsp페이지에 포함시키는 것.
- include 액션 태그(처리결과를 포함)
<jsp:include file="파일명.확장자" %>
예제> ResponseTest.jsp
- sendRedirect()은 웹브라우저가 다른 페이지로 이동하는데, 이때 다른 페이지로 가기 위해서 웹브라우저는
웹 서버에 새로운 Http 요청을 보낸다. 즉 TCP네트워크 연결이 다시 만들어지는 것 입니다.
- forward 액션테그는 JSP엔진에서 Http요청을 다른 페이지로 보내는 것이다. 즉, Http요청은 처음 만들어진 것
하나만 있는 것입니다.
이 차이점은 중요한 의미를 갖는다.
sendRedirect()를 사용하면 웹브라우저에서 처음에 전송된 Http요청과 이 요청에 포함된 데이터들은 새로 이동된
페이지에서 사용할수 없게 됩다. 반면에 forward 액션을 사용하면 Http요청은 하나만 사용하기 때문에 새로 이동된
페이지에서도 클라이언트에서 전송한 데이터를 사용할 수 있다.
forwart 액션 태그
<jsp:forward page="로컬url"/>
<jsp:forward page="로컬 url">
</jsp:forward>
<jsp:forward page="<%= expression %>"/>
<jsp:forward page="로컬URL">
<jsp:param name="id" value="kim"/>
<jsp:param name="pwd" value="123"/>
<jsp:param name="pwd" value="<%= value %>"/>
</jsp:forward>
include 디렉티브 (지시자)
외부 파일을 포함하는 것 입니다. ( .jsp, .html, .txt)
포함될 파일은 헤더 부분을 쓰지 말아야 합니다. ( 중복선언 되니까)
형식----------------------------
<%@ include file="파일.확장자" %>