Study/Java&Spring

JSP

kdhoooon 2021. 6. 17. 18:01
  • JSP 는 Servlet으로 바뀌어 작동한다.

 

다음과 같은 JSP 코드가 있다고 했을 때,

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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>sum10</title>
</head>
<body>
<%
	javacode
%>
</body>
</html>

 

지시문

page language="java"를 통해 java로 작성된 다는 것을 알 수 있다.

contentType="text/html; charset=UTF-8" 를 통해 UTF-8 형식을 가진 html 로 반환된다 라는 것을 알 수 있다.

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

 

Scriptlet(스크립트릿)

자바 프로그래밍 코드를 사용할 수 있는 부분이다.

가장 일반적으로 많이 쓰이는 스크립트 요소

<%
	//javacode
%>

 

표현식(Expression)

Java의 변수의 값을 화면에 출력하기 위해 사용합니다. out.parin(변수명) 이렇게 사용하던 것과 같은 결과를 나타낸다.

<%= 변수명 %>

 

선언식(Declaration)

전역변수 선언 및 메소드 선언에 사용

<%!
	//java 메소드
%>

 

주석

JSP 주석인 경우 Servlet 에 포함이 안되므로 소스보기를 통해서 볼 수 없습니다. ( Java 주석의 경우에는 Servlet에 포함은 되나 실행되지 않는 것)

여러줄로도 입력 가능합니다.

<%-- JSP 주석 입니다. --%>

 

JSP의 실행순서


  1. 브라우저가 웹서버에 JSP에 대한 요청 정보를 전달한다.
  2. 브라우저가 요청한 JSP가 최초로 요청했을 경우만 JSP로 작성된 코드가 서블릿으로 코드로 변환한다. (java 파일 생성)
  3. 서블릿 코드를 컴파일해서 실행가능한 bytecode로 변환한다. (class 파일 생성)
  4. 서블릿 클래스를 로딩하고 인스턴스를 생성한다.
  5. 서블릿이 실행되어 요청을 처리하고 응답 정보를 생성한다.

https://beginnersbook.com/2013/05/jsp-tutorial-life-cycle/

 

Java Server Pages (JSP) Life Cycle

« Previous Tutorial: JSP Introduction Next Tutorial: JSP Directives » JSP pages are saved with .jsp extension which lets the server know that this is a

beginnersbook.com

위 링크에서 JSP Life Cycle을 확인해 볼수 있다.

 

 

 

내장객체


  • JSP를 실행하면 서블릿 소스가 생성되고 실행된다.
  • JSP에 입력한 대부분의 코드는 생성되는 서블릿 소스의 _jspService() 메소드 안에 삽입되는 코드로 생성된다.
  • _jspService()에 삽입된 코드의 윗부분에 미리 선언된 객체들이 있는데, 해당 객체들은 jsp에서도 사용 가능하다.
  • response, request, application, session, out과 같은 변수를 내장객체라고 한다.

 

종류

 

'Study > Java&Spring' 카테고리의 다른 글

어노테이션(Annotation)  (0) 2021.06.28
Maven plug in error  (0) 2021.06.24
Scope  (0) 2021.06.17
Request, Response  (0) 2021.06.17
Servlet(서블릿)  (0) 2021.06.11