用JBuilderX开拓WEB应用措施
当前位置:以往代写 > JAVA 教程 >用JBuilderX开拓WEB应用措施
2019-06-14

用JBuilderX开拓WEB应用措施

用JBuilderX开拓WEB应用措施

副标题#e#

Borland公司的JBuilder是世界领先的Java开拓情况。今朝最新版本JbuilderX是一个开拓企业级Java应用的综合性跨平台情况,它在使JBuilder屡获殊荣的机能上,增加了许多新的特性,从而成为今朝最强大的 Java可视化开拓情况。本文将通过一个简朴的WEB项目,使您快速进入JBuilderX的殿堂。

JBuilderX的成果极其富厚,本文不会也不行能八面见光地先容所有的成果,只会对涉及例子项目开拓的一些容易忽视或不容易把握的成果展开先容,而对一些常见的成果将一点而过,或不提及,相信您可以在项目开拓操纵进程中自然把握那些根基的成果。您也可以通过JBuilderX在线辅佐文档来相识和把握这些内容,推荐您阅读help->JBuilder toturials中前4个基本教程。

项目先容

固然JBuilderX可以用于开拓桌面、无线、applet等应用措施,但80%以上的利用者用它开拓J2EE的WEB应用措施,所以我设计了一个简朴的WEB应用项目,亦步亦趋地教育您开拓出一个可以运行的WEB应用措施。

这个WEB项目只包括一个用户登录的成果,其系统框图如下:

用JBuilderX开辟WEB应用法子

图1. 系统框图

个中web应用处事器为tomcat4.1,数据库处事器为oracle10g。

这个项目包罗以下内容:

1) 用户表T_USER:用于生存用户的信息

2) 登录页面login.htm:让用户录入用户名和暗码

3) 用户信息javaBean类UserBean:包罗三个属性,即用户ID和用户暗码及用户名

4) 获取数据库毗连类DSBean:获取数据库链接,以便操纵数据库

5) 用户登录处理惩罚页面execute.jsp:将用户id,用户暗码和数据库中的较量,发生功效页面

6) 异常处理惩罚页面error.jsp:当产生异常时转入异常处理惩罚页面,显示人性化的错误信息

项目中各项部门的协作干系如下图:

用JBuilderX开辟WEB应用法子

图2. 系统中各部门的协作干系

建设数据库

首先以system用户登录oracle数据库,建设数据库用户:

create user test identified by test;grant connect,resource to test;

用户信息表T_USER,该包罗三个字段,其表的布局如下:

字段名 范例 注释
user_ID varchar2(10) 用户ID
user_name varchar2(20) 用户名
password varchar2(30) 用户暗码

以test用户登录数据库,运行以下语句SQL,建设用户信息表:

create table T_USER ( USER_ID VARCHAR2 (10) PRIMARY KEY, USER_NAME VARCHAR2(20), PASSWORD VARCHAR2(30))/

往表中插入两条用户信息:

insert into T_USER values(‘zhangshang’,’张三’,’123456’);insert into T_USER values(‘lisi’,’李四’,’abc’);commit;


#p#副标题#e#

建设项目工程

建设工程:File->New Project呈现下面的界面:

用JBuilderX开辟WEB应用法子

图3. 建设项目工程

项目取名为loginPro,安排在D:/loginPro路径中,一路按Next就可以了。

建设完项目工程后,在工程下建设一个Web模块:File->New…->左边树选择Web->双击右边窗口的Web Module(WAR)项目->在弹出的窗口中点选Create empty Web Module,按Next->在弹出的窗口中按以下配置:

用JBuilderX开辟WEB应用法子

图4. 配置web模块路径和技能尺度

web模块的名称为loginWeb,安排在项目路径下的loginWeb子文件夹中,配置Servlet和JSP的版本。在配置完后直接点击Finish完成Web模块的建设。

出格提醒读者,假如您开拓的是Web项目,必然要建设Web模块,只有这样,在工程中开拓的Java类在Rebuild后,JBuilderX才会挪用Ant东西,将编译后的class文件同步到web模块的WEB-INF目次中。笔者曾经有一个伴侣向我报怨说用JBuilder开拓WEB措施很贫苦,本来他没有在工程中建设Web模块,每次变动类后,都不辞辛苦地将编译后的类手工拷到到WEB应用的WEB-INF\classes目次下,殊不知,金光大道已经开通,而本身还在羊肠小道里挣扎。

编写类

本项目中包罗两个类,一个是用户信息类UserBean.java,另一个是获取数据库毗连类DSBean.java。下面我们来编写这两个类:

首先编写UserBean.java类:File->New Class…弹出如下的窗口:

用JBuilderX开辟WEB应用法子

图5. 编写类领导

#p#分页标题#e#

在类领导的窗口界面上录入类的名字UserBean,包名默认的是项目标名称,您可以变动其他更用意义的包名,我们简朴地接管默认的包名。按OK后,在编辑窗口中获得如下的类代码:

package loginpro;public class UserBean { public UserBean() { }}

下面我们给UserBean类添加3个属性:在UserBean的编辑窗口的底部点击Bean标签页->选择Bean标签下的Properties的子标签页->在Properties页面中通过Add Property来添加类的属性,点击该按钮弹出属性窗口->在此窗口中添加属性。

不外笔者觉得这种通例的给类添加属性的要领较量鸠拙,效率很低,您可以直接通过在类中键入全局变量,然后再按上面的步调切换到Properties标签页,JBuilderX会自动将全局变量列在这个页面中,通过钩选Getter和Setter列中的复选框,变量的set和get要领就自动发生了,笔者在编写措施的时候选择回收这种要领。添加全局变量后,UserBean代码如下(个中粗体赤色为新增的代码,下同):

package loginpro;public class UserBean
{
 private String userID;
 private String userName;
 private String password;
 public UserBean() { }
}

切换到Properties页面,钩选所有的Getter和Setter

用JBuilderX开辟WEB应用法子

切换回代码页面后,属性的get和set要领都自动生成了:

...
public class UserBean
{
 ...
 public String getPassword()
 {
  return password;
 }
 public String getUserID()
 {
  return userID;
 }
 public String getUserName()
 {
  return userName;
 }
 public void setUserName(String userName)
 {
  this.userName = userName;
 }
 public void setUserID(String userID)
 {
  this.userID = userID;
 }
 public void setPassword(String password)
 {
  this.password = password;
 }
}

#p#副标题#e#

编写好UserBean后我们再来编写获取数据毗连的DSBean,在编写这个类之前,因为该类需要用到Oracle的JDBC包,所以我们需要将oracle JDBC的jar包加载到类库中,再将其引入项目工程里。

今朝oracle最新的版本是oracle10g,假如您安装了oracle10g,则JDBC包位于[ORACLE_HOME]\jdbc\lib\classes12.jar,假如您未布置数据库,您可以到这儿下载JDBC驱动包,它是向下兼容的。假设我们已经将其下载到D:\extra目次中,我们通过以下操纵将其加载到JBuilderX的类库中:Tools->点击Configure Libraries弹出Configure Libraries窗口,如图6,首先点击Configure Libraries窗口左下方的New…弹出New Library Wizard窗口,在窗口中给该类取一个名字叫jdbcLib,再点击该窗口的Add…按钮弹出Select One or More Directories窗口,定位到D:\extra目次,选取class12.jar,然后确认即可。

用JBuilderX开辟WEB应用法子

图6. 添加新类到JBuilderX类库中

接下来我们需要在项目中引用类库中这个新的jar包,这样项目才可以会见这个JDBC的jar包:Project->Project Properties在弹出的窗口左边的树中选择Paths,凭据图7的操纵完成引用的任务:

用JBuilderX开辟WEB应用法子

图7. 添加jdbc的jar包到项目中

需要指出的是,假如项目需要引用大量的外部jar包,则可以将这些jar包组织到一个目次下,然后将整个目次插手到类库,在项目工程中引用该目次对应的类库名就可以在项目中挪用这些包了。当Rebuild项目时,JBuilderX还会将这些包同步到WEB应用的目次中。

此刻万事俱备了,我们开始编写DSBean.java:

package loginpro;
import java.sql.*;
public class DSBean
{
 public static Connection getConnection() throws SQLException
 {
  try
  {
   Class.forName("oracle.jdbc.driver.OracleDriver");
  }catch (ClassNotFoundException ex)
  {
   System.out.println("数据库驱动措施没有找到。");
  }
  return DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.189:1521:ora9i", "test", "test");
 }
}

我的数据库装在IP为192.168.0.189的呆板上,数据库的SID是ora9i,读者在编写时必需按照您的数据库的详细环境作相应的变动。

