JSP ( Java Server Page ) 자바 언어 를 사용 하 여 쉽 게 동적 인 웹 페이지 를 구성 하 기 위해 나옴 . JSP 는 ( . jsp ) 파일 만 웹 서버 / 서블릿 엔진 에 올려 놓 으면 자동 적 으로 컴파일 을 처리 해 준다 . JSP + JavaBeans 연동 [ JSP 페이지 의 스크립트 요소 ] 1 . 선언문 ( Declaration ) - <%! %> - 멤버 변수 , 메소드 선언 - 많 은 사용 을 권장 하 지 않 음 2 . 스크립트 릿 ( Scriptlet ) - <% %> - 일반 적 인 JAVA , JSP 코드 를 작성 한다 . - 메소드 는 작성 불가 - 스크립트 릿 안 에 포함 된 자바 코드 는 호출 될 때 _ jspService ( ) 메소드 안 에 선언 이 된다 . 3 . 표현식 ( ｅxpression ) - 웹 브라우저 에 출력 할 부분 을 표현 하 기 위한 것 - <%= 코드 %> - 세미 클록 ( ;) 생략 - <% out . print ( 코드 ) ; %> 메소드 로 변환 된다 . - < TD > 태그 안 에 데이터베이스 의 컬럼 값 을 출력 할 경우 에 주로 사용 한다 . 4 . 주석 ( Comment ) - <% / / 한 줄 주석 / * 여러 줄 주석 */ %> [ 실습 : 총점 과 평균 구하 기 ] D : \ JSP _ 201202 AM \ tomcat - 60 \ webapps \ daum \ score . jsp 웹 브라우저 결과 확인 http : / / localhost : 9090 / daum / score . jsp # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #######################<! DOCTYPE HTML PUBLIC "-// W 3 C / / DTD HTML 4 . 0 Transitional / / EN ">< HTML > < HEAD > < TITLE > / daum / score . jsp </ TITLE > </ HEAD > < BODY ><%// 성적표 int kor = 90 ; int mat = 80 ; int eng = 70 ; / / 평균 구해서 브라우저 에 출력 하 기 int aver ; aver =( kor + mat + eng ) / 3 ; out . print ( " 국어 : "+ kor +"< br >"); out . print ( " 영어 : "+ eng +"< br >"); out . print ( " 수학 : "+ mat +"< br >"); out . print ( " 평균 : "+ aver +"< br >");%> <!-- 위 와 동일 한 결과 출력 --> 국어 : <%= kor %>< br > 영어 : <%= eng %>< br > 수학 : <%= mat %>< br > 평균 : <%= aver %>< br > <%// 구구단 출력 작성 int su = 2 ; for ( int i = 1 ; i <= 9 ; i ++){ out . print ( su + "*" + i + "=" + ( su * i ) + "< br >");}%> <!-- 구구단 을 테이블 에 출력 하 기 -->< table border = 1 ><% int gugu = 2 ; String bgcolor =""; for ( int i = 1 ; i <= 9 ; i ++){ if ( i % 2 == 0 ) bgcolor =" yellow "; else bgcolor =" blue ";%> < tr bgcolor ="<%= bgcolor %>"> < td ><%= gugu %> * <%= i %> = <%= gugu * i %></ td > </ tr ><%}%></ table > <!-- 위 의 구구단 의 표 에 색상 입히 기 < tr bgcolor =" yellow "> ( 한 줄 노란 , 한 줄 파랑 번갈 아 나오 게 ) --> </ BODY ></ HTML > # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ######################### [ JSP 페이지 의 지시 자 ( Directive ) ] 1 . page 디렉티브 - <%@ page %> - <%@ page language =" java " contentType =" text / html ; charset = euc - kr " pageEncoding =" euc - kr "%> - language =" java " : JSP 페이지 의 스트립 트 에서 사용 할 프로그래밍 언어 . 생략 가능 - contentType =" text / html ; 응답 결과 를 html 문서 형식 으로 생성 해서 출력 한다 . charset = euc - kr " 사용 할 문자 의 인코딩 은 한글 로 된 문서 를 생성 할 때 는 euc - kr 사용 한다 . - pageEncoding =" EUC - KR " : JSP 페이지 에서 사용 하 는 문자 의 인코딩 을 지정 할 때 사용 한다 . charset = EUC - KR 에서 지정 했 으면 , 생략 가능 하 다 . - <%@ page contentType =" text / html ; charset = EUC - KR " %> - <%@ page import =" java . util . *" %> 2 . include 디렉티브 - <%@ include file =" 파 일명 " %> - 공통 적 으로 포함 될 내용 을 가진 파일 을 해당 JSP 페이지 내 에 삽입 하 는 기능 을 제공 한다 . [ 실습 ] ** sungjuk . html # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #######################<! DOCTYPE HTML PUBLIC "-// W 3 C / / DTD HTML 4 . 0 Transitional / / EN ">< HTML > < HEAD > < TITLE > / daum / sungjuk . html </ TITLE > </ HEAD > < BODY >< FORM METHOD = POST ACTION ="./ sungjukProc . jsp "> 이름 : < INPUT TYPE =" text " value =" 홍길동 " NAME =" uname ">< BR > 국어 : < INPUT TYPE =" text " value =" 90 " NAME =" kor ">< BR > 영어 : < INPUT TYPE =" text " value =" 80 " NAME =" eng ">< BR > 수학 : < INPUT TYPE =" text " value =" 70 " NAME =" mat ">< BR > < INPUT TYPE =" submit " value =" 확인 "> < INPUT TYPE =" reset " value =" 취소 "></ FORM > </ BODY ></ HTML > # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ######################### ** sungjukProc . jsp # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ######################<%@ page contentType =" text / html ; charset = euc - kr " %><! DOCTYPE HTML PUBLIC "-// W 3 C / / DTD HTML 4 . 0 Transitional / / EN ">< HTML > < HEAD > < TITLE > / daum / sungjukProc . jsp </ TITLE > </ HEAD > < BODY ><% request . setCharacterEncoding ( " euc - kr "); String uname = request . getParameter ( " uname "); int kor = Integer . parseInt ( request . getParameter ( " kor ")); / / 정수 형 변환 int mat = Integer . parseInt ( request . getParameter ( " eng ")); / / 정수 형 변환 int eng = Integer . parseInt ( request . getParameter ( " mat ")); / / 정수 형 변환 int aver =( kor + mat + eng ) / 3 ; String hakjum = grade ( aver ) ; / / 학점 구하 는 grade 메소드 작성 out . print ( " 이름 : "+ uname +"< br >"); out . print ( " 국어 : "+ kor +"< br >"); out . print ( " 영어 : "+ eng +"< br >"); out . print ( " 수학 : "+ mat +"< br >"); out . print ( " 평균 : "+ aver +"< br >"); out . print ( " 학점 : "+ hakjum +"< br >");%> <%! / / 메소드 만 선언 public String grade ( int avg ) { String grade = ""; if ( avg >= 90 ) { grade = " 수 "; } else if ( avg >= 80 ) { grade = " 우 "; } else if ( avg >= 70 ) { grade = " 미 "; } else if ( avg >= 60 ) { grade = " 양 "; } else { grade = " 가 "; } return grade ; } %> </ BODY ></ HTML > # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ######################### / / request . setCharacterEncoding ( " euc - kr ");// 요청 파라미터 의 캐릭터 인코딩 을 한글 로 하 기 위한 것 . / / 만일 , 생략 되 면 폼 을 통해 넘어온 한글 은 모두 깨져서 출력 된다 . / / 웹 브라우저 -> 서버 의 한글 의 출력 을 원활 하 게 해 주 는 역할 이 다 . //<%@ page contentType =" text / html ; charset = euc - kr " %>// 서버 -> 웹 브라우저 형태 의 한글 의 출력 을 원활 하 게 해 주 는 역할 이 다 .