使用NetBeans进行B/S结构的商业应用开发(三)

第三章使用NetBeans IDE进行开发

本章内容只对使用NetBeans开发时经常使用到的一些基本功能进行介绍,其它功能的使用还请参考NetBeans的操作手册。

 

 

第一节 建立新的工程

WINDOWS桌面上运行NetBeans,从NetBeans中的“文件”菜单中选择“安装文件系统”(如图1所示),然后系统出现新建向导窗口(如图2所示)。

(图片无法上传)

在图2的“选择文件系统类型”中选择“本地目录”,然后选择下一步。如果用户是新建项目选择“本地目录”,但如果项目已经建立,并被版本控制软件控制,则可以选择“版本控制”,具体可以参见后面一节“从版本控制器中获得工程”内容。

(图片无法上传)

接下来我们在图3的界面中要选择工程的所在目录,即你想将工程建立在哪。选择要安装的目录后,选择完成。这是你的工程已经建立并且会出现在图4的界面中的“文件系统”中,它的名字是你选择目录的全路径名。现在你们看到的界面可能和你们实际的有点不同,这关键在设置上,不过这没有关系,我假设我建立的系统的工程就是你在界面上看到的目录。这里有一点需要说明的,就是你们建立的系统很可能只有一行,而且看不到“VSS”字样,

(图片无法上传)

这是正确的,因为我的系统已经使用“版本控制软件”进行了版本控制(如何做请参考我后面的介绍)。

让我们继续,选中我们刚刚建立的工程,使用鼠标右键,这是会出现一个弹出式菜单(如图5)。选择“新建”子菜单下的“WEB模块”。有可能你看不到这个菜单,没有关系你可以选择“所有模板”,然后系统会弹出一个新的窗口(如图6),在其中展开“JSP & SERVLET

(图片无法上传)

文件夹,选择其中的“WEB模块”,然后选择下一步按钮。这时出现如图7的界面,默认情况下你不需要对这个界面上的东西进行调整,直接选择“完成”按钮就可以了,这样你就建立好了一个B/S结构的工程框架。是不是挺容易?!

(图片无法上传)

这时你如果使用WINDOWS的资源管理器到刚刚建立的工程所在的目录下取看,会发现在这个原来空旷的目录下多了些东西,如现在有了一个“WEB-INF”的目录和一个“web.xml”的文件。哈哈,这是JAVA2的文件组织规范哦。这和未来实际发布时的文件组织结构是一致的(但如果是使用NetBeans ide 4.0开发的就不是这样的文件组织形式,我也不明白为什么。看来要将NetBeans 3.6开发的程序移植到4.0需要要做些手工调整了)。建立好这些后你再看图4的界面时就会发现和我的一样有两个东西了。其中一个是所有工程的文件,另一个(也就是标题结尾处带有“/WEB-INF/classes”的)是在WEB-INF目录下的classes目录中的文件信息。且记这两个目录名“WEB-INF”和“classes”是不可以换名的哦,而且相对关系也不可以更改。

第二节  从版本控制器中获得工程

如果你以前已经建立了工程且将其加入到了软件的版本控制器中,则可以按照如下方法从版本控制器中重新获得工程。

同样首先从WINDOWS桌面上运行NetBeans,从NetBeans中的“文件”菜单中选择“安装文件系统”(如图1所示),然后系统出现新建向导窗口(如图2所示)。在图2的界面中选择“版本控制”,然后选择下一步按钮。这时出现和上节(建立新的工程)中介绍的不同的界面(如图8)。在这里首先你要选择版本控制系统的类型,NetBeans默认提供了四种选项,点击“版本控制系统配置文件”的下拉选择框就可以看到,我在这里选择VSS

(图片无法上传)