编写完这两个类后,我们可以在项目工程面板中右击loginPro.jpx,选择Rebuild,来编译这两个类,编译完后的类不单会输出到D:\loginPro\classes目次下,同时还将同步到D:\loginPro\loginWeb\WEB-INF\classes目次中,而且将会将项目中引用的外部包拷贝一份到D:\loginPro\loginWeb\WEB-INF\lib目次下。值得留意的是,假如用Make呼吁来编译,则类只会输出到D:\loginPro\classes中,而不会同步到D:\loginPro\loginWeb\WEB-INF\classes目次。对J2EE的web目次布局的探讨逾越本文内容,请自行阅读相关资料。

登录页面和处理惩罚页面

编写用户登录的页面login.htm:File->New File…弹出以下对话框:

用JBuilderX开辟WEB应用法子

图8. 建设login.htm

在编辑窗口键入以下的页面代码:

#p#分页标题#e#

<html>
<body>
 <form name="form1" method="post" action="execute.jsp">
  <input type="text" name="userID">
  <input type="text" name="password">
  <input type="submit" name="Submit" value="提交">
 </form>
</body>
</html>

#p#副标题#e#

该登录页面接管用户输入的用户id和暗码,提交给execute.jsp页面处理惩罚,下面我们来编写execute.jsp:File->New…->在Object Gallery窗口中左边的树中选择Web->在右边窗口中双击JavaServer Page图标将弹出如下的对话框:

用JBuilderX开辟WEB应用法子

图9. JSP页面领导

在该对话框中的Name中键入JSP页面的名字:execute,点击Next,在弹出的页面中再点击Next,进入领导的第3步,在这步中,答允您配置页面引用的JavaBean:

用JBuilderX开辟WEB应用法子

图10. 配置JSP页面引用的JavaBean

点击OK后,loginpro.UserBean类被界说为该页面的一个JavaBean,其id默认名为bean0,我们将其改为userBean,列表中还答允您指定这个JavaBean的浸染域,我们选择session。直接点击Finish获得execute.jsp文件的代码:

<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
 <title>execute</title>
</head>
<jsp:useBean id="userBean" scope="session" class="loginpro.UserBean" />
<jsp:setProperty name="userBean" property="*" />
<body bgcolor="#ffffff">
</body>
</html>

需要指出的是<jsp:setProperty name="userBean" property="*" />以参数名匹配的方法吸收客户端发送过来的参数值,在这里,当login.htm提交后userBean的userID和password两个将被配置为login.htm页面表单中两个输入框的值。

吸收到客户端的值后,措施将其和数据库中T_USER表中的记录作较量,以便查明是否是正当用户,此刻我们给execute.jsp添加代码,完成这些处理惩罚事情:

<%@ page contentType="text/html; charset=GBK" errorPage="error.jsp"%>
<%@ page import="java.sql.*"%>
<%@ page import="loginpro.DSBean"%>
<html>
<head>
...
<jsp:setProperty name="userBean" property="*" />
<body bgcolor="#ffffff">
<% Connection conn = DSBean.getConnection();
 String sqlStr = "select count(*) from T_USER where USER_ID=? and password=?"; PreparedStatement pStat = conn.prepareStatement(sqlStr);
 pStat.setString(1,userBean.getUserID());  
 pStat.setString(2,userBean.getPassword());
 ResultSet rs = pStat.executeQuery();
 if(rs.next() && rs.getInt(1) == 1)
  out.print("您是正当的用户,接待您的到来!"); else out.print("暗码差池,可能您还没有注册为系统的用户");
%>
<body bgcolor="#ffffff">...

我们只是简朴地将userID和password的值发送到数据库中举办较量,在真正的应用中,必然事先要查抄userID和password的值是否有单引号(’),假如有,必需将其转换成两个单引号(‘’),不然将发生安详裂痕问题,有乐趣的伴侣可以在网上查找相关资料。

最后的一个JSP是处理惩罚错误和异常的error.jsp,它的代码如下:

<%@ page contentType="text/html; charset=GBK" isErrorPage="true" %>
<%@ page import="java.sql.SQLException"%>
<html>
<head>
<title>error</title>
</head><body bgcolor="#ffffff">
<%
 if( exception instanceof SQLException ) out.println("产生了数据库操纵异常,请和系统打点员接洽"); else out.println("产生了不行知的异常,请和系统打点员接洽"); %>
</body>
</html>

当execute.jsp发明数据库操纵或其他的异常时,将会跳转到该错误处理惩罚页面,打印出可读性强的错误信息。

#p#分页标题#e#

由于JBuilderX对页面可视化的支持不强,您也可以在Dreamweaver中完成HTML及JSP可视化内容的开拓,而在JBuilderX中完成逻辑处理惩罚部门的开拓,究竟这个世界永远需要协作。

