atitit.跨架构 bs cs解决方案. 自定义web服务器的实现方案 java .net jetty HttpListener
atitit.跨架构 bs cs解决方案. 自定义web服务器的实现方案 java .net jetty HttpListener
1. 自定义web服务器的实现方案,基于原始socket vs 基于tcpListener vs 基于HttpListener1
1. 自定义web服务器的实现方案,基于原始socket vs 基于tcpListener vs 基于HttpListener
前面两篇文章分别介绍了基于原始socket的web服务器和基于tcpListener的web服务器,本篇文章将继续介绍另外一种基于HttpListener的。
HttpListener进一步的简化了Http协议的监听,仅需通过字符串的方法提供监听的地址和端口号以及虚拟路径,就可以开始监听工作了。
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
2. download
|
Downloads |
||||||
|
stable-9: |
Stable (Java 8+) 9.3.7.v20160115 |
|||||
|
9.3.7.v20160115: |
Release (Java 8+) |
|||||
|
9.3.6.v20151106: |
Release (Java 8+) |
|||||
|
9.2.15.v20160210: |
Release (Java 7+) |
|||||
|
9.2.14.v20151106: |
Release (Java 7+) |
|||||
|
8.1.17.v20150415: |
Release (EOL) |
|||||
|
7.6.17.v20150415: |
Release (EOL) |
|||||
3. Lib
2016/02/27 20:05 <DIR> .
2016/02/27 20:05 <DIR> ..
2016/02/27 20:05 0 d.txt
2016/02/27 19:58 80,831 jetty-annotations-9.3.7.v20160115.jar
2016/02/27 19:53 136,427 jetty-http-9.3.7.v20160115.jar
2016/02/27 19:53 105,276 jetty-io-9.3.7.v20160115.jar
2016/02/27 19:58 483,159 jetty-server-9.3.7.v20160115.jar
2016/02/27 19:53 416,442 jetty-util-9.3.7.v20160115.jar
2016/02/27 19:53 111,130 jetty-webapp-9.3.7.v20160115.jar
4. Code
package aaaCfg;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
import com.attilax.io.filex;
public class jetty extends AbstractHandler
{
public void handle(String target,
Request baseRequest,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html;charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
baseRequest.setHandled(true);
response.getWriter().println("<h1>Hello World</h1>"+filex.getUUidName());
}
public static void main(String[] args) throws Exception
{
Server server = new Server(8080);
server.setHandler(new jetty());
server.start();
server.join();
System.out.println("--f");
}
}
5. HttpListener类
HttpListener类依赖于IIS 6.0中的Http.sys功能,因此必须使用把http.sys作为系统级HTTP服务的操作系统。只有Windows Vista、Windows Server 2003和Windows XP SP2(以及未来版本的操作系统)包含了这个功能,因此我们应升级和安装服务包。未来的操作系统都会提供这个功能。
HttpListener用http.sys注册一个或多个"前缀"。注册完成后,HTTP子系统会把请求传递给已注册的监听器,这个过程包括创建一个HttpListenerContext对象并把它发送给监听器。类似于ASP.NET中的Context对象,HttpListenerContext对象也包含了Request和Response对象所需要的各种属性。我们可以使用Request属性读取请求,把响应写入Response属性,然后关闭Response,把生成的页面发送到用户的浏览器。表31-10列出了HttpListener中最重要的成员。
表31-10 HttpListener中最重要的成员
|
成 员 |
描 述 |
|
Abort |
不处理完现存的请求就强行关闭服务器 |
|
Close |
在处理完现存的请求后关闭服务器 |
|
Start |
启动监听器,接收请求 |
|
Stop |
关闭监听器,停止接收请求 |
|
IsListening |
该属性判断监听器当前是否能接收请求 |
|
Prefixes |
监听器可以响应的请求类型的集合。这些类型指的是 URL的左边部分,例如“http://localhost:8080/”或者 “http://serverName:1234/vrootName/”。前缀必须以斜线结尾, 否则就会产生运行时错误。即使同一个服务器上安装了IIS, 只要没有定义与IIS一样的虚拟路径,仍可以使用端口80 |
//等待传入的请求,该方法将阻塞进程,直到收到请求
HttpListenerContext context = listener.GetContext();
//取得请求的对象
HttpListenerRequest request = context.Request;
6. Reef
JETTY9(9.2.1)入门学习 - 小灰灰的部落 - 博客频道 - CSDN.NET.htm
用java实现的一个简单web服务器程序 - lubiaopan的专栏 - 博客频道 - CSDN.NET.htm
自己动手写简单的web服务器--java实现-thomaslwq-ChinaUnix博客.htm
31.2.3 使用HttpListener创建自己的Web服务器(1) - 51CTO.COM.htm
基于HttpListener的web服务器 - wolfy - 博客园.htm
atitit.跨架构 bs cs解决方案. 自定义web服务器的实现方案 java .net jetty HttpListener的更多相关文章
- Atitit.office word excel ppt pdf 的web在线预览方案与html转换方案 attilax 总结
Atitit.office word excel ppt pdf 的web在线预览方案与html转换方案 attilax 总结 1. office word excel pdf 的web预览要求 ...
- 自定义web服务器(四)
关于HTTP协议的具体内容,前面章节已经有所讲解,相信读者已有所了解,在此不在累述,本章节讲解自定义web服务器. 一,.net提供自定义Web服务器的类 以下只是写主要的类 1.HTTPListe ...
- 网络知识 - 简易的自定义Web服务器
简易的自定义Web服务器 基于浏览器向服务端发起请求 两台主机各自的进程之间相互通信,需要协议.IP地址和端口号,IP表示了主机的网络地址,而端口号则表示了主机上的某个进程的地址,IP加Port统称为 ...
- [C# 网络编程系列]专题三:自定义Web服务器
转自:http://www.cnblogs.com/zhili/archive/2012/08/23/2652460.html 前言: 经过前面的专题中对网络层协议和HTTP协议的简单介绍相信大家对网 ...
- 转:【专题三】自定义Web服务器
前言: 经过前面的专题中对网络层协议和HTTP协议的简单介绍相信大家对网络中的协议有了大致的了解的, 本专题将针对HTTP协议定义一个Web服务器,我们平常浏览网页通过在浏览器中输入一个网址就可以看到 ...
- 专题三:自定义Web服务器
前言: 经过前面的专题中对网络层协议和HTTP协议的简单介绍相信大家对网络中的协议有了大致的了解的, 本专题将针对HTTP协议定义一个Web服务器,我们平常浏览网页通过在浏览器中输入一个网址就可以看到 ...
- 前端web服务器数据同步方案
概述: 网站采用了web和mysql数据库分离的架构,前端有web1.web2.web3需要对他们进行上传文件同步 方案: 在web2的windows服务器上安装GoodSync软件,利用其双向同步特 ...
- ASP.NET 开发必备知识点(1):如何让Asp.net网站运行在自定义的Web服务器上
一.前言 大家都知道,在之前,我们Asp.net 的网站都只能部署在IIS上,并且IIS也只存在于Windows上,这样Asp.net开发的网站就难以做到跨平台.由于微软的各项技术的开源,所以微软自然 ...
- net网站运行在自定义的Web服务器上
ASP.NET 开发必备知识点(1):如何让Asp.net网站运行在自定义的Web服务器上 一.前言 大家都知道,在之前,我们Asp.net 的网站都只能部署在IIS上,并且IIS也只存在于Win ...
随机推荐
- csv大文件分割以及添加表头
注:这里说的大文件也不是太大,只有60多M而已(70多万条数据),相对比较大而已. 为了减轻编辑的工作,某种情况下网站上可能用会到csv格式的文件进行数据导入,但一般网站除了有上传文件大小限制以外,还 ...
- hbase安装
HBase的安装 本篇介绍两种HBase的安装方式:本地安装方式和伪分布式安装方式. 安装的前提条件是已经成功安装了hadoop,而且hadoop的版本要和hbase的版本相匹配. 我将要安装的hba ...
- Logstash日志搜集
软件准备: logstash-2.1.0.zip elasticsearch-2.1.0.zip kibana-4.3.0-windows.zip Redis-x64-2.8.2104.msi 下载地 ...
- Teambition可用性测试记
引言:最开始知道Teambition是几个月前,当时是想找一个团队协作工具.Teambition是候选之一,它的界面设计给我留下了印象.后来得知其背后年轻的创始团队还是让我有些小惊讶的.这次通过朋友介 ...
- 如何将ToolBar 样式设置Title文字水平居中
以下是我的activity.xml的代码,线性布局.<android.support.v7.widget.Toolbar android:id="@+id/toolba ...
- Linux高级编程--05.文件读写
缓冲I/O和非缓冲I/O 文件读写主要牵涉到了如下五个操作:打开.关闭.读.写.定位.在Linux系统中,提供了两套API, 一套是C标准API:fopen.fclose.fread.fwrite.f ...
- 轻应用、Web app 、Native app三者区别关系是什么?
[龙友导读]最近百度公司在大会上宣布推出“轻应用”.轻应用到底是什么呢,和我们说的web app.native app到底有什么区别?是新生物的诞生还是概念的炒作?所以,今天特意为大家整理分享一篇这方 ...
- 各种Camera,总有一款适合你(二)
在实际的项目开发中,一般需要程序抽象出一些在几何意义上有明确意义的参数,这样方便策划或美术在自己的机器上进行调试. 下面是一个可变参的地下城摄像机的简单实现: // 第三人称摄像机,平移和旋转会同时进 ...
- ASP.NET WebForm与MVC优缺点
发表于我的个人网站中,请点击阅读!
- Copy和MutableCopy
实现拷贝的方法 -copy: 1.只会产生不可变的副本对象(比如:NSString) 2.[NSMutableString copy] 产品一个不可变的nsstring对象 -mutaleCopy: ...