当然你也可以使用其它的如CVSPVCSVSS的安装可以通过微软的VISUAL STUDIO 6.0安装盘来安装,在此我暂时不做介绍,其实很容易的。然后在“工作目录”中输入或选择你的工程在本地的放置目录。“相对安装点”你可以不用管,然后在“VSS用户名”中输入项目管理员给你的帐户名,在“VSS命令”中选择你本地的VSS的执行文件SS.EXE所在的位置,然后在“VSS项目”中输入你的工程在VSS中的工程名(说通俗点就是你的工程在VSS库中的起始根目录名),最后你还要告诉系统,你要获得的工程的VSS库在哪?即要在“SSDIR”中输入或选择VSS库的路径,通俗的说就是srcsafe.ini文件所在的目录。设置好这全部的后你就可以选择完成了。这是你再去看图4所示的界面就会发现上面显示的更加相近了。

(图片无法上传)

第三节  建立JAVABEAN

在正式编码之前首先我们来规划一下WEB-INF/classes目录,因为不管是JAVABEAN还是SERVLET都是放置在这个目录下。现在我将这个目录分成comservlet二个目录。

现在我们来具体实现。展开你的工程节点(你可以选择展开标题带“WEB-INF/classes”的也可以选择展开不带“WEB-INF/classes”字样的,如果没有特殊说明以后文章中都指展开标题不带“WEB-INF/classes”字样的工程节点),再展开其中的“WEB-INF”节点,选中“类”的节点,鼠标右键,出现如图5的弹出菜单,选择其中“新增”子菜单下面的“文件夹”或“JAVA包”(如果没有可以选择“所有模板”子菜单,会出现图6的界面,在其中选择“文件夹”或“JAVA包”,再选择下一步),在出现的弹出窗口中(如图9)中的“名称”栏输入“com”字样,

(图片无法上传)

然后选择完成。系统就帮你建立了叫com的目录(包),servlet目录的建立方法相同,读者可参考前面介绍的自己建立。接下来我们进入刚刚建立的com目录,在其中依上法建立一个子目录employee,再选中这个employee的子目录,同样鼠标右键,在如图5的弹出菜单中选择“新增”下面的“所有模板”,然后从弹出的图6弹出窗口中选择“JAVA类”中的“JAVA类”,然后选择“下一步”,在出现的图10中输入类的名字,这里我输入CEmployee,这时大家要注意了,JAVA是大小写很敏感的,一定要谨慎使用字母的大小写。最后选择完成,NetBean就帮我们建立好了一个CEmployee的类,不过它现在除了有个空的构造函数外,其它什么方法和成员变量都没有,是的,这正是需要我们去实现的,试想计算机怎么知道我们要干什么呢!同时我们在NetBean的“文件系统”中也可以看到在employee目录下多了一个CEmployee类的节点,现在我们展开它,可以看到一个“类 CEmployee”的节点,再展开它,这时我们可以看到有四个节点,它们分别是:字段、构造函数、方法、Bean 模式。

现在我们先来建立字段。选择“字段”节点,鼠标右键,出现图11界面,选择“新增

(图片无法上传)

字段”,随即弹出图13,在“名字”处输入字段的变量名,这里我们输入字段名为_vcEmplNo,选择它的数据类型,可以在“类型”处选择,如果没有,也可以手工输入,这里我们选择它的数据类型为String。然后选择“访问”以决定此成员变量的可访问类型,下拉选择框中有四种:<default>privateprotectorpublic,我在这里选择private,一般来说对于成员变量最后设置成private的,这样可以杜绝非法访问,所有对成员变量的读取和修改都通过相关的成员方法实现。当然下面还有一些其它修饰,如final(用于表示数据是不可修改的,在这里类似于C++中的CONST)、static(用于表示数据是静态的,呵呵如果有谁不明白这,最好去仔细阅读JAVA的入门书籍了,C++中也要同样的关键字哦)、transientvolatile(这两个大家也自己去看书吧,我只知道transient和创建持久JAVA小应用程序和持久JAVABEAN的能力紧密相关的,其它我就不知道了,如果哪位能够给我做个解释,我十分感谢),接下来我们还可以为这个变量设定初始值,当然也可以不设置初始值,最后在确定无误后我们选择确定按钮。这时CEmployee类中就有了一个成员了。但现在类的外界还不可以给此成员赋值或读取该成员的值,对于成员的读写我们还要通过编写接口方法来实现。

