开发Web服务器项目中的编程实现
1、在线帮助的设计与实现
(1)*.chm的帮助文件
在帮助菜单的事件响应中加载帮助文件
Runtime currentRunTime=Runtime.getRuntime();
Process newProcess=null;
try
{ //c:\winnt\hh.exe 为*.chm帮助文件的启动文件
newProcess=currentRunTime.exec("hh.exe ./htmlHelpFile/WebProxy.chm");
}
catch(Exception e)
{
System.out.println("不能正确地加载帮助文件,请检查您的c:\\winnt\\hh.exe文件是否存在");
}
(2)*.html的帮助文件
通过自定义的对话框类HTMLHelpContent来显示
编程JEditorPane控件并在hyperlinkUpdate事件方法中进行帮助内容的切换,请见HTMLHelpContent.java程序
2、自定义的JavaBean组件(面板组件)
本项目中设计了一个自定义的JavaBean组件,实现产生自己的对话框,其代码请见YesNoPanel.java,然后将该组件嵌入到自己的对话框中(如:YesNoPanelDialog中)。
3、自定义的对话框的设计实现
(1)YesNoPanelDialog.java对话框,在该对话框中内嵌前面的JavaBean组件
(2)HTMLHelpContent.java对话框,在该对话框中内嵌一个JEditorPane组件以实现显示出*.html的帮助文件
(3)HelpAbout.java对话框
(4)SystemInfo.java对话框,当用户点击HelpAbout对话框中的“系统信息”按钮时,将出现该对话框
(5)WebProxyConfig实现系统的配置
4、Java实现Web服务器功能的程序设计编程实现
(1)设计编程思路
根据上述HTTP协议的会话过程,本项目实现GET和POST请求的Web服务器的程序设计,主要的设计步骤如下:
通过创建ServerSocket 类对象,侦听用户指定的端口(为8080,这是为了区别于HTTP的标准TCP/IP端口80而取的),等待并接受客户机请求到端口。创建与Socket相关联的输入流和输出流,然后读取客户机的请求信息。若请求类型是GET,则从请求信息中获取所访问的HTML 文件名(请求信息的格式为:GET/路径/文件名HTTP/1.1);
1)如果HTML 文件存在,则打开HTML 文件,把HTTP 头信息和HTML 文件内容通过Socket 传回给Web浏览器,然后关闭文件。
2)没有HTML文件名时,则以缺省的index.htm1作为文件名;如果还没有,则发送错误信息给Web 浏览器。最后关闭与相应Web 浏览器连接的Socket。
(2)启动本例中的Web服务器方法
启动Web服务器后,然后在IE浏览器地址栏中输入Web服务器的URL地址和端口号 :8080/index.htm可以浏览缺省的Web站点的页面文件。
5、本项目中所涉及的Java命名约定
(1)概述
所有的程序开发手册都包含了各种规则。一些习惯自由程序人员可能对这些规则很不适应,但是在多个开发人员共同写作的情况下,这些规则是必需的。这不仅仅是为了开发效率来考虑,而且也是为了后期维护考虑。下面给出Java编程过程中的命名规范,其目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失。(这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性)。
任何一门语言都是用来交流的,都有自己的一套书写规范,Java 也不例外。好的命名规范可以让你的程序更专业,更容易被别人理解,更好维护。了解命名规范,可以更好的学习和记忆 Java 类库中类和函数。下面分几部分加以说明:
(2)程序中的各种符号的命名
Package 的命名:名字应该都是由一个小写单词和少量数字组成,如tools。 并且分层次,如java.awt(Java 中的包以 java. 和 javax 开头,比如上面的:java.awt)、别的单位开发的包以该单位的 Internet 域名部分开头,比如:com.sun、com.borland等。
Class 和Interface的命名:由一个或几个单词组成,每个单词的第一个字母大写。 类名,一般用名词和名词词组命名,而接口的命名则与类名命名相同,可以使用形容词词缀,比如 ActionListener、MouseListener名字必须由大写字母开头而其他字母都小写的单词组成。
类对象的命名:名字必须用一个小写字母开头。后面的单