중국시가넷 - 개인 서명 - JSP 사용자 정의 태그 자세히 설명
JSP 사용자 정의 태그 자세히 설명
기본 개념 태그는 JSP 페이지를 간결하고 쉽게 유지 관리할 수 있는 XML 요소입니다. 동일한 JSP 파일이 여러 언어 버전을 지원한다는 것을 쉽게 알 수 있습니다. 태그는 XML 요소이므로 이름과 속성은 대/소문자를 구분합니다. 태그 라이브러리는 유사한 기능을 가진 논리적으로 상호 연관된 태그 모음입니다. 태그 라이브러리 설명자 태그 라이브러리 설명자는 XML 파일입니다. 이 파일은 태그 라이브러리의 클래스와 JSP 의 태그 참조 간의 매핑 관계를 제공합니다. 웹 XML 과 유사한 구성 파일입니다. 태그 처리 클래스는 Java 클래스이며 이 클래스에서 상속됩니다. TagSupport 를 추가하거나 SimpleTag 인터페이스를 확장하면 이 클래스를 통해 사용자 정의 JSP 태그의 특정 기능을 구현할 수 있습니다. 2. 사용자 정의 JSP 태그의 형식은 JSP 컨테이너가 태그 라이브러리의 사용자 정의 동작을 사용할 수 있도록 다음 두 가지 조건을 충족해야 합니다. 2) 지정된 태그 라이브러리에서 사용자 정의 동작을 나타내는 태그를 식별합니다. 3) 이러한 사용자 정의 동작을 구현하는 특정 클래스를 찾습니다. 첫 번째 필수 조건은 tag directive prefix 속성에 의해 수행되는 사용자 정의 비헤이비어가 속한 태그 라이브러리를 찾는 것입니다. 따라서 동일한 페이지에서 동일한 접두어를 사용하는 모든 요소는 이 태그 라이브러리에 속하며, 각 태그 라이브러리에는 태그 라이브러리 문서 또는 페이지에 사용자 정의 태그를 삽입하는 기본 접두사가 정의되어 있으므로 JSP J 를 제외한 접두어 uri 속성을 사용할 수 있습니다 이 uri 에는 TLD 파일을 찾는 문자열 컨테이너가 포함되어 있습니다. TLD 파일에서 웹 응용 프로그램이 시작될 때 태그 라이브러리에 있는 모든 태그 처리 클래스의 이름을 찾을 수 있습니다. 컨테이너는 WEB INF 폴더의 디렉토리 구조에 있는 META INF 에서 시작하여 TLD 로 끝나는 모든 파일을 검색합니다. 즉, 모든 TLD 파일을 찾습니다. 각 TLD 파일 컨테이너에 대해 먼저 태그 라이브러리의 URI 를 가져온 다음 각 TLD 파일과 해당 URI 간에 매핑 관계를 만듭니다. JSP 페이지에서는 URI 속성 값이 있는 태그 라이브러리 지시어를 사용하여 특정 태그 라이브러리를 일치시키기만 하면 됩니다. 3. 사용자 정의 JSP 태그 처리 프로세스: JSP 에 태그 라이브러리를 도입하고 태그 라이브러리를 사용하여 웹 컨테이너에 태그를 지정하고 두 번째 단계의 접두사에 따라 첫 번째 단계에서 선언된 taglib 의 uri 속성 값을 가져옵니다. 웹 컨테이너는 uri 속성을 기준으로 웹 XML 에서 해당 요소를 찾고 요소에서 해당 요소 값을 가져옵니다. 웹 컨테이너는 요소 값을 기준으로 웹에서 해당 요소 값을 가져옵니다. INF/ 디렉토리에서 해당 TLD 파일을 찾고, TLD 파일에서 tagname 에 해당하는 요소를 찾고, 요소에서 해당 요소의 값을 가져옵니다. 웹 컨테이너는 요소 값에 따라 해당 태그 핸들 클래스의 인스턴스를 만들고 doStartTag/ DoEndTag 메서드를 호출하여 적절한 처리를 완료합니다. 4. 태그 라이브러리 생성 및 사용의 기본 단계. 태그 처리기 클래스를 만듭니다. 태그 라이브러리 설명 파일을 작성합니다. Web XML 파일에서 요소를 구성합니다. JSP 파일에 5 개의 태그를 도입합니다. 클래스 설명 태그 처리를 지원하는 클래스는 javax 서블릿 JSP 태그 지원 태그 지원 클래스의 main 속성을 확장해야 합니다. 부모 속성은 부모 태그가 현재 태그와 중첩되어 있는 처리 클래스를 나타냅니다. B pageContex 등록 정보는 웹 응용 프로그램의 javax servlet JSP PageCo 를 나타냅니다. Ntext 객체의 JSP 컨테이너는 doStartTag 또는 doEndTag 메서드를 호출하기 전에 setPageContext 및 setParent 메서드를 호출하여 PageContext 및 Parent 를 설정합니다. 따라서 태그 처리 클래스에서 pageContext 변수에 직접 액세스할 수 있지만 TagSupport 구성 메서드에서는 pageC 에 액세스할 수 없습니다. Ontext 멤버 변수 JSP 컨테이너가 아직 setpageContext 메서드를 호출하여 pageContext 를 초기화하지 않았기 때문에 TagSupport 클래스는 태그를 처리하는 두 가지 방법을 제공합니다. public intdostarttag () throws JSP exception. N public int doendtag () 는 JSP 예외 doStartTag 를 발생시킵니다. 그러나 JSP 컨테이너가 사용자 정의 태그의 시작 플래그를 발견하면 doStartTag () 메서드와 dostarttag () 메서드가 호출되어 프로그램의 후속 프로세스를 결정하는 정수 값을 반환합니다. 태그 SKIP_BODY: 무슨 뜻이죠? & gt 사이의 내용 ... 무시됩니다. B 태그 EVAL _ 본문 _ 포함: 태그 사이의 내용이 정상적으로 실행됨을 나타냅니다. DoEndTag: 그러나 JSP 컨테이너는 사용자 정의 태그의 끝 태그가 발생할 때 doEndTag () 메서드를 호출하고 doEndTag () 메서드는 정수 값을 반환하여 프로그램의 후속 프로세스를 결정합니다. 레이블 SKIP_PAGE: 서 있음을 나타냅니다. 웹 페이지 실행을 중지합니다. 웹 페이지와 JSP 프로그램에서 처리되지 않은 정적 내용을 무시합니다. 기존의 모든 출력은 즉시 클라이언트의 브라우저로 반환됩니다. B Tag _ EVAL _ 페이지: JSP 페이지가 일반 프로세스에 따라 계속 실행됨을 나타냅니다. 사용자 정의 레이블 속성이 레이블에 포함된 경우 이 속성은 레이블 처리 클래스의 멤버 변수로 사용되며 개별적으로 설정되어야 합니다. 속성을 설정하고 읽는 방법 8 태그 처리 클래스를 만들려면 JSP 웹 페이지의 정적 텍스트가 포함된 파일 (즉, 사용자 정의 JSP 태그를 대체하는 텍스트) 을 만들려면 웹 응용 프로그램을 시작할 때 정적 텍스트를 로드하여 태그 처리 클래스 9 를 만드는 방법 JSP 웹 페이지의 정적 텍스트가 포함된 파일을 만드는 방법 Java util 속성 클래스를 사용하여 바꿀 웹 페이지에 사용자 정의 JSP 를 저장합니다. 태그의 정적 텍스트 속성 클래스는 해당 인스턴스를 스트림에 저장하거나 스트림에서 로드할 수 있는 속성 세트를 나타냅니다. 이러한 텍스트는 WEB INF 디렉토리에 key/value 로 저장됩니다. 예를 들어 속성 목록에 key=value 가 저장됩니다. 값은 일반적으로 사용되는 API setproperty (string key string value) 의 10 개 속성 클래스에 대한 문자열 유형입니다. 속성 목록에서 해당 키에 해당하는 속성 값 로드 (I) 를 얻기 위해 속성 getProperty(String key) 를 추가하기 위해 Hashtable 클래스의 put 메서드를 호출합니다. NputStream in) 은 InputStream 객체 (store) 에서 속성 목록을 읽고 속성 목록의 속성 쌍을 출력 스트림 객체에 적절한 형식으로 기록합니다. 기본적으로 ISO 인코딩 형식은 = 쌍으로 나타나는 키/값 및 구분 키/캐리지 리턴을 처리하는 데 사용됩니다. 일반적으로 사용되는 값은 11 개의 ServletContext 클래스의 API getContext(String uripath) 에 대해 서버의 uripath 가 나타내는 ServletContext 객체 getInitParameter(String name) 를 반환하고 set 를 반환합니다 매개 변수 getMineType(String file) 의 값은 파일 매개 변수 getrequest dispatcher (stringpath) 가 나타내는 파일의 MIME 유형을 반환합니다. path 가 나타내는 requestdispatcher 객체 getresourcestres 를 반환합니다 경로에 해당하는 자원을 입력 스트림으로 반환합니다. 가져오기에서 객체는 모든 형태의 데이터가 될 수 있습니다. Path 매개 변수는/어떻게 ServletContext 로 시작하고 컨텍스트 루트 12 에 상대적인 등록 정보 파일을 읽고 저장해야 합니까? Java util Properties 클래스 객체를 만들고 ServletContext 객체를 가져옵니다. 속성 파일을 입력 스트림으로 입력 스트림 객체로 읽고 입력 스트림 객체를 속성 객체로 로드합니다. Properties 객체를 ServletContext 객체에 저장합니다. 13 웹 응용 프로그램이 시작될 때 정적 텍스트를 로드하는 방법, http 서블릿 클래스를 상속하는 하위 클래스를 만듭니다. 웹 XML 에서 이 서블릿을 구성할 때 시작 시 속성 some class some package some 을 로드하도록 설정합니다. Lass 는 이 서블릿의 init () 메서드에 Java util Properties 클래스를 만들어 현재 웹 응용 프로그램의 ServletContext 객체를 가져오고 WEB INF 디렉토리의 등록 정보 파일을 inputstreaminputstreamin = context 로 읽습니다 Ceassing (webinf/some properties properties) 은 입력 스트림을 property 객체로 로드하고, PS load(in) 는 property 개체를 상위 상위 상하문집 등록 정보 (attributenameps properties) 에 저장합니다 XIV 태그 처리 클래스를 만들고 필요한 리소스를 가져오는 방법, javax servlet JSP *;; Javax 서블릿 가져오기 *; Java util 가져오기 *; 자바 io 가져오기 *; TagSupport 클래스를 상속하고 doStartTag()/ DoEndTag () 메서드를 다시 작성하여 ServletContext 객체에서 Java util Properties 객체를 가져오고, Properties 객체에서 key 에 해당하는 속성 값을 가져오고, 가져온 속성을 적절하게 처리합니다 약어 TLD 는 사용자의 태그 라이브러리를 XML 파일 형식으로 정의합니다. TLD 파일의 요소는 a, b, c 클래스, 태그 속성 및 태그 라이브러리 요소로 나눌 수 있으며 태그 라이브러리에 대한 정보를 설정하는 데 사용됩니다. 공통 속성에는 shortname: 태그 라이브러리의 기본 접두사 이름 지정 (prefix) B uri: Set Ta 가 있습니다. 라이브러리의 고유한 액세스 표시기 레이블 요소는 레이블을 정의하는 데 사용됩니다. 공통 속성은 이름: 설정 태그의 이름입니다. B tagclass: 레이블에 대한 처리 클래스를 설정합니다. C bodycontent: 태그의 본문 내용 설정) empty: 태그에 본문이 없음을 나타냅니다. ) JSP: JSP 프로그램 코드를 태그 본문에 추가할 수 있습니다. ) tagdependent: Tagdependent: 태그 내의 내용이 태그 자체에 의해 처리됨을 나타냅니다. 태그 속성 요소는 태그의 속성을 정의합니다. 일반적인 속성은 a 이름: 속성 이름 b 필수: 속성 필수 여부 기본값 falseCortexpvalue: 속성 값이 요청 시간 표현식일 수 있는지 여부