: JSP 페이지에서 사용할 수 있도록 JSP 컨테이너에 미리 정의된 객체
: JSP 페이지 --(번역)--> 서블릿 프로그램 => JSP 컨테이너가 자동으로 내장 객체를 각종 변수(객체)로 포함 ==> JSP 페이지에 별도 import문 없이 자유롭게 사용 가능, 직접 호출 가능
ex.오라클 내장 함수 : sybstr, to_char
: 모두 _jspService()메소드 내부에 존재, JSP 컨테이너가 관리하는 객체들
: 사용자 요청을 처리한 결과를 서버->웹 브라우저로 전달하는 정보를 저장
=> 서버 --(응답 헤더, 요청 처리 결과 데이터)--> 웹 브라우저 => 응답 정보 처리하기 위해 javax.servler.http.HttpServletResponse 객체 타입의 response 내장 객체 사용하여 사용자 요청에 응답
response.redirection : 페이지 강제 이동(ex. 새로고침)
<jsp:forward page="이동할 페이지" />
: 이동할 URL로 요청 정보 그대로 전달 => 사용자가 최초로 요청한 정보가 이동된 URL에서도 유효
: 이동된 URL이 웹 브라우저 주소 창에 나타나지 않고 처음 요청한 URL이 나타나기 때문에 사용자가 이동 여부 알 수 없음
response.sendRedirect("이동할 페이지")
: 처음 요청받은 현재 JSP 페이지로부터 이동할 URL을 웹 브라우저로 반환 => 웹 브라우저에서 새로운 요청을 생성하여 이동할 URL에 다시 요청 전송함 => 처음 보낸 요청 정보가 이동된 URL에서는 유효하지 않음 => 이동된 URL이 웹 브라우저 주소 창에 보임
: 내장 객체 - pageContext
: 해당 페이지가 클라이언트에게 서비스 제공하는 동안 유효
: 내장 객체 - application
: 웹 어플리케이션이 실행되고 있는 동안 유효
: 내장 객체 - session
: 세션 유지되는 동안 유효
: 가장 많이 사용되는 기본 내장 객체
: 웹 브라우저(Chrome)에서 서버(tomcat)의 JSP페이지로 전달하는 정보를 저장
: 클라이언트 요청이 처리되는 동안 유효
폼 데이터-데이터 -> JSP 페이지-요청 파라미터 값!
폼 : type="text"인 경우 값 입력 없으면 빈 문자열 전송/checkbox,radio 경우 요청 파라미터 자체가 전달되지 않음
파라미터 : HTTP 요청 정보 담김(ex. URL+?name=어쩌고)
- URI : 주소 + 기능 <= URL: 단순 주소
<body>
<%
Enumeration en = request.getHeaderNames();
while(en.hasMoreElements()){
String headerName = (String)en.nextElement();
String headerValue = request.getHeader(headerName);
%>
<%=headerName %> : <%=headerValue %><br/>
<%
}
%>
</body>
<body>
<p>클라이언트 IP : <%=request.getRemoteAddr() %></p>
<p>요청 정보 길이 : <%=request.getContentLength() %></p>
<p>요청 정보 인코딩 : <%=request.getCharacterEncoding() %></p>
<p>요청 정보 콘텐츠 유형 : <%=request.getContentType() %></p>
<p>요청 정보 프로토콜 : <%=request.getProtocol() %></p>
<p>요청 정보 전송 방식 : <%=request.getRemoteAddr() %></p>
<p>요청 URI : <%=request.getRequestURI() %></p>
<p>콘텍스트 경로 : <%=request.getContextPath() %></p>
<p>서버 이름 : <%=request.getServerName() %></p>
<p>서버 포트 : <%=request.getServerPort() %></p>
<p>쿼리문 : <%=request.getQueryString() %></p>
</body>
</html>
GET 방식
: 보안이 안좋음(주소 표시줄에 요청 파라미터가 보임)
: 길이 한정됨
: DB정보 변경 안될 시 주로 사용됨(SELECT)
요청 URI : /chap05/process.jsp?name=개똥이&id=a001
요청파라미터 : name=개똥이
POST 방식
: 보안이 좋음(주소 표시줄에 요청 파라미터가 안보임)
: 길이 무한
: DB정보 변경될 때 주로 사용됨(INSERT, UPDATE, DELETE)
요청 URI : /chap05/process.jsp
요청파라미터 : {name=개똥이,id=a001}