现在我们来添加两个方法分别来给刚刚的成员赋值和读取它的值,这两个方法的名称为getEmplNosetEmpNogetEmplNo用来完成读取成员变量_vcEmplNo的值,而setEmpNo用例更改或设置成员变量_vcEmplNo的值。大家注意到了吗,这两个函数都是以小写字母开头的,而且读取函数使用了“get”,而设置函数使用了“set”。哈哈,这是JAVA的默认编码规则,建议大家遵守,当然如果你不遵守JAVA也不会报告你错误(JAVA够大度吧,呵呵)。

对于读取设置成员变量的函数如此命名还有其它的好处,好处在哪呢?当你将来在JSP页面中使用BEANS的时候,你可以直接向成员变量一样使用它。接下来我们用向导来看看如何实现。选中“方法”节点,鼠标右键,出现图12的右键菜单,选择“增加 方法”菜单,出现如图14的弹出窗口,在“名称”处输入方法的名称,在这里我输入getEmplNo,

在“返回类型”处输入或选择函数返回的数据类型,我这里选择String。在“访问”处选择public,“访问”的意义同增加字段中“访问”的意义,这里不再累述。“其它修饰”有五种选择:abstractfinalstaticsynchronizednative。选择abstract属性则表示此方法为抽象方法,其它的可以参考JAVA语言的相关书籍。如果此方法有参数的话,可以点击界面上“方法参数”中的“增加”按钮,出现如图15所示窗口,在上面可以选择参数的数据类型,如果在下拉选择框中没有你所需要的数据类型,也可以直接手工输入。接下来你需要输入方法参数名,然后选择确定。在图15中也可以设定final属性,用于指定该参数是否是final的。如果该方法有多个参数,则可以连续选择“增加”按钮,然后操作同上。在图14界面,我们还可以选择抛出异常的类型,具体操作如下,选择“异常”中的“增加”按钮,出现图16界面,在其中输入需要抛出异常的类名,其后选择确定按钮。如果在“异常”中要抛出多个异常,可以连续选择增加按钮,按上述方法处理。新增构造函数的方法同新增方法类似,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

在“返回类型”处输入或选择函数返回的数据类型,我这里选择String。在“访问”处选择public,“访问”的意义同增加字段中“访问”的意义,这里不再累述。“其它修饰”有五种选择:abstractfinalstaticsynchronizednative。选择abstract属性则表示此方法为抽象方法,其它的可以参考JAVA语言的相关书籍。如果此方法有参数的话,可以点击界面上“方法参数”中的“增加”按钮,出现如图15所示窗口,在上面可以选择参数的数据类型,如果在下拉选择框中没有你所需要的数据类型,也可以直接手工输入。接下来你需要输入方法参数名,然后选择确定。在图15中也可以设定final属性,用于指定该参数是否是final的。如果该方法有多个参数,则可以连续选择“增加”按钮,然后操作同上。在图14界面,我们还可以选择抛出异常的类型,具体操作如下,选择“异常”中的“增加”按钮,出现图16界面,在其中输入需要抛出异常的类名,其后选择确定按钮。如果在“异常”中要抛出多个异常,可以连续选择增加按钮,按上述方法处理。新增构造函数的方法同新增方法类似,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

在“返回类型”处输入或选择函数返回的数据类型,我这里选择String。在“访问”处选择public,“访问”的意义同增加字段中“访问”的意义,这里不再累述。“其它修饰”有五种选择:abstractfinalstaticsynchronizednative。选择abstract属性则表示此方法为抽象方法,其它的可以参考JAVA语言的相关书籍。如果此方法有参数的话,可以点击界面上“方法参数”中的“增加”按钮,出现如图15所示窗口,在上面可以选择参数的数据类型,如果在下拉选择框中没有你所需要的数据类型,也可以直接手工输入。接下来你需要输入方法参数名,然后选择确定。在图15中也可以设定final属性,用于指定该参数是否是final的。如果该方法有多个参数,则可以连续选择“增加”按钮,然后操作同上。在图14界面,我们还可以选择抛出异常的类型,具体操作如下,选择“异常”中的“增加”按钮,出现图16界面,在其中输入需要抛出异常的类名,其后选择确定按钮。如果在“异常”中要抛出多个异常,可以连续选择增加按钮,按上述方法处理。新增构造函数的方法同新增方法类似,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

