JSP 내장 객체 개요 내장 객체 (참조 변수 이름) 자바 클래스 주요 역할

Slides:



Advertisements
Similar presentations
Chapter06 폼 HTML5 Programming.
Advertisements

제 07 장 쿠키와 세션 학기 인터넷비즈니스과 강 환수 교수.
Chapter 07 : 서블릿 고급2. chapter 07 : 서블릿 고급2 학습목표 세션 tracking hidden 태그 이용 encodeURL 메소드 사용법 URL 파라미터 이용 쿠키 이용 세션 이용 encodeURL 메소드 사용법.
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
네트워크 프로그래밍 및 실습.
CHAPTER 15. JSP.
Oozie Web API 기능 테스트 이승엽.
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
5강. Servlet 본격적으로 살펴보기-I 프로젝트 만들기 doGet() doPost()
7. JavaBeans 프로그래밍 JavaBeans JavaBeans 만들기 빈을 이용한 회원가입 양식 작성하기 빈 작성
제 08 장 자바 빈즈 학기 인터넷비즈니스과 강 환수 교수.
Ch.07-5 xml-rpc 사용하기 김상엽.
8장. 기본 객체와 영역 제8장.
2. JSP의 환경설정 제 2장 JSP의 환경설정 웹 애플리케이션과 디렉토리 구성 JDK 설치하기 JSP Container
9장. 요청 흐름제어와 모듈화 #1: <jsp:forward> 액션태그 사용
10장. 에러 처리 제10장.
JSP 내장 객체 개요 내장 객체 (참조 변수 이름) 자바 클래스 주요 역할
Internet Computing KUT Youn-Hee Han
3 JSP의 기초.
7 JSP의 기초.
4 쿠키와 세션.
forms 객체 입력상자 체크상자, 라디오 버튼 목록상자
중 간 고 사 (웹프로그래밍)
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
JSP(Java Server Page) JSP기초 JSP 지시어 PSLAB 남지민 년 2월 17일.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
5. JSP의 내장객체1.
JSP Programming with a Workbook
JSP 내장 객체 JSP에서 기본으로 사용할 수 있는 내장 객체 종류를 알아본다. 내장 객체별 주요 기능과 메서드를 이해한다.
Servlet 서블릿 기초 FORM 처리 서블릿의 API 세션과 쿠키 com.oreilly.servelet 패키지
서블릿 이해하기 JSP 기반의 서블릿과 서블릿 소스 코드를 이해한다. 간단한 서블릿 프로그램을 제작할 수 있다.
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
10장. 예외처리.
제 01 장 인터넷 프로그래밍 개요 학기 인터넷비즈니스과 강 환수 교수.
자바 5.0 프로그래밍.
7장 JSP페이지의 내장객체(Implicit Object)와 영역(Scope)
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
인터넷응용프로그래밍 JavaScript(Intro).
게임웹사이트운영 [10] 폼 작성.
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
MVC 모델을 이용한 웹 애플리케이션 작성 웹 애플리케이션 개발 순서를 알아본다 웹 애플리케이션의 실행 순서를 이해한다.
PHP 개요 및 설치 Yang-Sae Moon Department of Computer Science
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
8장 쿠키와 세션 한빛미디어(주).
CGI란 무엇인가? CGI(Common Gateway Interface)의 정의
08장 쿠키와 세션.
7장. JSP페이지의 내장객체(Implicit Object)와 영역(Scope)
12장 쿠키와 세션 이장에서 배울 내용 : 쿠키와 세션은 웹 페이지 간에 정보를 유지할 때 사용된다. 쿠키와 세션은 사용되는 형태가 비슷하나, 쿠키는 웹 브라우저(클라이언트) 쪽에 저장되고, 세션은 웹 서버 쪽에 저장된다. 이 번장에서는 이들에 대해 학습한다.
15강. 폼 데이터 값 검증 Validator를 이용한 검증 ValidationUtils 클래스
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
CHAP 21. 전화, SMS, 주소록.
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
제 06 장 JSP 액션 태그 학기 인터넷비즈니스과 강 환수 교수.
객체 및 객체 모델 데이터 전송 방식 Request 객체 Response 객체
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
JSP Programming with a Workbook
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
MIDP 네트워크 프로그래밍 ps lab 김윤경.
9 브라우저 객체 모델.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
웹에서의 상태 - 변수 발표자 : 지왕태.
JSP Programming with a Workbook
6 쿠키와 세션.
7 생성자 함수.
6 객체.
20 XMLHttpRequest.
Presentation transcript:

JSP 내장 객체 개요 내장 객체 (참조 변수 이름) 자바 클래스 주요 역할 미리 선언되어 있는 클래스 인스턴스 이름으로 생각하면 쉬울 것이다. [ JSP 내장 객체] 내장 객체 (참조 변수 이름) 자바 클래스 주요 역할 request javax.servlet.http.HttpServletRequest HTML Form 요소 선택 값과 같은 사용자 입력 정보를 읽어올대사용 response javax.servlet.http.HttpServleResponse 사용자 요청에 대한 응답을 처리할때 사용 pageContext javax.servlet.jsp.PageContext 현재 JSP 실행에 대한 context 정보를 참조하기 위해 사용 session javax.servlet.http.HttpSession 클라이언트 세션 정보를 처리하기 위해 사용 application javax.servlet.ServletContext 웹 서버의 애플리케이션 처리와 관련된 정보를 참조하기 위해 사용 out javax.servlet.jsp.JspWriter 사용자에게 전달하기 위한 output 스트림을 처리하기 위해 사용 config javax.servlet.ServletConfig 현재 JSP에 대한 초기화 환경을 처리하기 위해 사용 page javax.servlet.HttpJspPage 현재 JSP 페이지에 대한 클래스 정보 exception java.lang.Throwable 예외 처리를 위해 사용

Request request : HTML Form을 통해 전달되는 값을 가지고 올때 사용한다. 메서드 설명 javax.servlet.http.HttpServletRequest [request 주요 메서드] 메서드 설명 getParameterNames() 현재 요청에 포함된 인자 이름을 java.util.Enumeration 형태로 넘겨준다. getParameter(name) 문자열 name과 같은 이름을 가진 인자 값을 가지고 온다. getParameterValues(name) 문자열 name과 같은 이름을 가진 인자 값을 배열 형태로 가지고 온다. checbox, multiple list 등에 주로 사용한다. getCookies() 모든 쿠키 값을 java.servlet.http.Cookie의 배열 형태로 가지고 온다. getMethod() 현재 요청이 GET, POST인지 확인하여 가지고 온다. getSession() 현재 세션 객체를 가지고 온다. getRemoteAddr() 클라이언트 IP 주소를 알려준다. getProtocol() 현재 서버의 프로토콜을 문자열 형태로 알려준다. setCharacterEncoding() 현재 jsp로 전달되는 내용을 지정한 캐릭터셋으로 변환한다. html form에서 한글을 입력할 때 정상적으로 처리하려면 반드시 필요하다.

