이전에 우리는 JSP 프로그램이 모듈이며 강력한 프레젠테이션 요청 기능을 가지고 있다고 언급했습니다. 완벽한 데이터베이스 액세스를 설정하는 것은 어려운 프로세스이며 JDBC 인터페이스는 이 프로세스를 잘 완료할 수 있습니다. 그러나 JDBC에 포함된 SQL 명령과 마찬가지로 JSP 코드에 포함된 JDBC 코드는 JSP의 기능을 최대한 활용하여 클라이언트를 위한 깔끔하고 간단한 API를 생성할 수 있습니다. 이러한 목적을 달성하기 위해 JSP 작업을 사용하여 데이터베이스 인터페이스 구성 요소를 설정하는 것을 고려할 수 있습니다.
완벽한 JSP 디자인 패턴은 MVC(Model-View-Controller)입니다. 전통적인 3계층 시스템은 다음과 같습니다. 모델은 프로그램 논리 및 데이터용, 보기는 보기용, 컨트롤러는 요청 처리용입니다. 이 모델에 따르면 JSP 프로그램에는 클라이언트-서버 "대화 상자"의 각 "행"에 대한 페이지가 포함되어 있습니다. 일반적인 프로그램에서는 쿼리 페이지, 유효성 검사 페이지, 데이터베이스 삽입 페이지, 데이터베이스 업데이트 페이지 등을 볼 수 있습니다.
이전 글에서는 프로그램의 구조를 보다 합리적으로 만들기 위해 각 페이지에 JDBC를 삽입하는 방법에 대해 논의했습니다. 그러나 JDBC 명령을 통해 전달되는 변수뿐만 아니라 실행 가능한 SQL 명령을 생성하면 프로그램이 더 복잡해질 수도 있습니다.
JDBC가 설계한 JSP 작업
JSP 데이터베이스 작업에 대한 또 다른 접근 방식은 JDBC를 사용하지 않고 데이터베이스에 대한 작업 모음을 만드는 것입니다. 이 접근 방식을 사용하면 두 가지 이점을 얻을 수 있습니다. 첫째, JDBC를 사용할 필요가 없으므로 많은 작업이 단순화됩니다. 둘째, 디자인 및 코드 구성이 더 합리적입니다(예: 가독성, 성능 유연성 및 유지 관리 용이성).
여전히 일부 드라이버가 필요하지만 먼저 위의 내용을 단순화합니다. JSP 프로그램의 작업은 일반적으로 다른 JSP 프로그램 개발자가 작성하고 사용하는 논리 블록이지만 이를 서브루틴으로 사용할 수 있습니다. JSP 작업 사용의 중요성은 특정 기능을 표준화하고 JSP에 포함된 Java 코드의 양을 최소화하는 것입니다.
JSP는 표준 확장 클래스 세트를 제공합니다. 이러한 클래스를 통해 태그 핸들러를 통해 작업을 정의할 수 있습니다. JSP에는 두 가지 Java 인터페이스가 정의되어 있습니다. Tag 인터페이스와 BodyTag 인터페이스는 각각 TagSupport 클래스와 BodyTagSupport 클래스에 의해 실행됩니다.
일반 JSP 목적으로 태그 라이브러리를 생성할 수 있으며, 클래스 지원을 확장하기 위해 태그 핸들러를 구현할 수도 있습니다. 이러한 프로세스를 구현하는 단계는 다음과 같습니다.
먼저 태그 관리자 클래스를 실행합니다:
packagecom.myactions;
(수입 명세서는 여기에 있습니다)
공개 클래스 MyActionTag는 TagSupport {를 확장합니다.
...
}
다음으로, 이 코드를 컴파일하고 클래스 파일을 프로그램의 클래스 라이브러리에 배치합니다. 그런 다음 작업 이름 및 해당 태그 관리자의 클래스와 일치하는 XML 파일인 TLD(Tag Library Descriptor) 파일이 필요합니다.
<태그>
<name>내 액션</name>
<tagclass>com.myactions.MyActionTag</tagclass>
<bodycontent> (무엇이든) </bodycontent>
<속성>내 데이터</attribute>
</tag>
</tag>
관련 평가판
com.myactions.MyActionTag 클래스와 일치하는 TLD인 MyAction이라는 작업을 생성했다고 가정합니다. TLD 파일은 프로그램의 TLD 경로에 있어야 합니다.
JSP 페이지에서 작업을 호출하면 TLD는 해당 작업을 사용할 올바른 클래스를 JSP에 알려줍니다. 이는 매우 편리하며 적은 양의 코드만 필요합니다.
하지만 SQL을 어디에 도입해야 할까요? 먼저 연결 기능을 갖춘 데이터베이스 액세스를 설정해야 합니다. JDBC 2.0 선택적 도구 상자에서 사용할 수 있는 javax 인터페이스를 사용하여 이 작업을 수행할 수 있습니다. JDBC 2.0의 javax.sql.DataSource 클래스는 필요한 연결을 제공합니다.
이 시점에서 SQL은 어디에 있습니까? 콩 속에 있어요. JDBCcreateStatement 및 ReadyStatement를 사용하여 Bean에 메소드를 생성할 수 있습니다. 이 메소드를 공개 벡터로 만들고 SQL 문을 이 메소드에 올바르게 전달하십시오.
요약 데이터베이스 Bean은 조치 본문에 포함된 SQL 문을 실행합니다. SQL 문에 명령문을 전달하거나 이를 사용하여 사전 작업을 수행할 수 있습니다. 태그 관리자를 통해 작업을 수행할 수 있습니다. JDBC는 라이브러리 코드에 포함되어 있으므로 JSP 프로그램에서 명시적으로 사용할 수 없습니다.
언뜻 보기에 이 접근 방식은 JDBC의 Embedded SQL 및 JSP의 Embedded JDBC보다 더 복잡해 보일 수 있지만 SQL 작업을 구축하고 이를 TLD에 저장하므로 모든 JSP 프로그램에서 한 번만 수행하면 됩니다. 이러한 작업. 이것이 이 접근 방식의 장점입니다.
다음 시간에는 JSP 페이지와 세션 간의 데이터 전송에 대해 이야기하겠습니다.