JSP (Java Server Page)
자바언어를 사용하여 쉽게 동적인 웹페이지를 구성하기 위해 나옴.
JSP는 (.jsp)파일만 웹서버/서블릿엔진에 올려 놓으면 자동적으로 컴파일을 처리해 준다.
JSP+JavaBeans연동

 

[JSP 페이지의 스크립트 요소]
1. 선언문(Declaration)

   - <%!    %>
   - 멤버변수, 메소드 선언
   - 많은 사용을 권장하지 않음

 

2. 스크립트릿(Scriptlet)

   - <%    %>
   - 일반적인 JAVA, JSP코드를 작성한다.
   - 메소드는 작성불가
   - 스크립트릿안에 포함된 자바 코드는 호출될때 _jspService() 메소드 안에 선언이 된다.

 

3. 표현식(expression)
   - 웹브라우저에 출력할 부분을 표현하기 위한 것
   - <%= 코드 %>
   - 세미클록(;) 생략
   - <% out.print(코드); %> 메소드로 변환된다.
   - <TD>태그안에 데이터베이스의 컬럼값을 출력할 경우에 주로 사용한다.

 

4. 주석(Comment)
   - <%
        // 한줄 주석                   
        /* 여러줄 주석 */
     %>

 

[실습 : 총점과 평균구하기]

D:\JSP_201202AM\tomcat-60\webapps\daum\score.jsp

웹브라우저 결과 확인 http://localhost:9090/daum/score.jsp

 

####################################################################

<!DOCTYPE HTML PUBLIC "-//W3C//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 "-//W3C//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 "-//W3C//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" %>
//서버->웹브라우저 형태의 한글의 출력을 원활하게 해주는 역할이다.

 

+ Recent posts