对于读取设置成员变量的函数如此命名还有其它的好处,好处在哪呢?当你将来在JSP页面中使用BEANS的时候,你可以直接向成员变量一样使用它。接下来我们用向导来看看如何实现。选中“方法”节点,鼠标右键,出现图12的右键菜单,选择“增加 方法”菜单,出现如图14的弹出窗口,在“名称”处输入方法的名称,在这里我输入getEmplNo,

在“返回类型”处输入或选择函数返回的数据类型,我这里选择String。在“访问”处选择public,“访问”的意义同增加字段中“访问”的意义,这里不再累述。“其它修饰”有五种选择:abstractfinalstaticsynchronizednative。选择abstract属性则表示此方法为抽象方法,其它的可以参考JAVA语言的相关书籍。如果此方法有参数的话,可以点击界面上“方法参数”中的“增加”按钮,出现如图15所示窗口,在上面可以选择参数的数据类型,如果在下拉选择框中没有你所需要的数据类型,也可以直接手工输入。接下来你需要输入方法参数名,然后选择确定。在图15中也可以设定final属性,用于指定该参数是否是final的。如果该方法有多个参数,则可以连续选择“增加”按钮,然后操作同上。在图14界面,我们还可以选择抛出异常的类型,具体操作如下,选择“异常”中的“增加”按钮,出现图16界面,在其中输入需要抛出异常的类名,其后选择确定按钮。如果在“异常”中要抛出多个异常,可以连续选择增加按钮,按上述方法处理。新增构造函数的方法同新增方法类似,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

在“返回类型”处输入或选择函数返回的数据类型,我这里选择String。在“访问”处选择public,“访问”的意义同增加字段中“访问”的意义,这里不再累述。“其它修饰”有五种选择:abstractfinalstaticsynchronizednative。选择abstract属性则表示此方法为抽象方法,其它的可以参考JAVA语言的相关书籍。如果此方法有参数的话,可以点击界面上“方法参数”中的“增加”按钮,出现如图15所示窗口,在上面可以选择参数的数据类型,如果在下拉选择框中没有你所需要的数据类型,也可以直接手工输入。接下来你需要输入方法参数名,然后选择确定。在图15中也可以设定final属性,用于指定该参数是否是final的。如果该方法有多个参数,则可以连续选择“增加”按钮,然后操作同上。在图14界面,我们还可以选择抛出异常的类型,具体操作如下,选择“异常”中的“增加”按钮,出现图16界面,在其中输入需要抛出异常的类名,其后选择确定按钮。如果在“异常”中要抛出多个异常,可以连续选择增加按钮,按上述方法处理。新增构造函数的方法同新增方法类似,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

在“返回类型”处输入或选择函数返回的数据类型,我这里选择String。在“访问”处选择public,“访问”的意义同增加字段中“访问”的意义,这里不再累述。“其它修饰”有五种选择:abstractfinalstaticsynchronizednative。选择abstract属性则表示此方法为抽象方法,其它的可以参考JAVA语言的相关书籍。如果此方法有参数的话,可以点击界面上“方法参数”中的“增加”按钮,出现如图15所示窗口,在上面可以选择参数的数据类型,如果在下拉选择框中没有你所需要的数据类型,也可以直接手工输入。接下来你需要输入方法参数名,然后选择确定。在图15中也可以设定final属性,用于指定该参数是否是final的。如果该方法有多个参数,则可以连续选择“增加”按钮,然后操作同上。在图14界面,我们还可以选择抛出异常的类型,具体操作如下,选择“异常”中的“增加”按钮,出现图16界面,在其中输入需要抛出异常的类名,其后选择确定按钮。如果在“异常”中要抛出多个异常,可以连续选择增加按钮,按上述方法处理。新增构造函数的方法同新增方法类似,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