Request <HEAD> <script language=javascript> document.cookie = "test=OK"; </script> </HEAD> <BODY> <center> <H2>request 테스트 폼 </H2> <HR> <form name=form1 method=post action=request_result.jsp> <table border=1 cellspacing="1" cellpadding="5"> <tr><td>이름</td><td><input type=text size=10 name=username></td> <tr><td>직업</td><td><select name=job > <option selected>무직</option> <option>회사원</option> <option>전문직</option> <option>학생</option> </select> </td> <tr> <td>관심분야</td> <td> <input type=checkbox name=favorite value="정치">정치</input> <input type=checkbox name=favorite value="사회">사회</input> <input type=checkbox name=favorite value="정보통신">정보통신</input> <tr><td colspan=2 align=center><input type=submit value="확인"> <input type=reset value="취소"></td> </form> </BODY> <%@ page contentType="text/html;charset=euc-kr" %> <% request.setCharacterEncoding("euc-kr"); %> <HTML> <HEAD> <TITLE> </TITLE></HEAD> <BODY> <center> <H2>request 테스트 결과 - 1</H2> <HR> <table border=1 cellspacing="1" cellpadding="5"> <tr> <td>이름</td> <td><%=request.getParameter("username")%> </td> <td>직업</td> <td><%=request.getParameter("job")%></td> <td>관심분야</td> <td> <% // getParameterValues 메서드를 이용해 "favorite" 로 설정된 form 의 체크박스 값들을 모두 읽어옴. String favorites[] = request.getParameterValues("favorite"); // 배열의 크기만큼 루프롤 돌면서 값을 출력함. for(int i=0; i<favorites.length;i++) { out.println(favorites[i]+"<BR>"); } %> </table> <H2>request 테스트 결과 - 2</H2> <table border=0><tr><td> 1. 클라이언트 IP 주소 : <%= request.getRemoteAddr() %> <BR> 2. 요청 메서드 : <%= request.getMethod() %> <BR> Cookie cookie[] = request.getCookies(); 3. <%= cookie[0].getName() %> 에 설정된 쿠키값 : <%=cookie[0].getValue() %><BR> 4. 프로토콜 : <%= request.getProtocol() %> </td></tr> </BODY> </HTML>

Response response : 사용자 요청에 대한 응답을 처리하기 위한 javax.servlet.http.HttpServletResponse 객체에 대한 참조 변수다. [response 주요 메서드] 메서드 설명 setContentType(type) 문자열 형태의 type에 저장된 MIME Type으로 ContentType을 설정한다. setHeader(name,value) 문자열 name의 이름으로 문자열 value의 값을 헤더로 셋팅한다. setDateHeader(name,date) 문자열 name의 이름으로 date에 설정된 밀리세컨드 시간 값을 헤더에 설정한다. sendError(status.msg) 오류 코드를 세팅하고 메시지를 보낸다. sendRedirect(url) 클라이언트 요청을 다른 페이지로 보낸다. [response.sendRedirect()와 forward 액션의 차이] response.sendRedirect() 메서드는 현재 페이지를 다른 페이지로 전환하는 것으로써 어떻게 보면 forward 액션과 매우 유사하다고 볼 수 있다. 그러나 둘 사이에는 큰차이가 있다. response.sendRedirect() 메서드는 현재 페이지로의 요청을 단순하게 다른 URL로 전환하는 역할만 하므로 현재 페이지로 전달된 request나 response정보는 새로운 URL로 전달되지 않는다. 반면 forward 액션은 현재 페이지로 전달된 request와 response 를 새로운 페이지에 전달하여 좀더 다양한 활용이 가능하다. 이 밖에도 response.sendRedirect() 메서드는 URL 형태면 모두 전환이 가능하지만 , forward 액션은 반드시 같은 웹 애플리케이션에 포함된 파일이여야 하는 차이점이 있다.

Response [page_control.jsp] [forward_action2.jsp] <%@ page contentType="text/html;charset=euc-kr" %> <HTML> <HEAD><TITLE> </TITLE></HEAD> <BODY> <H2>forward, sendRedirect 테스트</H2> <HR> <form method=post action=forward_action2.jsp> forward action : <input type=text name=username> <input type=submit value="확인"> </form> <form method=post action=response_sendRedirect.jsp> response.sendRedirect : <input type=text name=username> </BODY> </HTML> <% request.setCharacterEncoding("euc-kr"); %> <jsp:forward page="page_control_end.jsp"> <jsp:param name="tel" value="000-000-0000" /> </jsp:forward> [response_sendRedirect.jsp] <% response.sendRedirect("page_control_end.jsp"); %> form 두개를 갖고 있다. 하나는 forward 액션방식 jsp를 호출하고 다른하나는 sendRedirect 메서드를 사용하는 jsp 파일을 호출하는 것이다. [page_control_end.jsp] <%@ page contentType="text/html;charset=euc-kr" %> <HTML> <HEAD><TITLE> </TITLE></HEAD> <BODY> Copyright (c) 2000 - 2002 JSP BOOK. All rights reserved <HR> <%= request.getParameter("username") %> <BR> <%= request.getParameter("tel") %> </BODY> </HTML>

