연습 1.3: JavaTM 클래스 차이점 비교

시작하기 전에 연습 1.2: API 사이의 개념적 차이점을 완료하십시오.

이 연습에서는 두 포틀렛 API 사이의 Java 클래스 코딩 차이점을 학습합니다. BookmarkPortlet Java 클래스의 두 버전을 조사하십시오. 두 API 사이의 기본적인 차이점에 주목하십시오.

기본 포틀렛 클래스 가져오기

두 API가 가져오는 포틀렛 클래스가 다릅니다.

IBM 포틀렛 API
import org.apache.jetspeed.portlet.*;
JSR 168 포틀렛 API
import javax.portlet.*;

Java 클래스 상속

두 API는 다른 클래스로부터 상속됩니다. IBM 포틀렛 API는 org.apache.jetspeed.portlet.Portlet 인터페이스의 기본 구현을 제공하는 org.apache.jetspeed.portlet.PortletAdapter를 확장합니다. 이 포틀렛 클래스는 HttpServlet을 확장하므로, IBM 포틀렛은 servlet 유형입니다. JSR 168 포틀렛 API는 javax.portlet.Portlet 인터페이스를 구현하는 javax.portlet.GenericPortlet 클래스를 제공합니다.

IBM 포틀렛 API
public class BookmarkPortlet extends PortletAdapter implements ActionListener
JSR 168 포틀렛 API
public class BookmarkPortlet extends GenericPortlet

요청 및 응답 오브젝트

렌더링(JSR 168 API) 또는 서비스(IBM API) 메소드에서 요청 및 응답 오브젝트의 이름(예: doView() 및 doEdit())이 다릅니다. IBM 포틀렛 API는 PortletRequest 및 PortletResponse 오브젝트를 사용하고 JSR 168 API는 RenderRequest 및 RenderResponse 오브젝트를 사용합니다. RenderRequest 및 RenderResponse는 각각 PortletRequest 및 PortletResponse 오브젝트를 확장하여 공통 기능을 제공합니다.

IBM 포틀렛 API
public void doEdit(PortletRequest request, PortletResponse response)
JSR 168 포틀렛 API
public void doEdit(RenderRequest request, RenderResponse response)

JSP 파일 포함

IBM 포틀렛 API는 PortletContext 오브젝트를 사용하여 JSP 파일을 포함합니다. JSR 168 포틀렛 API는 PortletRequestDispatcher 오브젝트를 사용합니다. 포함 조치는 지정된 JSP 파일을 호출합니다.

IBM 포틀렛 API
getPortletConfig().getContext().include(EDIT_JSP, request, response);
JSR 168 포틀렛 API
PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(jspName);
rd.include(request, response);

포틀렛 데이터

IBM 포틀렛 API는 사용자 데이터를 PortletData 오브젝트에 저장합니다. JSR 168 포틀렛 API는 유사한 정보를 PortletPreferences 오브젝트에 저장합니다.

IBM 포틀렛 API
PortletData prefs = portletRequest.getData()
JSR 168 포틀렛 API
PortletPreferences prefs = renderRequest.getPreferences()

조치 처리

IBM 포틀렛 API에서, Java 클래스는 actionPerformed() 메소드를 제공하여 ActionListener 인터페이스를 구현해야 합니다. JSR 168 포틀렛 API를 사용할 경우, Java 클래스는 processAction() 메소드를 제공해야 합니다. 리스너는 필요하지 않습니다.

IBM 포틀렛 API
public void actionPerformed(ActionEvent event) throws PortletException
JSR 168 포틀렛 API
public void processAction(ActionRequest request, ActionResponse response)

이름 공간 인코딩

이름 공간 인코딩은 포틀렛에서 사용되는 변수가 포털 컨테이너 내에서 고유하도록 하기 위해 사용됩니다. 아래의 인용문은 JSP 파일에서 사용할 이름 공간 인코딩 메소드를 보여줍니다.

IBM 포틀렛 API
Java 클래스: PortletResponse.encodeNamespace()
JSP 파일:   <portletAPI:encodeNamespace/>
JSR 168 포틀렛 API
Java 클래스: RenderResponse.getNamespace()
JSP 파일:   <portlet:namespace/>

이제 연습 1.4: 전개 설명자 차이점 비교를 시작할 수 있습니다.

이용약관 | 피드백
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.