내장객체

JSP가 자바코드로 변환될 때! 자바 파일에 자동으로 추가되는 내장객체들에 의해서

JSP페이지에서는 Servlet페이지와는 다르게 

 

request객체나 / PrintWriter out = response.getWriter() 프린트 객체로 out.print("<html>");이런식으로 

써주던 걸 PrintWriter out = response.getWriter()객체 (출력스트림)을 알아서 생성해주어 out.print("<html>");바로 사용할 수 있다.

 

import 없이도 내장객체는 자유롭게 접근할 수 있다.

 

 

webapps와 work가 컨텍스트 폴더(프로젝트명)이고 

C:\Program Files\Apache Software Foundation\Tomcat 8.5\work\Catalina\localhost\ROOT\org\apache\jsp

이런식으로 끝까지 폴더를 타고 들어가보면

 

저렇게 자바파일과 클래스 파일이 생성이 된다.

 

즉, JSP페이지는 웹 컨테이너-> sevlet class로 변환 되는 과정으로 사용자의 요청을 처리한다.

 

객체는 클래스타입 객체 = new 인스턴스(); 에서 인스턴스를 저장해놓은 변수를 객체라고함

내장 객체 변수명 설명
request http 요청 정보 저장한 객체
response http 요청에 대한 응답 객체
session 클라이언트의 세션정보를 저장
pageContext 페이지 실행에 필요한 컨텍스트 정보를 저장한 객체
out 응답 페이지 전송을 위한 출력 스트림 객체
application 동일한 애플리케이션의 컨텍스트 정보를 저장한 객체
config 해당 페이지의 서블릿 설정 정보(초기화 정보)를 저장한 객체
page 해당 페이지 서블릿 객체(인스턴스)
exception 예외 처리를 위한 객체

위의 내장 객체 변수명으로는 사용자가 변수를 정의하면 jsp페이지가 서블릿 클래스로 변환될 때 추가되는 코드에 의해

중복이 발생한다. 따라서 위의 객체 변수명으로는 따로 변수를 생성하면 안된다.

JSP 페이지 내의 스크립틀릿 안에서 정의해서 안됨.!!

 

request객체

HTTP메세지 : HTTP 헤더 + HTTP본문으로 구성되어 있다.

웹 서버에서는 HTTP 메세지를 수신하여 요청이 서블릿/JSP을 호출하는 것으로 판단되면 (URI or 애노테이션)

서블릿/JSP 컨테이너에 요청을 넘겨준다.

 

이 때, HTTP HttpServletRequest 객체를 생성하고 이를 서블릿 인스턴스에 넘겨줌으로써 HTTP메세지를 수신한다. 

 

request객체의 메소드
리턴타입 메소드명 설명
String getParameter(String name) html의 속성중 name속성으로 내용을 가져옴
String[] getParameterValues(String name) name이란 이름으로 지정된 파라미터의 모든 값을 String배열로 리턴 받는다. 주로 checkbox같은 name속성을 같게 주는 태그를 가져올 때 쓴다.
Enumeration getParameterNames() 요청에 포함된 모든 파라미터 이름을 java.util.Enumeration 객체로 리턴

requestForm.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>

<html>
<head>
<title>request</title>

<style type="text/css">
/* h1태그, name이 commandCell인 태그 */
h1, #commandCell   
{
/* 	텍스트 정렬 : 가운데 */
	text-align : center; 
}

table
{
/* 	외부 여백 */
	margin : auto;
/* 가로 너비 */
	width : 400px;
/* 외곽선 */
	border : 1px solid red;
}
</style>
</head>
<body>
	<h1>Request 예제</h1>
	<form action = "requestTest.jsp" method = "post">
		<table>
			<tr>
				<td><label for = "name">이름</label></td>
				<td><input type = "text" name = "name" id = "name"></td>
			</tr>
			<tr>
				<td><label for = "gender">성별</label></td>
				<td>남<input type = "radio" name = "gender" value = "male" id = "gender"> 
				여 <input type = "radio" name = "gender" value = "female"> 
				</td>
			</tr>
			<tr>
				<td><label for = "hobby">취미</label></td>
				<td>독서<input type = "checkbox" name = "hobby" value = "독서" id = "hobby">
					게임<input type = "checkbox" name = "hobby" value = "게임">
					TV시청<input type = "checkbox" name = "hobby"	value = "TV시청">
					축구 <input type = "checkbox" name ="hobby" value = "축구"> 
					기타 <input type = "checkbox" name = "hobby" value = "기타">
				</td>
			</tr>
			
			<tr>
				<td colspan = "2" id = "commandCell"><input type = "submit" value = "전송"></td>
			</tr>
		</table>
	</form>
</body>
</html>

requestTest.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    
<%
	request.setCharacterEncoding("utf-8");
%>

<html>
<head>
<title></title>
<style type="text/css">
h1
{
	text-align : center;
}

table
{
	margin : auto;
	width : 400px;
	border : 1px solid red;
}
</style>
</head>
<body>
<h1>RequestTest1_Form에서 요청될 페이지</h1>
<table>
	<tr>
		<td>이름</td>
		<td><%=request.getParameter("name") %><td>
	</tr>
	
	<tr>
		<td>성별</td>
		<td>
			<%
				if(request.getParameter("gender").equals("male"))
				{
				 %>
				 남자
				 <%    
				}
				else
				{
				 %>
				  여자
				 <% 
				}
			%>
		</td>
	</tr>
	<tr>
		<td>취미</td>
		<td>
			<%
			String[] hobby = request.getParameterValues("hobby");
			for(int i = 0; i < hobby.length; i++)
			{
			%>
				<%= hobby[i] %> &nbsp; &nbsp;
			<% 
			}
			%>
		</td>
	</tr>
</table>
</body>
</html>

 

 

'JSP' 카테고리의 다른 글

[JSP] Session 객체 - 메소드  (0) 2019.11.02
[JSP] 내장객체 - http헤더  (0) 2019.11.02
[JSP] 서블릿 페이지-> JSP페이지/ JSP 스크립트 요소  (0) 2019.10.30
[JSP]서블릿 (httpservlet)  (0) 2019.10.30
[JSP]SERVER.XML  (0) 2019.10.16