6주차 : JSP 내장객체(1)
클래스와 객체(Class & Object)
- 사람, 사물의 특징이나 행위를 추상화해서 표현한 개념
- 객체는 클래스로 정의, 실행시에는 클래스의 인스턴스가 생성(객체)
- 객체(클래스) = 속성 + 메소드
내장객체(Implicit Object)
- JSP에서 자주 사용하는 기능들을 객체로 제공
- JSP페이지가 서블릿으로 변환될 때 자동으로 제공
ㄴ 특별한 선언없이 사용 가능
JSP 제공 내장 객체
- 기본적으로 9가지 제공
- 페이지 입출력, 설정, 예외처리, 세션 등의 처리 담당
영역(Scope) 객체
- 동작하는 범위가 지정되어 있는 객체
ㅡㅡㅡㅡ
데이터 전송 흐름
JSP 페이지 처리 과정
- JSP 페이지는 서블릿으로 변환되어 웹브라우저의 요청에 대한 응답을 HTML문서로 생성
데이터의 전송이란
- 웹클라이언트에서 사용자가 입력한 데이터를 웹서버로 전송
- 웹서버 : 데이터 전송받아서 JSP 프로그램 내에서 사용
사용자가 입력한 데이터를 서버로 전송하려면?
1단계
- 사용자 입력을 받는 페이지(html, jsp)에서 입력받은 데이터 전송
- 전송된 데이터를 받아서 처리할 *.jsp 파일을 지정
2단계
- *.jsp 파일은 request 객체를 사용해서 전송된 데이터를 받음
사용자 입력을 위한 html 파일 작성
- 웹 브라우저에서 데이터를 전송한 후 값을 받아서 처리할 프로그램(*.jsp) 지정
- 형식
ㄴ <form method="post"action = "*.jsp"> ...
ㄴ request_form.html에서 "post"방식으로 request_result.jsp파일에 입력된 데이터 전달
<html>
<head> <title> 폼을 이용한 데이터 입력 </title></head>
<body>
<h3> 폼태그를 이용한 데이터 입력 예제</h3>
<form action="request_result.jsp" method="get">
이름 : <input type="text" name="userName" size=20><p>
아이디 : <input type="text" name="userId" size=20><p>
비밀번호 : <input type="password" name="userPassword" size=10><p>
<input type="submit" value="전송">
<input type="reset" value="재작성">
</form>
</body>
<html>
전송된 데이터 받아서 처리하기
- request객체를 이용
- 형식 : request.getParameter("변수/텍스트명")
<%@ page language="java" contentType="text/html;charset=euc-kr" pageEncoding="euc-kr" %>
<% request.setCharacterEncoding("euc-kr"); %>
<html>
<head>
<title> 전송 데이터 받기 </title>
</head>
<body>
<h3> Request 객체로 받은 값을 화면에 출력합니다. </h3>
<%
String strName, strId, strPassword;
strName = request.getParameter("userName");
strId = request.getParameter("userId");
strPassword = request.getParameter("userPassword");
out.println("이름은 " + strName + " 입니다.<br>");
out.println("아이디는 " + strId + " 입니다.<br>");
out.println("비밀번호는 " + strPassword + " 입니다.<br>");
%>
</body>
</html>
ㅡㅡㅡ
request 객체의 역할
- 웹브라우저가 웹서버에 전송한 정보를 저장하는 역할
- 클라이언트의 요청에 따라 _jspServise()메소드의 매개변수로 생성
<%@ page language="java" contentType="text/html;charset=euc-kr" %>
<% request.setCharacterEncoding("euc-kr"); %>
<html>
<head>
<title> 클라이언트 및 서버 정보 </title>
</head>
<body>
<h3> Request 객체를 사용하여 클라이언트 및 서버의 정보를 읽어 옵니다. </h3>
클라이언트IP : <%= request.getRemoteAddr() %><br>
요청정보 길이 : <%= request.getContentLength() %><br>
요청정보 인코딩 : <%= request.getCharacterEncoding() %><br>
요청정보 콘텐츠 타입 : <%= request.getContentType() %><br>
요청정보 프로토콜 : <%= request.getProtocol() %><br>
요청정보 전송방식 : <%= request.getMethod() %><br>
요청 URI : <%= request.getRequestURI() %><br>
컨텍스트 경로 : <%= request.getContextPath() %><br>
서버이름 : <%= request.getServerName() %><br>
</body>
</html>
브라우저에서 전송한 데이터(Parameter) 받기
- 로그인 할 때 아이디나 암호 등을 입력
ㄴ 정보가 파라미터변수와 값의 쌍으로 전송
- 웹 브라우저가 전송한 파라미터를 읽어오는 메소드를 제공
<html>
<head> <title> 폼을 이용한 데이터 입력2 </title></head>
<body>
<h3> 폼태그를 이용한 데이터 입력 예제2</h3>
<form action="request_result2.jsp" method="post">
이름 : <input type="text" name="userName" size=10><p>
주소 : <input type="text" name="userAddress" size=30><p>
좋아하는 동물 :
<input type="checkbox" name="userPets" value="dog">강아지
<input type="checkbox" name="userPets" value="cat">고양이
<input type="checkbox" name="userPets" value="pig">돼지 <p>
<input type="submit" value="전송">
<input type="reset" value="재작성">
</form>
</body>
</html>
체크박스는 여러개 선택할 수 있음
ㄴ getParameterValues("")