2.1 JSP 지시어
JSP 파일이 일반 서블릿으로 변환되는 것을 확인했으므로 정상적인 Java 코드를 작성할 수 있습니다. 그리고 이 Java 코드에서 다양한 클래스(예제의 Math)를 사용할 수 있습니다. 이것은 훨씬 더 좋습니다! 그러나 우리는 모든 코드가 서블릿 방식으로 옮겨진 것을 볼 수 있습니다 doGet()
. 그리고 이것은 즉시 몇 가지 질문을 제기합니다.
- 코드가 메서드로 이동되도록 만드는 방법은 무엇입니까
doPost()
? - 방법에 자신의 코드를 추가하는 방법은 무엇입니까
init()
? - 결국 클래스 가져오기를 등록하는 방법은 무엇입니까?
훌륭한 질문과 물론 답변이 있습니다. 바로 JSP 지시문입니다. JSP 내의 모든 비 HTML 코드는 특수 대괄호 <%
및 로 묶어야 합니다 %>
. 모든 JSP 지시문은 템플릿으로 제공됩니다.
<%@ directive %>
다음은 가장 많이 사용되는 페이지 지시문 속성 목록입니다.
예 | 설명 | ||
---|---|---|---|
1 | 수입 | <%@ page import="java.util.Date" %> |
클래스를 가져옵니다 |
2 | 컨텐츠 타입 | <%@ page contentType=text/html %> |
콘텐츠 유형 설정 |
삼 | 연장하다 | <%@ page extends="Object" %> |
기본 클래스를 설정할 수 있습니다. |
4 | 정보 | <%@ page info="Author: Peter Ivanovich; version:1.0" %> |
getServletInfo()에 대한 데이터 설정 |
5 | 완충기 | <%@ page buffer="16kb" %> |
응답 버퍼의 크기를 설정합니다. |
6 | 언어 | <%@ page language="java" %> |
언어를 지정합니다. 기본값은 Java입니다. |
7 | isELigned | <%@ page isELIgnored="true" %> |
EL 스크립트를 비활성화할 수 있습니다. |
8 | isThreadSafe | <%@ page isThreadSafe="false" %> |
스레드세이프를 가리킴 |
9 | 자동 플러시 | <%@ page autoFlush="false" %> |
버퍼 쓰기 관리 |
10 | 세션 | <%@ page session="false" %> |
페이지에 대한 세션을 비활성화할 수 있습니다. |
열하나 | 페이지인코딩 | <%@ page pageEncoding="UTF-8"%> |
페이지 인코딩을 설정할 수 있습니다. |
12 | errorPage | <%@ page errorPage="errorpage.jsp" %> |
오류 페이지를 설정할 수 있습니다. |
2.2 수입품
재미를 위해 JSP 파일에 몇 가지 가져오기를 추가하고 기본 클래스를 정의해 보겠습니다.
JSP 파일 예:
<%@ page import="java.util.Date" %>
<%@ page import="java.lang.Math" %>
<%@ page extends="com.codegym.MyHttpServlet" %>
<html>
<body>
<%
double num = Math.random();
if (num > 0.95) {
%>
<h2>You are lucky, user!</h2><p>(<%= num %>)</p>
<%
}
%>
</body>
</html>
그 결과는 다음과 같습니다.
import java.util.Date;
import java.lang.Math;
public class HelloServlet extends com.codegym.MyHttpServlet {
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> ");
}
}
공장. 엄청난!