#p#副标题#e#

在JBuilderX中运行WEB措施

至此我们已经完成了项目中所有措施的开拓事情,下面我们将在JBuilderX中运行该WEB措施。在运行措施之前,必需担保已经配置了WEB处事器。Project->Project Properties…->在弹出窗口左边树中配置Server:

用JBuilderX开辟WEB应用法子

在Single Server for all services in project选项里选择Tomcat4.1,其默认的配置是Tomcat4.0。假如您给JBuilderX设置了其他的WEB处事器,如WebSphere或WebLogic,它们城市列在该下拉框中。可是,我将不拟对此展开接头,一个主要原因是,固然JBuilderX答允您在开拓情况中配置并运行这些处事,但由于这些重量级的WEB处事开启或封锁都需要很长的时间,给测试带来了很大的未便。所以我们一般的作法是先在轻量级的WEB处事(一般是Tomcat中)中完成测试,再将其陈设到真正的企业级WEB处事器中去。

更进一步,我们将不在JBuilderX中运行Tomcat测试,而是通过外部的Tomcat来测试,不然当JBuilderX开启测试的WEB处过后会给变动措施带来了未便。关于tomcat设置接头已经超出了本文范畴,有乐趣的伴侣可以自行研究。为了简朴,本文将在JBuilderX情况中完成测试。

在编辑窗口中鼠标右击login.htm的标签,选择Web Run using “execute”:

用JBuilderX开辟WEB应用法子

图11. 运行WEB处事

JBuilderX将自动完成WEB设置信息的配置并在8080端口启动WEB处事,login.htm登录页面展示出来接管用户的录入,我们以zhangshang/123456登录:

用JBuilderX开辟WEB应用法子

图12. 用户登录

假如此时数据库还没有启动则execute.jsp转到error.jsp,错误页面输出以下内容:

用JBuilderX开辟WEB应用法子

图13. 错误页面

在担保数据库启动及毗连正常后,将获得正确登录的页面:

用JBuilderX开辟WEB应用法子

图14. 登录乐成的页面

您也可以启动IE,在IE的地点栏中键入正确的地点来运行措施。

一些常见问题的办理要领

在利用JBuilderX开拓项目进程中,您大概会遇到一些小贫苦,在这里我将先容两个常见的常常影响开拓者情绪的问题及其办理要领。

1、编辑界面不支持中文:您在编辑界面中键入的中文会酿成一串不行识此外“口口口”,这个问题好象只呈此刻JBuilderX版本中,但也不必然会在每台呆板上都产生。有一次,我的一个同事的JBuilderX就产生了这种环境,厥后我帮其变动了JBuilderX的设置文件C:\Documents and Settings\Administrator\.primetimeX\user_zh.properties中的配置信息,才办理了这个问题,详细办理要领,您可以参考borland网站的这篇文章。

2、光标错位:这个问题是JBuilder开拓东西的一个恶疾,每个JBuilder版本都存在这个问题(borland这种固步自封,矢志不移的精力让我烦闷,同时也很佩服)。办理的要领很简朴,对付低版本的JBuilder您大概将字体配置为宋体就可以了,但在JBuilderX中,字体选择下拉框中只列出两种字体:Courier New和Lucida Sans Typewriter,没有宋体,这是一个bug。但我们大概通过其它要领来曲线救国:Tools->Perferences…->点击弹出窗口左边的Color在右边窗口的配置界面中列出了Java,HTML/XML,JSP及其他名目文件的编写样式,去除所有粗体名目标配置:

用JBuilderX开辟WEB应用法子

图15. 配置代码名目

如图15,您可以在界面的右下角的编辑框中点选加粗的语句,然后打消Bold前面复选框的钩。这样就没有光标错位的问题了。

总结

Jbuilder之所以如此风行的原因是显而易见的。由于其代码编辑的质量和开拓者效率的特点,Borland作为开拓者和数据库东西供给商的声誉异常显赫。Borland主导着IDE市场。JavaPro和DevX的研究表白,Jbuilder一直是Java开拓者最普遍回收的,而且大大高出其它同类产物的回收率。

本文以开拓一个简朴的例子为主线,向您先容了用JBuilderX开拓WEB项目标方方面面,而且当令地指出了开拓中的一些实战履历和一些常见的问题。发起您在读完本文后,本身再试着在JBuilderX情况中反复开拓这个例子,究竟纸上得来终觉浅,绝知此事要躬行。

    关键字:

在线提交作业