Out out : 스크립트릿에서 출력하는데 사용한다. 메서드 설명 getBufferSize() javax.servlet.jsp.JspWriter 메서드 설명 getBufferSize() output buffer의 크기를 바이트로 알려준다. getRemaining() 남아있는 버퍼의 크기 중 사용 가능한 비율을 알려준다. clearBuffer() 버퍼에 있는 컨텐츠를 모두 지운다. flush() 버퍼를 비우고 output stream도 비운다. close() output stream을 닫고 버퍼를 비운다. println(content) content에 내용을 newline과 함계 출력한다. print(content) content에 내용을 출력한다. <%@ page contentType="text/html;charset=euc-kr" %> <HTML> <HEAD><TITLE> </TITLE></HEAD> <BODY> <center> <H2> out 참조변수의 사용 </H2> <HR> 1. 설정된 버퍼크기 : <%= out.getBufferSize() %> <BR> 2. 남아있는 버퍼크기 : <%= out.getRemaining() %> <BR> <% out.flush(); %> 3. flush 후 남아있는 버퍼크기 : <%= out.getRemaining() %> <BR> <% out.clear(); %> 4. clear 후 남아있는 버퍼크기 : <%= out.getRemaining() %> <BR> <% out.close(); %> 5. close 후 남아있는 버퍼크기 : <%= out.getRemaining() %> <BR> </BODY> </HTML>

Session 메서드 설명 getId() 각 접속에 대한 세션 고유의 ID를 문자열 형태로 반환한다. 정보 │ └┌쿠키(Cookie) : pc에 보관 하는 방식 │ └서버에 부화를 주린다. └세션(Session) : 서버에 보관하는 방식 └┌보안에 유리 └제약사항이 적다 세션 사용 │┌사용자 로그인 후 세션을 설정하고 일정 시간이 지난 경우 다시 사용자 인증을 요구할 때 └├쇼핑몰에서 장바구니 기능을 구현할 때 └사용자가 어떤 페이즈를 다녀갔는지 등 웹페이지 트래킹 기능을 구현 할때 [세션 주요 메소드] 메서드 설명 getId() 각 접속에 대한 세션 고유의 ID를 문자열 형태로 반환한다. getCreatingTime() 세션이 생성된 시간을 January 1, 1970 GMT,부터 long형 밀리세컨드 값으로 반환한다. getLastAccessedTime() 현재 세션으로 마지막 작업한 시간을 long형 밀리세컨드 값으로 변환다. getMaxInactiveInterval() 세션 유지 시간을 초로 반환한다. 즉 세션 유호 시간을 알 수 있다. setMaxInactiveInterval(t) 세션 유효 시간을 t에 설정된 초 값으로 설정한다. invalidate() 현재 세션을 종료한다. 세션과 관련한 값을 모두 지운다. getAttribute(attr) 문자열 attr로 설정된 세션 값을 java.lang.Object 형태로 반환한다. setAttibute(name,attr) 문자열 name으로 java.lang.Object attr을 설정한다.

