当前页面: 开发资料首页 → Netbeans 专题 → 使用 NetBeans IDE 5.0 开发 Web 应用程序快速入门指南
摘要: 使用 NetBeans IDE 5.0 开发 Web 应用程序快速入门指南 反馈 示例项目 想先接触一下 J2EE 项目吗?在 IDE 中,选择 File > New Project,然后展开 ...
示例项目 |
想先接触一下 J2EE 项目吗?在 IDE 中,选择 File > New Project,然后展开 Samples 文件夹。IDE 中包含 Java BluePrints Solution Catalogue 中的一些示例。 |
本教程介绍创建具有容器管理持久性的实体 Enterprise JavaBeansTM(CMP实体Bean)组件的基本步骤。我们将使用 NetBeansTM IDE 5.0 从现有的 Apache Derby 数据库生成 CMP 实体 Bean。然后创建一个简单的会话 bean 来访问数据库信息和 Web 模块客户端。
此教程将对 NetBeans IDE 5.0 中的 J2EE 开发特性进行快速浏览,它不是编写企业级应用程序的教学指南。虽然不需要任何 J2EE 基础知识就可以学习本教程,但是对于初学者最好从 J2EE Tutorial in NetBeans IDE 开始学习。
注意: 本教程设计为和 Sun JavaTM System Application Server 8.2 及其捆绑的数据库服务器 Apache Derby 一起使用早期版本的 Sun Java System Application Server 使用 PointBase 作为捆绑数据库服务器。要使用 PointBase 完成本教程,请参见 NetBeans IDE 4.1 Quick Start Guide for J2EE Applications。
本文档包括如下主题:
开始之前,必须确保您具备所有必要的软件。还必须配置 Derby 数据库和填充用来生成 CMP 实体 Bean 的数据库表。
首先,需要在计算机上安装 Sun Java System Application Server Platform Edition 8.2 (下载)。
注意: 如果 IDE 运行在 JDK 5.0 上,则应用服务器还需要使用 JDK5.0 中的虚拟机。为了设置 IDE 使用的 JDK,需要打开 IDE_INSTALL_DIR/etc/netbeans.conf 并且需要在 netbeans_jdkhome 属性中输入 JDK 的路径。为了设置应用服务器使用的 JDK,编辑 AS_INSTALL_DIR/config/asenv(.bat) 文件并更改 AS_JAVA 环境变量。
安装完应用服务器以后,需要向 NetBeans IDE 注册它。请注意,如果下载和安装的是同时捆绑应用服务器的 NetBeans IDE 版本,则不必执行此步骤。IDE知道捆绑的应用服务器的位置。
启动应用服务器的步骤:
在本教程中,您将通过 Derby 数据库服务器包含的一个表来生成 CMP Bean。Derby 数据库服务器包含在下载的 Sun Java System Application Server 8.2 中。
注意: 如果改变了 sample 数据库,可以使用此 SQL 脚本重新填充它。
编写 Enterprise Bean 的代码很容易。IDE 为您考虑了所有实现细节,所以您可以集中精力于编写 EJB 模块的业务逻辑代码。
在本示例中,将创建一个企业应用程序项目作为 Web 模块和 EJB 模块的容器。企业应用程序模版使您能自动为 Web 模块和 EJB 模块创建项目。
现在来生成访问 sample 数据库的实体 Bean。程序要访问的每一个表都需要一个实体 Bean。
现在创建一个会话 Bean,用它来处理 Web 应用程序客户端和实体 Bean 中的信息之间的访问。首先创建一个空的会话 Bean,生成对实体 Bean 的调用,然后添加一些业务方法。
private ejb.CustomerLocalHome custHome;
custHome = lookupCustomerBean();
元素 | 值 |
方法名 | getCustomerInfo |
返回类型 | String |
参数 | int custId |
异常 | javax.ejb.FinderException |
public String getCustomerInfo(int custId) throws javax.ejb.FinderException { ejb.CustomerLocal customer = custHome.findByPrimaryKey(new Integer(custId)); return "Name:" + customer.getName() + ", E-mail: " +customer.getEmail(); }
最终的 CustomerFacadeBean.java 文件应该像此处的一样。
现在需要编写能为实体 Bean 提供用户界面的 Web 模块。Web 模块包含一个使用户能够通过客户号查找客户的 Servlet。
上一节中,在调用 Enterprise Bean 时我们让 IDE 生成内联查找代码。在本节中,我们将创建 IDE 生成对 Enterprise Bean 的调用时使用的自定义服务定位器。服务定位器没有任何特殊功能,但是可以定制企业应用程序查找 Enterprise Bean 的方式。
在最后一步中,向 Web 模块添加 Servlet,通过该 Servlet 可以查找和显示 CUSTOMER 表中的每个客户的信息。
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Servlet customerDetail</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Servlet customerDetail at " + request.getContextPath () + "</h1>"); String customerNr = request.getParameter("customer_nr"); if((customerNr != null) && !(customerNr.equals(""))) { try{ ejb.CustomerFacadeRemote custFacade = lookupCustomerFacadeBean(); out.println("Customer's info for nr. " + customerNr + ": " + custFacade.getCustomerInfo( Integer.parseInt(customerNr))); }catch(javax.ejb.FinderException ex){ out.println("Customer with nr. " + customerNr +" not found"); } } out.println("<form>"); out.println("Customer number: <input type='text' name='customer_nr' />"); out.println("<input type=submit value=Select />"); out.println("</form>"); out.println("</body>"); out.println("</html>"); out.close(); }
最终的 CustomerDetail.java 应该像此处一样。
现在可以把企业应用程序部署到应用服务器中了。不需要再对部署描述符进行配置。IDE 已经对部署描述符进行了配置,并为企业应用程序准备好连接池和数据源。
默认情况下,Web 应用程序运行时显示它的 index.jsp 页面。由于我们的 index.jsp 是空白的,因此我们让 CustomerBook 项目显示 CustomerDetail。
将会在外部浏览器中看到如下的页面。当键入某个客户号并按下 Enter 键时,页面将显示客户的信息。
一些常见问题包括:
注意: 通过进入 Runtime 窗口,右键单击应用服务器节点,然后选择 View Server Log,可以查看服务器日志。
有关使用 NetBeans IDE 5.0 的更多信息,请参见以下参考资料:
要发送评论和建议、获得支持和随时获得关于 NetBeans IDE J2EE 开发特性的最新发展情况,请加入 nbj2ee@netbeans.org 邮件列表。