1.1 JSP 소개
서블릿을 작성하는 두 가지 일반적인 방법이 있습니다: 명령형 및 선언형 . 우리는 이미 첫 번째 것을 다루었습니다. 이것은 사실 서블릿입니다. 두 번째는 JSP(Java Server Pages)라고 하며 지금부터 이에 대해 알아보겠습니다.
서블릿 JSP 예:
<html>
<body>
<% out.print(2*5); %>
</body>
</html>
우리에게 익숙한 고전적인 서블릿과 별로 비슷하지 않습니까? 이것은 사실입니다. JSP는 Java 코드 삽입(녹색으로 강조 표시됨)이 있는 HTML 페이지입니다 .
서블릿에 자바 코드가 많고 HTML 코드가 적다면 클래식 서블릿을 사용하는 것이 더 편할 것 입니다 . 하지만 서버에서 몇 줄만 변경되는 큰 HTML 페이지가 필요한 경우에는 어떻게 해야 할까요?
이 경우 가장 간단한 방법은 이 HTML 페이지를 만들고 어떻게든 서버에서 바로 그 페이지에서 Java 코드를 실행하는 것입니다.
1.2 JSP 컴파일
다른 예를 살펴보겠습니다.
<html>
<body>
<%
double num = Math.random();
if (num > 0.95) {
%>
<h2>You are lucky, user!</h2><p>(<%= num %>)</p>
<%
}
%>
</body>
</html>
임의의 숫자를 얻고 0.95보다 크면 "You're lucky, user!"라는 텍스트를 인쇄합니다.
여기에서 Java 코드는 파란색으로 강조 표시됩니다 . 일반(강조 표시되지 않음) - HTML 코드 및 빨간색 - 서비스 태그 Java 코드가 있는 위치와 HTML이 있는 위치를 이해하는 데 도움이 됩니다.
이상한 점이 보이시나요? 닫는 중괄호 "}"
는 다른 "code block"
. 그러한 코드를 작성하는 올바른 방법은 무엇입니까? 어떻게 작동합니까?
대답은 매우 간단합니다 :)
웹 서버는 JSP 파일을 찾은 후 이를 클래식 서블릿으로 컴파일합니다. 위의 JSP 페이지를 기반으로 이 서블릿이 생성됩니다.
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {
PrintWriter out = response.getWriter();
out.print("<html> ");
out.print("<body>");
double num = Math.random();
if (num > 0.95) {
out.print("<h2>You're lucky user! </h2><p>(" + num + ")</p>");
}
out.print("</body>");
out.print("</html>");
}
}
웹 컨테이너는 HTML이 텍스트로 바뀌고 Java 코드 삽입이 일반 Java 코드가 되는 서블릿 코드를 생성했습니다!
GO TO FULL VERSION