Session <%@ page contentType="text/html;charset=euc-kr" %> <HEAD><TITLE> </TITLE></HEAD> <BODY> <center> <H2>session 예제 </H2> <HR> <% // isNew() 메서드를 이용해 최초세션설정을 확인하고 있다. if(session.isNew()) { out.println("<script> alert('세션이 해제되어 다시설정합니다.') </script>"); session.setAttribute("login","ok"); } %> 1. 세션 ID : <%= session.getId() %> <BR> 2. 세션 유지시간 : <%= session.getMaxInactiveInterval() %> <BR> 3. login 세션의 설정값 : <%= session.getAttribute("login") %> <BR> </form> </BODY> </HTML>

Application 메서드 설명 getServerInfo() JSP/서블릿 컨테이너 이름과 버전을 반환한다. application은 javax.servlet.ServerletContext 객체에 대한 참조 변수로 config 개체로 생성한다. ServletContext 객체는 컨테이너와 관련된 여러 정보를 제공하며 application 참조 변수를 통해서 서블릿이 실행되는 환경이나 서버 자원과 관련한 정보를 얻거나 로그 파일 기록하는 작업을 수행한다. [개발자를 위한 서버 정보] 메서드 설명 getServerInfo() JSP/서블릿 컨테이너 이름과 버전을 반환한다. getMajorVersion() 컨테이너가 지원하는 서블릿 API의 Major 버전 정보를 반환한다. getMinorVersion() 컨테이너가 지원하는 버블릿 APId의 Minor 버전 정보를 반환한다. [사버 지원 정보] 메서드 설명 getMimeType(filename) 문자열 filename에 지정된 파일에 대한 MIME type을 반환한다. getResource(path) 문자열 path에 지정된 자원을 URL 객체로 반환한다. getResourceAsStream(path) 문자열 path에 지정된 자원을 InputStream 객체로 반환한다. getRealPath(path) 문자열 path에 지정된 자원을 파일시스템의 실제 경로로 반환한다. getContext(path) 문자열 path에 지정된 자원의 컨텍스트 정보를 반환한다. getResourceDispatcher(path) 문자열 path에 지정된 자원을 위한 request dispatcher를 생성한다.

Application 메서드 설명 log(message) [로그 관련 정보] 메서드 설명 log(message) message 내용을 로그 파일에 기록한다. 로그 파일 위치는 컨테이너에 따라 다르다. log(message,exception) 예외 사황과 관련한 정보를 포함하여 로그 파일에 기록한다. [속성 관련 정보] 메서드 설명 getAttribute(String name) 문자열 name에 해당하는 속성 값이 있다면 Object 형태로 가져온다. 반환 값에 대한 적절한 형변환이 필요하다. getAttributeNames() 현재 application 객체에 저장된 속성 이름을 Enumeration 형태로 가져온다. setAttribute (String name, Object value) 문자열 name 이름으로 Object형 데이터를 저장한다. Object형이므로 자바 클래스 형태로도 저장할 수 있다. removeAttribute(String name) 문자열 name에 해당하는 속성을 삭제한다.

Application [application.jsp] [application_result.jsp] <%@ page contentType="text/html;charset=euc-kr" import="java.io.*" %> <HTML> <HEAD><TITLE> </TITLE></HEAD> <BODY> <center> <H2>application 예제</H2> <HR> 1. 서버정보 : <%= application.getServerInfo() %> <BR> 2. 서블릿 API 버전정보 : <%= application.getMajorVersion() +"."+application.getMinorVersion() %> <BR> 3. application.jsp 화일의 실제경로 : <%= application.getRealPath("application.jsp") %> <BR> setAttribute 로 username 변수에 "홍길동" 설정<P> <% application.setAttribute("username","홍길동"); application.log("username=홍길동"); <a href="application_result.jsp">확인하기</a> </center> </BODY> </HTML> <%@ page contentType="text/html;charset=euc-kr" import="java.io.*" %> <HTML> <HEAD><TITLE> </TITLE></HEAD> <BODY> <center> <H2>application 예제</H2> <HR> username 에 설정된 값은 : <%= application.getAttribute("username") %> </center> </BODY> </HTML>

