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 ...
随机推荐
- ecshop的订单状态
ecshop的订单状态都是在ecs_order_info表中的字段里. 订单状态 未确认 取消 确认 已付款 配货中 已发货 已收货 退货 order_status 0 2 1 1 1 5 5 4 s ...
- Android不规则点击区域详解
Android不规则点击区域详解 摘要 今天要和大家分享的是Android不规则点击区域,准确说是在视觉上不规则的图像点击响应区域分发. 其实这个问题比较简单,对于很多人来说根本不值得做为一篇博文写出 ...
- 读书笔记_Effective_C++_条款四十五:运用成员函数模板接受所有兼容类型
比如有一个Base类和一个Derived类,像下面这样: class BaseClass {…}; class DerivedClass : public BaseClass {…}; 因为是父类与子 ...
- EditorWindow简单双击效果
Editor模式下的控件没有提供直接检测双击的消息,但可以简单模拟出双击检测的效果,代码如下所示: private double clickTime = 0f; ... if (GUILayout.B ...
- C#连接Oracle简单教程
要点:本文主要介绍如何使用最简单的方法让C#操作Oracle数据库,不需要安装Oracle客户端之类的东西. 最近由于工作需要,要使用C#从SQLServer向Oracle导入数据.之前没有怎么接触过 ...
- read和write函数
读函数read ssize_t read(int fd,void *buf,size_t nbyte) 如果是ECONNREST表示网络连接出了问题. 写函数write ssize_t writ ...
- tar的-t参数使用
-t, --list list the contents of an archive 例如: pengdl@localhost:~/test$ tar -czvf shell.ta ...
- 通过组策略实现IE自动以当前域账号登录某站点
SharePoint基于windows验证的如何通过组策略实现IE自动以当前域账号登录某站点 1. 在运行中运行MMC,启动“组策略对象编辑器”. 如下图: 2.找到组策略,如下图: 3.找到对应的域 ...
- Oracle 11g 安全加固
1.安全加固的检查方向 2.安全加固检查safeCheck.sh 3.安全加固执行safeExec.sh 1.安全加固的检查方向 1.1.sysdba用户远程登录限制(查看Oracle登录认证方式) ...
- Android 开发有用代码积累
Android开发需求变化快,开发周期要求尽量短,接下来一系列文章从实际使用出发总结一些常用的代码片段,便于查找,也为后来人提供一份参考. 1.获取Manifest的基本信息(升级页面和软件关于页面一 ...