내장객체
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] %>
<%
}
%>
</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 |