Config 메서드 설명 getInitParameterNames() javax.servlet.ServletConfig 객체에 저장한다. 이때 설정되는 초기화 정보는 소스에 노출되지 않는데, 수시로 변경되는 공통된 정보 들을 설정할 때 사용한다. [config 주요 메서드] 메서드 설명 getInitParameterNames() 초기 파라미터 값들의 설정 이름을 Enumeration 객체로 리턴한다. getInitParameter(name) 문자열 name에 해당하는 초기화 파라미터 값을 리턴한다. page는 JSP 컨테이너에서 생성된 버블릿 인스턴스 객체를 참조하는 레퍼런스 변수며, JSP 에서 자기 자신을 참조할 떄 사용된다.

PageContext pageContext는 javax.servlet.jsp.PageContext 인스턴스에 대한 참조 변수로, 다른 모든 내장 객체에 대한 프로그램적인 접근 방법을 제공하며 HTTP 요청을 처리하는 제어권을 다른 페이지로 넘길때 사용한다. [내장 객체 참조 관련 메소드] 메서드 설명 getPage() 현재 페이지의 생성된 서블릿 인스턴스인 page 내장 객체를 반환한다. getRequest() 현재 페이지의 클라이언트 요청 벙보를 갖고 있는 request 내장 객체를 반환한다. getResponse() 현재 페이지의 클라이언트 응답 정보를 가지고 있는 response 내장 객체를 반환한다. getOut() 현재 페이지의 output stream인 out 내장 객체를 반환한다. getSession() 현재 페이지의 session 내장 객체를 반환한다. getServletConfig() 현재 페이지의 config 내장 객체를 반환한다. getServletContext() 현재 페이지의 서블릿 컨텍스트(application 내장 객체)를 반환한다. getException() 오류 페이지, 즉 page 지시어에서 errorPage 속성을 지정한 페이지에서 오류가 발생할 때 발생한 예외 벙보 exception 내장 객체를 반환한다.

PageContext 메서드 설명 forward(path) 문자열 path에 지정된 페이지로 포워딩한다. [페이지 전달 관련 메소드] 메서드 설명 forward(path) 문자열 path에 지정된 페이지로 포워딩한다. include(path) 문자열 path에 지정된 페이지를 포함시킨다. forward()메서드는 앞에서 사렾본 forward 액션과 동일한 기능을 한다. ■ forward() 메서드 사용 pageContext.forward(“HelloWorld.jsp”); ■ forward 액션 사용 <jsp: forwqrd page=“HelloWorld.jsp” /> include() 메서드는 액션의 include와 동일한 기능을 한다. ■ include() 메서드 사용 <% out.flush(); pageContext.include(“HelloWorld.jsp”); %> ■ include 액션 사용 <jsp: include page = “HelloWorld.jsp” flush=true />

Exception exception은 page 지시어에서 오류 페이지로 지정된 JSP 페이지에서 예외가 발생할 때 전달되는 java.lang.Throwable의 인스턴스에 대한 참조 변수다. 대표적인 메서든 다음 과 같다. [예외 관련 메서드] 메서드 설명 getMessage() 문자열로 된 오류 메시지를 반환한다. printStackTrace() 표준 출력 스트림으로 스택 추적 정보를 출력한다. toString() 예외 클래스 이름과 함께 오류 메시지를 반환한다. <%@ page contentType="text/html;charset=euc-kr" isErrorPage="true" %> <center> <H2>처리중 문제가 발생했습니다</H2> <HR> <table> <tr width=100% bgcolor="pink"><td> 관리자에게 문의해 주세요..<BR> 빠른시일내 복구하겠습니다. <%= exception%> </td> </tr> </table> </center> <%@ page contentType="text/html;charset=euc-kr" errorPage="error.jsp"%> <HTML> <HEAD><TITLE>Error Test</TITLE></HEAD> <BODY><H2>Error 테스트 페이지</H2> <%= 5/0 %> </BODY> </HTML>