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

博兴永新

博兴永新

2016-02-19 14:01

下面图老师小编要向大家介绍下基于Jave的Web服务工作机制(7),看起来复杂实则是简单的,掌握好技巧就OK,喜欢就赶紧收藏起来吧!
sendStaticResource 方法是非常简单的。它首先传递父路径和子路径给File类的构造器,从而对java.io.File类进行了实例化。

 

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  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 Foundrn" +
  "Content-Type: text/htmlrn" +
  "Content-Length: 23rn" +
  "rn" +
  "h1File 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

  概要总结

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

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

展开更多 50%)
分享

猜你喜欢

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

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

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

Web开发
基于Jave的Web服务工作机制(6)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

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

Web开发
基于Jave的Web服务工作机制(4)

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

Web开发
基于Jave的Web服务工作机制(5)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

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

Web开发
基于Jave的Web服务工作机制(3)

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

Web开发
基于Jave的Web服务工作机制(1)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Word 2007技巧:设置图片对比度

Word 2007技巧:设置图片对比度

3.5 随机访问Recordset的一条记录

3.5 随机访问Recordset的一条记录
下拉加载更多内容 ↓