ProgrammingLang/JSP

[JSP] 1. JSP 정의 및 동작 방식

jinkwon.kim 2018. 6. 23. 02:37
728x90
반응형

[JSP] 1. JSP 정의 및 동작 방식


- 본 내용은 http://www.edwith.org/boostcourse-web 의 과정을 공부하면서 정리한 내용입니다.



* JSP 정리 목록 *

[JSP] 1. JSP 정의 및 동작 방식

- [JSP] 2. jsp 기본 문법

- [JSP] 3. redirect 와 forward

- [JSP] 4. jsp의 scope 정리

- [JSP] 5. EL(Expression Language) 과 JSTL(JSP Standard Tag Library)

- [JSP] 6. Maven 이란? 

- [JSP] 7. Maven에서 JDBC를 이용한 DB연결 방법



1. jsp 정의 

  - jsp(java server page)로써 java언어를 사용하여 웹페이지를 구현 가능하게 해주는 방식이다.

  - jsp는 HTML 과  java언어를 혼합하여 사용할 수 있다.

  - 브라우저에서 jsp를 호출 하게 되면 jsp 파일 자체를 보여주는게 아니라. jsp가 servlet 형태로 변화되어 응답하게 된다. 


2. jsp 형태

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%> <%-- 브라우저에 전달한 jsp의 파일 형식을 정의한다 --%> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

<%  

    // servlet의 service에 해당 하는 부분, 즉 화면에 보여지는 부분

System.out.println("_jspService()");


    // 자바 코드를 그대로 사용할수 있다.

 int total = 0;

      for(int i = 1; i <= 10; i++){

        total = total + i;

      }

%>

1부터 10까지의 합은 : <%=total %> //<%= %> 는 서블릿의 out.print(total); 과 동일하다.


<%-- <%! 로 시작하는 것을 선언식이라한다. --%>

<%! // 선언식은 service이외의 메서드 및 필드등을 선언하기위해서 사용한다.

     // 여기에서 생성되는 코드는 service 메서드 밖에 만들어진다.

     // 파일이 변경된 경우 수행된다.

System.out.println("jspInit()!");

}


public void jspDestroy() {

      // 파일이 변견되거나 WAS를 재 실행 할때 수행된다.

System.out.println("jspDestroy()");

}

%>


</body>

</html>


3. jsp의 동작 과정 

  1) 브라우저가 웹서버에 JSP에 대한 요청 정보를 전달한다.

  2) 브라우저가 요청한 JSP가 최초로 요청했을 경우만 JSP로 작성된 코드가 서블릿으로 코드로 변환한다. (java 피일 생성)

  3) 서블릿 코드를 컴파일해서 실행가능한 bytecode로 변환한다. (class 파일 생성)

  4) 서블릿 클래스를 로딩하고 인스턴스를 생성한다.

  5) 서블릿이 실행되어 요청을 처리하고 응답 정보를 생성한다.


4. jsp의 class파일 생성 위치

  - jsp를 용하게되면 다음 경로에 변환된 java servlet로 변환되어 실행된다. 

    jsp 생성 경로          : "eclipseworkspace"\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\"프로젝트명"\test.jsp

    java servlet 생성 경로 : "eclipseworkspace"\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\"프로젝트명"\org\apache\jsp\test.class

                            "eclipseworkspace"\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\"프로젝트명"\org\apache\jsp\test.java


5. jsp lifecyle

  - servlet과 동일하다. 

  1) init

    - jsp에서 mapping되는 함수 이름 "jspInit()"

    public void jspInit() {

    System.out.println("jspInit()!");

    }

  2) service 

    - jsp에서 mapping되는 함수 이름 "jspService()"

    public void jspService() {

    System.out.println("jspService()!");

    } 

  3) destory

    - jsp에서 mapping되는 함수 이름 "jspDestroy()"

    public void jspDestroy() {

    System.out.println("jspDestroy()!");

    } 


* 연결된 글 *

다음 글([JSP] 2. jsp 기본 문법)

728x90
반응형

'ProgrammingLang > JSP' 카테고리의 다른 글

[JSP] 6. Maven 이란?  (0) 2018.08.09
[JSP] 5. EL(Expression Language) 과 JSTL(JSP Standard Tag Library)  (0) 2018.07.24
[JSP] 4. jsp의 scope 정리  (0) 2018.06.24
[JSP] 3. redirect 와 forward  (0) 2018.06.24
[JSP] 2. jsp 기본 문법  (0) 2018.06.23