对于读取设置成员变量的函数如此命名还有其它的好处,好处在哪呢?当你将来在JSP页面中使用BEANS的时候,你可以直接向成员变量一样使用它。接下来我们用向导来看看如何实现。选中“方法”节点,鼠标右键,出现图12的右键菜单,选择“增加 方法”菜单,出现如图14的弹出窗口,在“名称”处输入方法的名称,在这里我输入getEmplNo,

在“返回类型”处输入或选择函数返回的数据类型,我这里选择String。在“访问”处选择public,“访问”的意义同增加字段中“访问”的意义,这里不再累述。“其它修饰”有五种选择:abstractfinalstaticsynchronizednative。选择abstract属性则表示此方法为抽象方法,其它的可以参考JAVA语言的相关书籍。如果此方法有参数的话,可以点击界面上“方法参数”中的“增加”按钮,出现如图15所示窗口,在上面可以选择参数的数据类型,如果在下拉选择框中没有你所需要的数据类型,也可以直接手工输入。接下来你需要输入方法参数名,然后选择确定。在图15中也可以设定final属性,用于指定该参数是否是final的。如果该方法有多个参数,则可以连续选择“增加”按钮,然后操作同上。在图14界面,我们还可以选择抛出异常的类型,具体操作如下,选择“异常”中的“增加”按钮,出现图16界面,在其中输入需要抛出异常的类名,其后选择确定按钮。如果在“异常”中要抛出多个异常,可以连续选择增加按钮,按上述方法处理。新增构造函数的方法同新增方法类似,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

在“返回类型”处输入或选择函数返回的数据类型,我这里选择String。在“访问”处选择public,“访问”的意义同增加字段中“访问”的意义,这里不再累述。“其它修饰”有五种选择:abstractfinalstaticsynchronizednative。选择abstract属性则表示此方法为抽象方法,其它的可以参考JAVA语言的相关书籍。如果此方法有参数的话,可以点击界面上“方法参数”中的“增加”按钮,出现如图15所示窗口,在上面可以选择参数的数据类型,如果在下拉选择框中没有你所需要的数据类型,也可以直接手工输入。接下来你需要输入方法参数名,然后选择确定。在图15中也可以设定final属性,用于指定该参数是否是final的。如果该方法有多个参数,则可以连续选择“增加”按钮,然后操作同上。在图14界面,我们还可以选择抛出异常的类型,具体操作如下,选择“异常”中的“增加”按钮,出现图16界面,在其中输入需要抛出异常的类名,其后选择确定按钮。如果在“异常”中要抛出多个异常,可以连续选择增加按钮,按上述方法处理。新增构造函数的方法同新增方法类似,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

在“返回类型”处输入或选择函数返回的数据类型,我这里选择String。在“访问”处选择public,“访问”的意义同增加字段中“访问”的意义,这里不再累述。“其它修饰”有五种选择:abstractfinalstaticsynchronizednative。选择abstract属性则表示此方法为抽象方法,其它的可以参考JAVA语言的相关书籍。如果此方法有参数的话,可以点击界面上“方法参数”中的“增加”按钮,出现如图15所示窗口,在上面可以选择参数的数据类型,如果在下拉选择框中没有你所需要的数据类型,也可以直接手工输入。接下来你需要输入方法参数名,然后选择确定。在图15中也可以设定final属性,用于指定该参数是否是final的。如果该方法有多个参数,则可以连续选择“增加”按钮,然后操作同上。在图14界面,我们还可以选择抛出异常的类型,具体操作如下,选择“异常”中的“增加”按钮,出现图16界面,在其中输入需要抛出异常的类名,其后选择确定按钮。如果在“异常”中要抛出多个异常,可以连续选择增加按钮,按上述方法处理。新增构造函数的方法同新增方法类似,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

以上都是以新增来讲解的,其实修改(或称为编辑)的操作也很容易,大致和新增相同,大家可以自己尝试。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页