网站运营
位置:首页>> 网站运营>> 基于Jave的Web服务工作机制(7)

基于Jave的Web服务工作机制(7)

 来源:asp之家 发布时间:2010-04-05 18:13:00 

标签:java,web服务器

sendStaticResource 方法是非常简单的。它首先传递父路径和子路径给File类的构造器,从而对java.io.File类进行了实例化。


File file = new File(HttpServer.WEB_ROOT, request.getUri());
  然后它检查文件是否存在。如果存在,sendStaticResource 方法通过传递File对象来构造一个java.io.FileInputStream对象。然后调用FileInputStream 的read方法,将字节流写如到OutputStream输出。注意这种情况下, 静态资源的内容也被作为原始数据被发送给了浏览器。

if (file.exists()) {
  fis  = new FileInputStream(file);
  int ch = fis.read(bytes, 0, BUFFER_SIZE);

while (ch != -1) {
    output.write(bytes, 0, ch);
    ch = fis.read(bytes, 0, BUFFER_SIZE);
  }
}

如果这个文件不存在,sendStaticResource 方法发送一个错误消息给浏览器。

String errorMessage = "HTTP/1.1 404 File Not Found\r\n" +
  "Content-Type: text/html\r\n" +
  "Content-Length: 23\r\n" +
  "\r\n" +
  "<h1>File Not Found</h1>";
  output.write(errorMessage.getBytes());

编译和运行应用程序

为了编译和运行应用,你首先需要解压包含本文应用程序的.zip文件。你解压的目录成为工作目录(working directory),它有三个子目录: src/, classes/, 和 lib/。 要编译应用程序需要在工作目录输入如下语句:

javac -d . src/ex01/pyrmont/*.java
  这个-d 选项参数将结果写到当前目录,而不是src/ 目录。

要运行应用程序,在工作目录中输入如下语句:

java ex01.pyrmont.HttpServer
  要测试你的应用程序,打开浏览器,在地址栏中输入如下URL:

http://localhost:8080/index.html
  你将可以看到浏览器中显示的index.html 页面。

Figure 1. The output from the web server

在控制台(Console),你能看到如下内容:

GET /index.html HTTP/1.1
  Accept: */*
  Accept-Language: en-us
  Accept-Encoding: gzip, deflate
  User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)
  Host: localhost:8080
  Connection: Keep-Alive

GET /images/logo.gif HTTP/1.1
  Accept: */*
  Referer: http://localhost:8080/index.html
  Accept-Language: en-us
  Accept-Encoding: gzip, deflate
  User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)
  Host: localhost:8080
  Connection: Keep-Alive

概要总结

在本文中,你了解了一个简单的WEB服务器的工作机制。本文附带的应用程序源代码只包含三个类,但并不是所有的都有用。尽管如此,它还是能被作为一种很好的学习工具为我们服务。

0
投稿

猜你喜欢

  • 帮朋友做个小导航时用到了下拉菜单,话说WordPress3.0以上版本的”wp_nav_menu()”真是好用,加上主题自定义菜单的设置简直
  • 2009年5月19日21时起,在中国北京、天津、上海、河北、山西、安徽、湖北、广东、广西等省陆续出现互联网网络故障,使用电信网络服务的网民上
  • 任何一个事情都有重点,我在‘论坛营销成功学(一)’中就把论坛营销的重点基本都说出来了。看过以后你可能觉得这些东西都知道,没有必要往下看了。其
  • 昨日在微博,有站长发布了一张“QQ群”新功能测试图,引发了众多站长关注,图片显示QQ群可以展示论坛的信息,推广论坛内容。据了解,这是康盛公司
  • 发布服务器:SFTP用户名:SFTP密码:TelNet用户名:TelNet密码:MySql 5.0及以上版本Php 5.0及以上版
  • 进入2007年后半年以来,有很多有钱的人都喜欢买个网站来运营。从站长网等一些大站也看得出来网站的交易量比以前大大增加。本人这段时间也曾交易过
  • 在做网站优化的时候我们首先要做的是对竟争对手加以分析从而可以更好的实施方案,清楚了对手的情况我们还需要清楚网络优化应该避免的一些问题,一般来
  • 关键词堆砌:众多关键字充斥于网页信息中就会形成关键字堆砌(Keyword stuffing)。这类网页看起来更像是一连串的关键字,而不像是别
  • 一年之内,先是搜狐分拆旗下的游戏业务&mdash;&mdash;畅游公司上市,继而盛大网络也将旗下的游戏&mdash
  • 相信用Discuz论坛的朋友应该都知道,Discuz论坛对搜索引擎优化的还是比较到位的。Discuz6.0 - 7.0论坛都提供了此功能,登
  • 当前,国内社交网站(SNS)的发展呈现多元化趋势,搜狐、新浪、盛大、腾讯等都在进入社交领域。现对大部分用户来说,到各种网站上建立自己的好友关
  • # DedeCMS v5.3 归档插件+列表生成控制# jim.ma QQ:164186 jim.mail ~@~ 163.com程序中部分
  • 网站权重,是搜索引擎给网站(包括网页)赋予一定的权威值,对网站(含网页)权威的评估评价,一个网站权重越高,在搜索引擎所占的份量越大,在搜索引
  • 相对于Windows98系统Windows2000在系统的稳定性方面大大加强了,相对于WindowsXP操作系统Windows2000在硬件
  • 作为破坏力较强的黑客攻击手段,DDoS是一种形式比较特殊的拒绝服务攻击。作为一种分布、协作的大规模攻击方式,它往往把受害目标锁定在大型Int
  • 我们继续来了解Godaddy主机,今天我们要介绍的是Godaddy主机的管理帐户如何变更。Pending Account Changes页面
  • 当一家企业实施CRM的时候,CRM的专用词汇的发展对开发商业模式和沟通变得至关重要。理解CRM术语对开发新商业模式和促使向以客户为中心转变变
  • - 关于广告格式大小作为连接发布商和广告主的桥梁,互联网广告格式一直是整个行业关注的焦点。据不完全统计,目前中国互联网广告形式过于繁杂,正在
  • 日前,新闻出版总署对已出版运营的200多款包括网页游戏在内的网络游戏进行集中审查。《美国1930》等45款未经审批的境外网络游戏被责令关闭,
  • 目前很多杀毒软件都带有反广告的功能,可以屏蔽页面上出现的 Flash 广告。就拿卡巴斯基为例,它使用路径规则来过滤 Flash 内容。具体设
手机版 网站运营 asp之家 www.aspxhome.com