文件上载过程的客户端检索
服务器和客户间就文件上载过程的通信是通过使用 Ajax 实现的。我们选用 Direct Web Remoting (DWR) 来提供 portlet 中的 Ajax 支持。DWR 是一种面向 Java 开发人员的理想框架,可用来将 Ajax 引入 Web 开发过程中,原因是它可以让浏览器中的 JavaScript 与服务器端的 Java 对象互动。要在 portlet 中使用 DWR,必须执行以下步骤 (更多有关如何配置 DWR 的信息,请参看 参考资料):
Direct Web Remoting 的妙处就在于此:客户机可以和服务器端的 Java 对象交互。
通过 WEB-INF/web.xml 配置 DwrServlet(参见 清单 3)。
在 WEB-INF/dwr.xml 内定义一个或更多的客户机可与之通信的服务器端对象。在 清单 4 中,FileUploadProgressListener 针对 DWR 定义以便客户机可以调用这个自动生成的 JavaScript。此外,只有 getFileUploadStatus 方法可以被客户机调用,另一个公共方法 update 则不允许被访问(请参看 清单 2)。
将与 DWR 有关的 JavaScript 代码包括在 fileupload-view.jsp(参看 清单 5)。
将 DWR 库包括在 portlet 应用程序。
清单 3. 在 WEB-INF/web.xml 中配置 DwrServlet
<!-- DWR servlet --> <servlet> <servlet-name>dwr-invoker</servlet-name> <display-name>DWR Servlet</display-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>false</param-value> </init-param> </servlet> <!-- DWR servlet mapping --> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-patter> </servlet-mappin>
(编辑:aniston)
|