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" %>
//서버->웹브라우저 형태의 한글의 출력을 원활하게 해주는 역할이다.
'..열심히 공부하세.. > JSP' 카테고리의 다른 글
| [06] Eclipse Helios 자바 개발 환경 툴 설치 (0) | 2012.02.12 |
|---|---|
| [05] 자바에서 MySQL 연동 (0) | 2012.02.10 |
| [04] MySQL root계정 비번 변경 및 SQL문 실습 (0) | 2012.02.09 |
| [02] MySQL 서버 구축하기 (0) | 2012.02.05 |
| [01] JSP 개발 환경 구축하기 (0) | 2012.02.05 |