Back-end/JSP

JSP) JSP란? 특징, 구성, 동작원리, 프로젝트 만들기

luana_eun 2022. 1. 20. 02:31
728x90

1. JSP (Java Server Page)

자바 서버 페이지  => 자바와 HTML을 결합해서 보여준다. 

 

처음(?)에는 서블릿(Servlet)이라는 동적 웹 구현 기술이 있었는데,

후에 ASP의 장점을 수용해서 유저인터페이스 구현이 한층 더 쉬워진 JSP가 개발되었다. 

따라서 서블릿과 함께 구동하며 서블릿의 기능을 그래도 사용할 수 있다.

     * 서블릿(Servlet)= Server + Applet : 자바로 웹페이지를 실행할 수 있도록 하는 동적 웹 구현 기술. 

                                                    자바로만 이루어져있고, HTML을 자바 안에서 생성하여 화면 내용구성이 어렵다. 

 

아래 JSP코드를 보면 자바와 HTML이 같이 있는 것을 볼 수 있다. 

<body>
	<%
	String[] s = { "가", "나", "다", "라" };
	
	for(int i=0; i<s.length; i++) {
		%>
		<br>out.println(<%= s[i] %>);
		<%
	}
	%>
</body>

 

동작방식

JSP페이지 요청 -> JSP컨테이너가 JVM을 통해 자바코드를 실행 -> 결과를 HTML로 반환

                                                            <%  %>                     <%=  %>

 

*JSP컨테이너: 서버. 웹 생성부터 종료까지 모두 처리하는 대상. ex) 톰캣, 

* JVM: 자바 가상 머신

 

 

 

2. JSP 특징

JSP특징은 곧 자바의 특징과 같다. 

1) 강한 이식성

    어떤 운영체제에서도 사용이 가능하므로 다른 플랫폼으로 얼마든지 이식(사용)이 가능.

    모듈화와 모듈의 재사용성이 높다.

2) 서버 자원이 효율적

   스레드 기반의 아키텍처를 사용하여 서버 자원의 효율적인 사용이 가능하다. 

3) 간편한 MVC 패턴

   Model(자바빈즈) - View(JSP) - Controller(서블릿) 으로 구현.

   View부분과 Model부분의 분업, Controller로 비즈니스 로직 분리 => 효율성↑

 

 

 

 

3. JSP 구성

HTTP서버

URL주소 해석 담당.

주소요청이 들어오면 그 주소에 매핑되어있는 콘텐츠를 브라우저에 응답형태로 전송.

근데 URL이 서블릿클래스나 JSP파일이면 웹 컨테이너한테 요청을 넘긴다. (웹 컨테이너 너가 처리해~)

              

웹 컨테이너

JSP파일의 실행 요청을 처리. 

요청된 URL에 맞는 서블릿클래스나 JSP파일을 실행

                                      ↳그 결과를 HTTP서버에 넘겨 → HTTP서버가 응답 형태로 브라우저에 전송

▷ 즉, JSP파일을 실행하기 위해서는 웹 컨테이너가 필수로 필요하고

     웹 컨테이너는 JSP파일을 실행하기 위한 환경을 제공하는 역할을 하는 것이다. 

 

 

 

4. 서블릿 동작 원리

1. URL요청 → 2. 배포서술자(web.xml) → 3. 웹 컨테이너가 해당 서블릿의 스레드를 생성

        → 4. service()메서드 호출  → 5. doGet()이나 doPost()에서 응답 생성 → 6. 웹서버로 응답 리턴

                    → 7. 클라이언트에 응답 리턴

 

 

 

 

5. JSP프로젝트 생성

Project Exploror 우클릭 > 다이나믹 웹 프로젝트 > 프로젝트 이름짓고 > next > next > 

    Generate web.xml 체크하기 > Finish

 

!잠깐!

web.xml을 체크 안했다면?

프로젝트 우클릭 > Java EE Tools > Generate Deployment Descriptor Stub

web.xml 생성

*WEB.XML이란?

배포 서술자(Deployment)

웹 브라우저가 실행될 때 반드시 거치는 파일로, JSP나 Servlet 설정이 담긴 파일이다. 

728x90