1. JSP(Java Server Pages) 소개 웹 프로그래밍 전반적인 환경을 이해 JSP의 기술 및 동작방식에 대해 이해 JSP 공부 방법과 알아야 하는 기술 및 수준 2014년 2학기 멀티미디어공학과
목차 웹과 동적 컨텐츠 JSP 개요 JSP의 특징 Servlet의 기본 JSP의 동작 원리 JSP 학습을 위한 관련 기술
웹과 동적 컨텐츠 웹의 동작
정적 페이지, 동적 페이지 정적 페이지 : 고정된, 변하지않는’ 성격을 가진 페이지 동적 페이지 : 자동으로 생성된 페이지, 기존의 웹 서버에 새로운 기능을 가진 프로그램을 탑재하여 동적으로 HTML을 생성 <<동적인 컨텐츠 생성을 수용하는 서버측 구성>>
CGI(Common Gateway Interface) 동적 페이지를 위한 기술 웹 서버와 동적 컨텐츠 생성을 맡은 프로그램 사이에서 정보를 주고받는 인터페이스 초기 웹 프로그래밍에 사용된 기술 프로세스 단위로 실행되기 때문에 사용자가 증가하면 급격히 성능 저하 http://xxx.xxx.xxx/cgi-bin/a.cgi 프로세스 a.cgi 사용자 증가에 따른 시스템 성능의 급격한 저하
확장 CGI 전통적인 CGI 방식의 단점들을 보완한 기술 매번 프로세스를 생성하는 방식이 아니고 동일한 프로그램에 대해서는 하나의 프로세스를 생성한 후 여러 개의 스레드로서 요청을 처리하는 방식 -> 시스템의 부하를 줄임 ASP, PHP, Servlet, JSP 등 ASP – MS사에서 만들어진 확장 CGI, 특정 웹 서버와 OS에 동작 PHP – ASP와는 달리 특정 영역에서만 동작하지않음, 적은 명령어들로서 프로그래밍이 가능, 기능들이 미약 Servlet – Sun사, Java 언어를 기반으로 하여 동적인 컨텐츠를 생성, Java 코드안에 HTML태그가 혼재되어 있어서 작업에 대한 분리적인 측면에서 효율성이 떨어짐 JSP – Sun사, Java언어를 기반, HTML태그 사이에 스크립트 언어 형식으로 프로그램을 작성
동적 컨텐츠 처리를 위한 기술들 용 어 설 명 CGI -동적 컨텐츠 처리를 위한 가장 전통적인 방법 -CGI용 프로그램은 CGI 규약만 지키면 어떤 언어라도 가능 -프로세스 기반 프로그램으로 시스템의 효율성 측면에서 시스템에 많은 부하 확장 CGI ASP - 비주얼 베이직 언어의 문법들중 일부를 사용 - ActiveX 컴포넌트로 접근가능 - IIS 와 사용(윈도우 운영체제) PHP - C언어와 비슷한 문법을 사용 - 리눅스처럼 소스가 공개되어 있음 - 윈도우, 유닉스 운영체제지원, 아파치, IIS 서버 등 지원 Servlet/JSP - Java 언어를 기반으로 하여 Java 언어의 장점을 수용 - 플랫폼에 대해 독립적임과 동시에 컴파일된 파일을 재컴파일 없이 즉시적인 이식이 가능 - 사용자정의 태그로 기능 확장이 가능
서버측 스크립트 (Server Side Script) 서버측에서 동적인 컨텐츠 생성을 담당하는 기술 서버측에 위치해서 실행되는 스크립트 언어 HTML과 스크립트 언어를 함께 사용할 수 있는 기술로 웹 서버에서 해석 데이터베이스 연동 처리 등 다양한 구현이 가능 별도의 컴파일 과정없이 HTML 태그 수정 가능 JSP, Servlet, PHP, CGI, ASP 클라이언트측 스크립트(Client Side Script) 웹 브라우저에서 실행되는 언어 자바 스크립트, VB 스크립트
JSP 개요 웹 프로그래밍 언어들 중의 하나 동적인 페이지를 생성하기 위한 서버측 스크립트 언어 자바언어를 기반 객체지향적, 플랫폼 독립적, 네트워크 지향적, 뛰어난 보안성, 멀티스레드 기능, 친근한 코드 서버 스크립트로 구현한 예(JSP) <%@ page contentType="text/html;charset=euc-kr" %> <HTML> <HEAD><TITLE>Hello World</TITLE></HEAD> <BODY><H2>Hello World : 헬로월드</H2> 오늘의 날짜와 시간은 : <%= new java.util.Date() %> asp 의 경우 <%=now %> </BODY> </HTML>
JSP의 특징 많은 사용자 접속도 원활히 처리할 수 있다. 빈즈라고 하는 자바 컴포넌트를 사용할 수 있다. 최초의 서블릿으로 컴파일 된 후에는 메모리에서 처리 많은 사용자 접속도 원활히 처리할 수 있다. JSP나 다른 서블릿 간의 쉬운 데이터 공유 page, request, session, application scope 으로 가능 자바의 모든 기능을 사용할 수 있다. 무한한 확장성 IBM, 오라클, Sun 등에서 강력히 지원 사용자 태그를 만들어 사용할 수 있다. JSTL(JSP Standard Tag Library)과 같은 다양한 기능의 태그 라이브러리 이용 가능 다양한 운영체제와 여러 회사의 JSP 개발/실행 환경을 이용할 수 있다.
Servlet의 기본 완전한 자바파일의 형태 JSP와는 달리 자바 코드 안에 HTML 태그들이 포함
서블릿으로 구현한 예 public class CMemberTest extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=EUC_KR"); PrintWriter out = response.getWriter(); out.println("<HTML><HEAD><TITLE>로그인</TITLE></HEAD></HTML>"); out.println<BODY><H2>Hello World : 헬로월드</H2>"); out.println(“오늘의 날짜와 시간은 : “+new java.util.Date()); out.println("</BODY></HTML>"); }
일반적인 WWW서비스의 동작 과정 http://www.xxx.xxx/index.html 80 포트 <HTML> <BODY> … index.html ④요청 분석 HTML 파일 읽기 DNS 서버 ② IP 주소로 변화 211.xxx.xxx.com ① URL 입력 www.xxx.com ⑥ HTML 태그 분석 변환/화면 구성 PC/웹 브라우저 웹 서버 80 포트 ③해당 HTML 페이지 요청 http://www.xxx.xxx/index.html ⑤ HTML 파일(텍스트) 전송
JSP의 동작 과정 DB http://www.xxx.xxx:8080/index.jsp 8080 index. jsp 포트 <HTML> <BODY> … index. jsp 8080 포트 DNS 서버 PC/웹 브라우저 웹 서버 서블릿 JSP/서블릿 컨테이너 DB ② IP 주소로 변화 211.xxx.xxx.xxx ① URL 입력 www.xxx.com ⑨ HTML 태그 분석 변환/화면 구성 ③ JSP 페이지 요청 http://www.xxx.xxx:8080/index.jsp ⑧ 결과 페이지(HTML) 전송 ④ 요청/분석 넘기기 ⑦ 실행 결과 전송 ⑦데이터 전송 ⑥ 서블릿 적재 ⑤ 컴파일
JSP의 동작 원리 JSP 서블릿 컴파일과 처리 과정
JSP 학습을 위한 관련 기술 JSP 학습을 위한 필수 기술 서블릿 생명주기 이해 서블릿 기초 프로그래밍 request, response 처리 GET/POST 처리 서블릿 오라클, MySQL 등 원격지 데이터베이스 연결 처리 경험 JDBC 드라이버 세팅 ResultSet, PreparedStatement 데이터 핸들링 JDBC 패키지와 클래스 이해 클래스 DOC을 참조하여 프로그래밍이 가능한 수준 JDK 설치 및 환경설정 자바 언어 기본, 객체지향 개념 상속, 오버로딩, 오버라이딩 인터페이스 구현 java.util, java.io 패키지 쓰레드, 예외 핸들링 자바 비 고 프로그램 경험 필수 기술
JSP 학습을 위한 관련 기술 JSP를 배우는데 도움이 되는 기술 유닉스에서 웹 서버 세팅 경험 웹 서버 세팅 CGI, ASP, PHP등 웹 프로그래밍 경험 웹 프로그래밍 테이블 생성과 키에 대한 이해 키 관계 설정 기본 SQL 문의 사용 데이터베이스 연계 프로그래밍 경험 데이터베이스 필요한 기능을 함수로 구현 가능한 수준. 메서드 만들기 FORM 연계 이벤트 처리 자바스크립트 수작업으로 코딩이 가능한 수준. CSS, 레이어 이해 HTML 기초 태그 사용 FORM 관련 태그 사용 HTML 최소 요구사항 프로그램 경험 관련 기술