본문 바로가기
국비 과정/JSP

국비 - 1004 JSP(Java Server Page)

by 코딩호야 2022. 10. 4.

* JSP(Java Server Page)

 

- JSP 기본문법

JSP 는 HTML 태그와 동일하게 모든 태그가 '<' 로 시작하고 '>' 문자로 끝나는 스크립트 지향태그와 
주석 태그 XML 기반의 액션태그 , 커스텀 태그로 구성되고 JSP 는 태그를 이용하여 고유한 문법을 
기술하는 서버 프로그래밍 방식이다.

스크립트 태그 종류            형식                             의미

Directives(지시어)            <% @  %>                   JSP 페이지의 속성을 지정
Declaration(선언)              <%!  %>                      소속 변수 선언과 메서드 정의
Expression(표현식)          <%=  %>                     변수 , 계산식, 함수호출 결과를 문자열 형태로 출력                                                                                                       
Scriptlet(스크립트릿)          <%  %>                     자바 코드 기술
Comments(주석)               <%~~  ~~%>               주석 , JSP 페이지의 설명 기술



- JSP 실행과 라이프 사이클

1. 클라이언트가 JSP 프로그램을 요청하면 JSP 소스를 해당 JSP 서블릿으로 변환 하면서 시작한다.

2. 이미 클래스가 있다면 메모리에 로드되어 있는지 검사한다.
이미 메모리에 로드되어 잇다면 5번을 실행한다.

3. JSP 서블릿 코드를 컴파일 하여 서블릿 코드를 생성한다.

4. JSP  서블릿 클래스를 메모리에 로드한다.

5. 메모리에 로드된 JSP 서블릿을 실행한다.

6. JSP 서블릿의 응답을 생성하여 클라이언트에 응답한다.

  
   . JSP 라이프 사이클 
   
   메서드  기능
   
   _jspInit() 요구되는 자원의 연결  등의 초기화 작업 수행
    .메모리에 로드되지않은 서블릿 요청시 
   
   _jspService() 실제 클라이언트의 요청에 대한 직접처리 수행으로 클라이언트 요청때
    마다 반복 수행
    . 메모리에 로드된 서블릿 요청시
   
   _jspDestory() 웹 서버 또는 어플리케이션이 종료 되는 경우에 메모리에서 
    언로드하는 경우 , JSP 서블릿 종료를 위한 작업 수행
    . 애플리케이션이 종료되어 서블릿 메모리에서 언로드

 

JSP 기본 형식 사용예

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Jsp Test Expression Test</title>
</head>
<body>
<% int year = 365; %>

<% out.println("1 년은 약 몇 주 일까요?"); %>

<% out.println(year / 7); %>
<% out.println("주 입니다."); %>
<br>
<hr size="5" color="green">

<%= year/7 %>			<!-- out.println 역할을  %= 이 해준다. (Jsp 의 Expression 이다 -->
<%= " 주 입니다. " %>

</body>
</html>

 

JSP 쓰는 형식을 보여줌. <%   %> 안에 자바 코드로 기술해서 사용한다.   %=   를 사용하면  out.print

역할을 대신해줄수 있기때문에 편리하게 사용이 가능하다.

 

 

JSP 멤버변수 지역변수 사용 예 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP TEST member variable</title>
</head>
<body>
<% int i = 0; %>

[지역변수] i = <%= ++i %>
<!--  지역변수는 선언을 먼저한 후 사용가능  -->

<p>

<%! int member = 0; %>  

[멤버 변수] member = <%= ++member %>
<!--  멤버변수는 선언을 나중에해도 먼저해도 상관없이 사용가능하다  
	클래스를 load 하는순간 만들어지기때문에 순서의미 X  -->

</body>
</html>

결과를 10번 재실행후

 

지역변수는 계속 1로 나오고 멤버변수는 1씩 증가되서 보여지는것을 확인할 수 있다.

 

 

지역변수는 실행할때마다 초기화 되기 때문에 계속 1로 초기화 되서 보여지는것이고

멤버변수는 맨처음 컴파일할 때 메모리에 올라오면 그다음 프로그램 종료될때 까지 메모리에 저장되어있기

때문에 실행시킬때마다 1씩증가되서 보여진다.

 

 

멤버변수는 함수 밖에있어서 그함수가 호출되던말던 변수가 저장되어있지만 

지역변수는 함수가 호출될 때마다 초기화 된다는 것이다.

 

멤버변수는 클래스를 로드 하는 순간 만들어지기 때문에 선언을 먼저하던 나중에 하던  상관이없다. 

하지만 지역변수는 선언을 먼저해야지만 사용이 가능하다.