카테고리 없음

6주차 : JSP 내장객체(1)

크과장 2022. 10. 8. 16:23

클래스와 객체(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("")