Front-end/부스트코스 : 웹 프로그래밍

[부스트코스] 2. DB연결 웹앱 : JSP란?

byolee 2020. 3. 15. 23:12

 

 

< JSP(Java Server Page) 란? >

  • HTML 내에 Java 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 언어
  • 모든 JSP 파일은 실행시 자바 서블릿으로 변환됨
  • 구성요소 : 스크립팅, 지시자, 액션태그

 

JSP의 등장배경

  • 1998년 MS에서 ASP(Active Server Page)라는 쉽게 웹을 개발할 수 있는 스크립트(script) 엔진을 발표
  • 1997년에 발표된 서블릿은 ASP에 비하여 상대적으로 개발 방식이 불편함
  • 1999년 ASP에 대항하고자 썬마이크로시스템즈에서 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>

--- scriptlet : 자바 코드를 입력할 수 있는 부분
<% 
    int total = 0;
    for(int i = 1; i <= 10; i++){
        total = total + i;
    }
%>

1부터 10까지의 합 : <%=total %>

</body>
</html>

 

실행결과

 


JSP의 실행순서

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

 

<%@ 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>
hello!
<%
	System.out.println("jsp");
%>
</body>
</html>

JSP 문법

JSP 페이지에서 선언문(Declaration), 스크립트릿(Scriptlet), 표현식(Expression) 이라는 3가지의 스크립트 요소가 있음

  • 선언문 <%! %> : 전역변수 선언 및 메소드 선언에 사용
  • 스크립트릿 <% %> : 프로그래밍 코드 작성 
    • 선언된 변수는 지역변수 -> Service 메소드 안에 선언되는 변수
    • 주로 프로그래밍의 로직을 기술할 때 사용함
  • 표현식 <%=문장%> : 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>
id : <%=getId() %>
</body>
</html>
<%!
    String id = "u001"; //멤버변수 선언
    public String getId( ) { //메소드 선언
        return id;
    }
%>
<%@ 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>
<%
	for(int i=1;i<6;i++){	
%>
<H<%=i %>>테스트 중입니다.</H<%=i %>>
<%
	}
%>
</body>
</html>





주석 (Comment)

JSP페이지에서 사용할 수 있는 주석 : HTML 주석, Java 주석, JSP 주석

  • <!--comment--> : 웹에서 서비스할 때 화면에 표시되지는 않으나 소스보기에서는 보임
  • //single line , /*multi line*/ : 서블릿으로 실행할 때 실행되지 않음
  • <%--comment--%> : 웹 브라우저 상에서 소스보기를 해도 표시되지 않음, 자바로 변환되지도 않음

강의 링크 : https://www.edwith.org/boostcourse-web/lecture/16702/

 

[LECTURE] 1) JSP란? : edwith

들어가기 전에 마이크로소프트의 ASP(Active Server Pages)와 같은 스크립트 형태의 개발 방법이 인기를 얻게 되면서, 자바 진영에서도 대항하기 위해서 JSP를 발표하... - 부스트코스

www.edwith.org