다음 코드는 JavaFX 프로세스 명령줄 매개변수의 예를 보여줍니다. 참고하시면 됩니다.
1. 개요
JSP 파일은 3개의 주요 명령어와 9개의 주요 객체, JSP 표현식을 HTML 문장으로 결합하여 구성된 파일이다. 쉽게 말하면 Java 코드 + HTML 문 입니다.
2. 동작 원리
각 JSP 페이지에 접근하면 JSP 엔진에 의해 서블릿 소스 프로그램으로 변환되고, 소스 프로그램은 서블릿 클래스 파일로 컴파일된다. 이후의 실행 과정은 일반적인 서블릿의 실행과 동일합니다. 서블릿 엔진은 클래스 파일을 로드하고 실행을 위해 변환합니다.
3. 9개의 객체
JSP에는 선언 없이 사용할 수 있는 9개의 객체가 내장되어 있습니다.
(1) 요청: 실제로는 HTTPServletRequest입니다.
(2) 응답: 실제로는 HTTPServletResponse입니다.
(3) pageContext: 현재 JSP 페이지를 나타내며 현재 JSP 페이지의 거의 모든 정보를 포함하며 이 객체에서 8개의 다른 객체도 얻을 수 있습니다.
(4) session : 브라우저와 서버간의 세션을 나타내며, HttpSession의 객체이다.
(5) out : 이 객체의 메소드를 통해 페이지에 텍스트 정보나 HTML 코드를 직접 출력할 수 있습니다.
(6) 애플리케이션: 현재 WEB 애플리케이션을 나타내며 ServletContext 객체입니다.
(7) 예외: 을 선언한 후 이 객체를 통해 예외 정보를 출력할 수 있습니다.
(8) config: 현재 JSP에 해당하는 Servlet의 ServletConfig 객체입니다. 현재 JSP의 구성 매개변수에 접근하기 위해서는 매핑 접근이 필요합니다.
(9) 페이지: 현재 Jsp에 해당하지만 객체 유형의 서블릿 객체에 대한 참조입니다.
가장 일반적으로 사용되고 중요한 네 가지 개체는 해당 범위에 따라 다음과 같습니다.
PageContext: 범위는 현재 JSP 페이지입니다. 을 통해 소개된 파일의 변수도 현재 페이지에서 접근할 수 있습니다. 그러나 pageContext.include("file")을 통해 파일에 도입된 변수와 매개변수는 현재 페이지에서 직접 사용하거나 수정할 수 없습니다. 이 메서드의 핵심은 파일의 내용을 그대로 현재 페이지에 추가하는 것입니다. 현재 페이지에 HTML을 추가하는 것으로 이해될 수 있습니다. 이 위치에 페이지가 직접 연결됩니다.
요청: 범위는 요청 전달 프로세스 동안 항상 유효합니다.
세션: 범위는 브라우저와 서버 간의 세션입니다. 이는 브라우저를 열고 닫을 때 직관적으로 반영됩니다. 적용 사례에는 쇼핑 웹사이트에 장바구니를 구현하는 것이 포함됩니다.
애플리케이션: 현재 애플리케이션이 서버에 로드된 경우에만 유효합니다. 응용 프로그램이 서버에서 제거되거나 다시 로드되고 서버가 종료되는 등의 현상이 발생하여 개체가 무효화됩니다. 적용 예는 웹 사이트 방문자 수를 계산하는 것입니다.
속성 관련 메소드:
Object getAttribute(문자열 이름)가 지정된 속성을 가져옵니다.
> removeAttribute(문자열 이름)가 지정된 속성을 제거합니다.
setAttribute (문자열 이름, 객체 o) 속성을 설정합니다
4. 세 가지 주요 지침
(1) 페이지: 페이지 정보 선언 또는 콘텐츠 가져오기
① 파일을 Import하는데 필요한 jar 패키지입니다. 외부적으로 추가된 jar 패키지는 일반적으로 웹 프로젝트인 WEB-INFlib에 저장됩니다.
② 세션을 닫으면 기본적으로 세션이 열려 있습니다.<%@ page import="java.util.*"%>③ 현재 페이지에 오류가 있는 경우 '파일' 페이지로 이동합니다. 점프 방법은 요청 전달입니다.
<%@ pagesession="false" %>4 위의 "파일" 페이지는 페이지 오류를 처리하거나 설명할 수 있으며 예외 개체와 함께 사용할 수 있습니다.
<%@ page errorPage="file"%>⑤ 현재 JSP 페이지의 문자 인코딩(JSP 파일 인코딩)
<%@ page isErrorPage="true"%>⑥ 현재 JSP 페이지의 응답 유형(서버에서 브라우저로 보내는 콘텐츠 인코딩)
<%@ page pageEncoding="utf-8"%>7 EL 표현식 사용 여부, 일반적으로 false
<%@ page contentType="text/html; charset=utf-8"%>⑧ JSP 페이지의 정보를 지정하고, getServletInfo() 메소드를 사용하여
<%@ page isELInored="false" %>
(2) include 지시문: 다른 파일을 포함하고 현재 페이지와 병합합니다. 이러한 파일에는 일반적으로 텍스트, JSP 또는 기타 형식 파일이 포함됩니다.
<%@page info="this JSP info" %>① 정적 도입: JSP 페이지 번역 시 현재 JSP 페이지에서 변환된 서블릿 소스 파일에 다른 소스 파일을 병합하도록 JSP 엔진에 알립니다. 두 개의 소스 파일이 하나의 서블릿 소스 파일로 병합됩니다. "파일"은 상대 경로입니다.
<%@ include page="file"%>
②动态引入:该句被执行时程序通过请求转发跳转到"file",执行当中的内容之后再返回执行当前页面的剩余部分,实际是两个Servlet源文件
<jsp:include page="file"></jsp:include>
(3) taglib: 能够让用户根据需求自定义新的标签,便于功能的实现,但因此也导致了代码易读性不高。
5.其它
(1) JSP表达式:可以直接将表达式中的内容显示在浏览器中
<%= "Hello World!" %>
(2) 声明函数
<%! pulic void function(){ out.println("Hello World!"); }%>
(3)注释
<!-- 客户端注释,客户端查看源可以看到 -->
<%-- 服务端注释,客户端查看不到 --%>