위로 아래

스크립트 태그 종류

이클립스 라이브러리 연결

build path -> libraries -> Classpath -> add Library -> Server Runtime

 

지시어
<%@ 내용 %>   //제일 상단에 JSP 문서임을 표시하는 데 사용

<%-- 스크립트 요소 --%>
선언문
<%! 내용 %>   // 자바 변수나 메소드 정의하는 데 사용

표현문 
<%= 내용 %>   // 변수, 계산식, 메소드 호출 결과를 문자열 형태로 출력하는 데 사용

스크립틀릿
<% 내용 %>   // 자바 로직 코드를 작성하는 데 사용

예시

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%! String s = "안녕"; %>   <%-- 선언문 --%>

<%
	int sum = 0;   // 스크립틀릿 (java 문법을 사용하는 곳이라 주석이 다르다)
	for(int i=0;i<=100;i++){
		sum+=i;
	}
	out.println("합계: "+sum);   // 결과 합계: 5050
%>

<%= s %>   //결과 안녕 <%-- 표현문 --%>

 

 


지시어 (디렉티브)

지시어 (Directive) 디렉티브

  1. JSP 페이지를 자바(서블릿)코드로 변환하는 데 필요한 정보를 JSP엔진에 알려줌.
  2. page 지시어
    1. info : 페이지 설명 입력
    2. language : 페이지 스크립팅 언어 지정 (기본값 java)
    3. contentType : 페이지에서 생성할 MIME 타입 지정
    4. pageEncoding : 인코딩 지정 (charset과 유사)
    5. import : 페이지에서 사용할 자바 패키지와 클래스 지정
    6. session : 세션 사용 여부 지정 (기본값 true)
    7. buffer : 출력 버퍼의 크기 지정 (기본값 8KB)
    8. autoFlush : 출력 버퍼가 모두 채워졌을 때 자동으로 비울 지 결정 (기본값 true)
    9. trimDirectiveWhitespaces : 지시어 선언으로 인한 공백을 제거할지 결정 (기본값 false)
    10. errorPage : 해당 페이지에서 에러 발생했을 때 에러 발생 여부를 보여줄 페이지 지정
    11. isErrorPage : 해당 페이지가 직접 에러를 처리할지 여부 지정 (기본값 false)
    12. buffer : 네트워크로 데이터를 전송할 때, 데이터가 쌓일 때까지 모아뒀다가 보내는 것. 작은 단위로 여러 번 전송할 때보다 더 효율적이다. (buffer가 none일 때, autoFlush를 false로 지정하면 오류)
  3. include 지시어
    1. <%@ include file = "포함할 파일의 경로 %>
    2. 해당 파일을 지금 파일에서 사용할 수 있게 한 페이지로 만든다.
    3. header나 footer 등 여러 페이지에 반복해서 들어갈 요소에 사용한다
    4. 어느 위치에서든 선언할 수 있다.
  4. taglib 지시어
    1. EL에서 자바 클래스의 메소드를 호출하거나 JSTL(JSP 표중 태그 라이브러리)를 사용하기 위한 지시어.

에러페이지 예시

더보기
<!-- 메인 페이지 -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page errorPage="MyErrorPage.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>에러 날 것</title>
</head>
<body>
<%
	String str = null;
	out.println(str.toString());
%>
</body>
</html>
<!-- 에러 페이지 -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page isErrorPage="true" %>   <!-- 에러페이지로 지정. exception 등의 객체를 사용할 수 있게 된다. --> 
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>에러페이지</title>
</head>
<body>
<%
	out.print("에러가 났어요.");
%>
<br>
<%
	out.print(exception.getMessage());   // exception내장 객체 사용. 에러의 종류를 알려줌.
%>
<p>오류 메시지 : <%=exception.getMessage() %></p>
</body>
</html>

주소도 바뀌지 않는다!

 

 

include 예시

더보기
<!-- Include02.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@ include file="Include02Header.jsp" %>
<p>방문해주셔서 고맙습니다.</p>
<%@ include file="Include02Footer.jsp" %>
</body>
</html>
<!-- Include02Header.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%!
	int pageCount = 0;
	void addCount(){
		pageCount++;
	};
%>
<%
	//_jspService 메소드 안에 넣기
	addCount();
%>

<p>
	이 사이트 방문은 <%=pageCount %>번째 입니다.
</p>
<!-- Include02Footer.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <h5 style="text-align:center">copyright</h5>

taglib 예시

더보기
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:forEach var="k" begin="1" end="10" step="1">
	<c:out value="${k}"/><br>   <!-- 결과 : 1 2 3 4 5 6 7 8 9 10 -->
</c:forEach>
</body>
</html>

 

 


스크립트 요소

선언문 (Declaration)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  1. <%! 변수, 메소드 선언 %>
  2. 스크립틀릿이나 표현식에서 사용할 멤버 변수나 메소드를 선언.
  3. 서블릿으로 변환 시, _jspService() 메소드 외부에 선언된다.

 

스크립틀릿 (Scriptlet)

  1. <% 자바 코드 %>
  2. JSP 페이지가 요청을 받을 때 실행해야할 자바 코드 영역
  3. 서블릿으로 변환 시, _JspService() 메소드 내부에 그대로 기술됨.
  4. 메소드 선언 불가. (메소드 선언 시 JspServie() 메소드 안에서 메소드를 선언하는 꼴이 되므로 에러 발생)

예시

더보기
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	int a=2;
	int b=3;
	int sum = a+b;
	
	out.println("2+3 = " + sum);
%>
</body>
</html>

 

표현문 (Expression)

  1. <%= 자바 표현식 %>
  2. 표현식 : 실행 결과로 하나의 값이 남는 문장
  3. 상수, 변수, 연산자를 사용한 수식 또는 반환값이 있는 메소드 호출 등
  4. out.println(표현식 내의 문장); 으로 알아서 치환해주는 것.
  5. 세미클론을 알아서 붙이는 방식이니, 세미클론 ; 붙이면 안 된다!
  6. 리턴 타입이 void인 메소드 호출 불가능 (출력할 것이 없으면 에러 발생)

예시

더보기
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	int count = 0;
%>
<%=++count %>
<br>
<b>
	Today is date:
	<%=new java.util.Date() %>
</b>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import = "java.util.Date" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%=new Date() %>
</body>
</html>

 

 

 


주석

<%-- Jsp 주석 --%>

//Jsp 주석

 

getters and setters 자동으로 만들기

우클릭 -> source -> generate getters and setters