JSP/JSP 정리

[JSP] JSP(Java Server Page) 란?

h0-0cat 2023. 5. 29. 22:17
728x90

JSP(Java Server Page)란?

 

JSP는 Java Server Pages 의 약자이며

HTML 코드에 JAVA 코드를 넣어 동적 웹페이지를 생성하는 웹어플리케이션 도구이다.

JSP가 실행되면 자바 서블릿(Servlet)으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다.

 

 

 

 

JSP 동작 과정

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

실제로 .jsp파일을 만들어 실행한 후에 변환된 코드를 찾아보자. (경로는 자신의 Workspace안에서 아래와 같다)

D:\java0320\JSPworkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost

 

위의 표는 JSP 기본태그에 대한 설명인데 많이 쓰다보면 외워지기도 하고 표안에 내용을 읽어보면서 의미를 파악하고 많이 써보면서 익혀보면 될 것 같다. 따라서 <% %> 안에 코드를 작성하면 서버에서도 자바코드로 인식을 하게 된다.

 

 

<% %>

  • 스크립트릿(scriptlet) 태그.
  • 모든 자바 코드의 사용이 가능. 단, _jspService() 메서드 내에 포함 되는것을 고려
  • 서블릿 코드로 변환시 모든 html 은 out.write() 형태로 변경됨.
  • HTML 과 스크립트릿을 중간 중간 섞어 사용하는 것도 가능.
  • MVC패턴 적용과 JSTL + EL로 대체 가능.
<%
  String name = request.getParameter("uname");
%>
<h2><%= uname %></h2>
<hr>
<table>
    <% for(Member m : mlist) { %>
        <tr>
            <td><%=m.name %></td>
            <td><%=m.email %></td>
        </tr>
    <% } %>
</table>
 
  • request.getParameter() 는 HTTP 파라미터(Query String) 값을 가져옴.
  • html 중심의 코드 작성을 위해 반복문 사용시 자바 코드와 html 혼용 가능.

 

 


<%= %>

  • 표현(expression) 태그.
  • 웹브라우저를 통해 클라이언트에 전달될(html 응답에 포함될) 자바 표현식을 포함.
  • out.println() 의 인자로 적합한 모든 자바 코드가 가능.
  • 사칙연산, 메서드 호출, 변수값 출력등
  • EL 로 대체 가능
<h2><%= member.getUserName() %></h2>
현재날짜와 시간: <%= java.time.LocalDateTime.now() %>
 

<%! %>

  • 선언(declaration) 태그.
  • jsp 가 서블릿 코드로 변환될때 _jspService() 메서드 안에 들어가게 되므로 jsp 에서는 일반 자바 소스와 달리 멤버변수나 메서드 선언은 기본적으로 불가능.
  • 멤버 변수나 메서드 선언이 필요하다면 사용할 수 있으나 권장되지 않음

 

 

 

728x90