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

2016-02-19 14:01 4 1 收藏

今天图老师小编给大家精心推荐个基于Jave的Web服务工作机制(4)教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

【 tulaoshi.com - Web开发 】

在下面的段落中,让我们来看看这三个类吧。

 

  HttpServer 类

  HttpServer类表示一个web服务器,且在公共静态目录WEB_ROOT及它的子目录中能为找到的那些静态资源而服务。WEB_ROOT用以下方式初始化:

  public static final String WEB_ROOT =
  System.getProperty("user.dir") + File.separator + "webroot";

  这段代码指明了一个包含静态资源的webroot目录,这些资源可用来测试该应用。在该目录中也能找到servlet容器。

  要请求一个静态资源,在浏览器中输入如下地址或URL:

  http://machineName:port/staticResource
  machineName 是运行这个应用的计算机名或者IP地址。如果你的浏览器是在同一台机器上,可以使用localhost作为机器名。端口是8080。staticResource是请求的文件夹名,它必须位于WEB-ROOT目录中。

  必然,如果你使用同一个计算机来测试应用,你想向HttpServer请求发送一个index.html 文件,那么使用如下URL:

  http://localhost:8080/index.html

  想要停止服务器,可以通过发送一个shutdown命令。该命令是被HttpServer 类中的静态SHUTDOWN_COMMAND变量所定义:

  private static final String SHUTDOWN_COMMAND = "/SHUTDOWN";
  因此,要停止服务,你可以使用命令:

  http://localhost:8080/SHUTDOWN
  现在让我们来看看前面提到的await方法。下面一个程序清单给出了解释。

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

  Listing 1.1. The HttpServer class' await method

  public void await() {
  ServerSocket serverSocket = null;
  int port = 8080;
  try {
    serverSocket = new ServerSocket(port, 1,
    InetAddress.getByName("127.0.0.1"));
  }
  catch (IOException e) {
    e.printStackTrace();
    System.exit(1);
  }

  // Loop waiting for a request
  while (!shutdown) {
    Socket socket = null;
    InputStream input = null;
    OutputStream output = null;
    try {
      socket = serverSocket.accept();
      input = socket.getInputStream();
      output = socket.getOutputStream();

      // create Request object and parse
      Request request = new Request(input);
      request.parse();

      // create Response object
      Response response = new Response(output);
      response.setRequest(request);
      response.sendStaticResource();

      // Close the socket
      socket.close();

      //check if the previous URI is a shutdown command
      shutdown = request.getUri().equals(SHUTDOWN_COMMAND);
    }
    catch (Exception e) {
      e.printStackTrace();
      continue;
    }
  }
}

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

  await方法是通过创建一个ServerSocket实例而开始的。然后它进入了一个WHILE循环:

  serverSocket = new ServerSocket(
  port, 1, InetAddress.getByName("127.0.0.1"));

  ...

  // Loop waiting for a request
  while (!shutdown) {
    ...
  }

  socket = serverSocket.accept();
  在收到一个请求后,await方法从accept方法返回的socket实例中获得java.io.InputStream 和java.io.OutputStream对象。

来源:https://www.tulaoshi.com/n/20160219/1605959.html

延伸阅读
       基于Linux的目录服务实现   · 魏星 王舒晟·CPCW      摘要:       本文的目的是通过使用Linux系统支持的应用软件包(openldap),快速实现基于LDAP协议的目录服务系统来支持Windows消息簿中的用户查询功能。作者从用户的观点介绍了目录服...
标签: Web开发
引言 大家都知道可以通过post或者get获得form表单的数据,那么我们如何实现不刷新的提交直接获得页面上的数据呢?这就要借助xmlhttp协议了。xmlhttp是xmldom技术的一部分。   下面的代码就是一个很简单的例子,我们利用xmlhttp技术实现简单的用户登陆。 开始 1.简单的登录页面 login.jsp ...
MVC介绍 MVC模式是一种非常理想化的设计模式,应用MVC模式完成两个以上项目的人都有同样的体会,他们已经对以前的工作方法进行了彻底的改造。工作模式的改变要付出痛苦的代价,但现在你有现成的技术架构可以采用,避免在项目中自己开发、摸索。它就是开源Apache Struts framework,它提供了实现MVC设计模式最好的实现工具。 ...
RHEL AS 4作为企业级操作系统,安装光盘自然包含基本的web服务器程序。为学习服务器配置,我们打算抛开其安装光盘,从网上下载当今web服务器所需的较新版本,自已一步一步进行配置安装,尽情享受DIY的乐趣! RHEL AS 4系统应用:web服务器篇作者:月下刀客前言 1、以下所有应用均在本人的机器所装的rhel4上调试通过。 2、本人不能保证你...
5.5.1 基于Web管理的原理 1. 客户机 客户机操作系统为Windows 2000、Windows 98或Windows NT,安装IE 5.0以上的浏览器,安装Java插件Oracle JInitiator 1.1.8.10和基于Applet技术的。 2. 中间层 安装和Apache HTTP服务器。 3. 数据库服务器 安装数据库服务器,运行。 5.5.2 如何构建基于Web管理的环...

经验教程

405

收藏

54
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部