记得红薯大哥以前贴过一个mina的http服务器的实现,我就贴一个grizzly的。说起mina这个java网络通讯组件可是大名鼎鼎,说是高性能,的却性能强大。但是还有比它性能更强大的呢 就是这个 grizzly,glassfish就基于它。是个比mina性能更为强大的网络通讯组件,同样基于java NIO开发。我贴的代码是用它实现一个http服务器。

1.[代码][Java]代码

import org.glassfish.grizzly.http.server.HttpServer;

import org.glassfish.grizzly.http.server.NetworkListener;

import org.glassfish.grizzly.threadpool.ThreadPoolConfig;

import java.io.IOException;

public class MyHttpServer {

public static void main(String[] args) {

HttpServer httpServer = new HttpServer();

NetworkListener networkListener = new NetworkListener("sample-listener", "127.0.0.1", 18888);

ThreadPoolConfig threadPoolConfig = ThreadPoolConfig

.defaultConfig()

.setCorePoolSize(1)

.setMaxPoolSize(1);

networkListener.getTransport().setWorkerThreadPoolConfig(threadPoolConfig);

httpServer.addListener(networkListener);

MyHttpHandler httpHandler = new MyHttpHandler();

httpServer.getServerConfiguration().addHttpHandler( httpHandler,new String[]{"/sample"});

try {

httpServer.start();

while(true){

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

import org.glassfish.grizzly.http.server.HttpHandler;

import org.glassfish.grizzly.http.server.Request;

import org.glassfish.grizzly.http.server.Response;

import org.glassfish.grizzly.http.util.HttpStatus;

import org.glassfish.grizzly.threadpool.GrizzlyExecutorService;

import org.glassfish.grizzly.threadpool.ThreadPoolConfig;

import java.util.concurrent.ExecutorService;

public class MyHttpHandler extends HttpHandler {

final ExecutorService complexAppExecutorService =

GrizzlyExecutorService.createInstance(

ThreadPoolConfig.defaultConfig()

.copy()

.setCorePoolSize(5)

.setMaxPoolSize(5));

public void service(final Request request, final Response response) throws Exception {

response.suspend(); // Instruct Grizzly to not flush response, once we exit the service(...) method

complexAppExecutorService.execute(new Runnable() { // Execute long-lasting task in the custom thread

public void run() {

try {

response.setContentType("text/plain");

// Simulate long lasting task

Thread.sleep(10000);

response.getWriter().write("Complex task is done!");

} catch (Exception e) {

response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR_500);

} finally {

response.resume();

}

}

});

}

}

java grizzly_java grizzly实现http服务器相关推荐

  1. Grizzly开发Echo服务器实战

    Grizzly开发Echo服务器实战 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 用Java编写可伸缩的服务器应用是有难度的,用Java NIO开发. ...

  2. java http服务端例子_简单的用 Java Socket 编写的 HTTP 服务器应用

    /*** SimpleHttpServer.java*/importjava.io.*;importjava.net.*;importjava.util.StringTokenizer;/*** 一个 ...

  3. java 直播服务器_MyLive--使用JAVA实现的直播RTMP服务器

    MyLive 使用JAVA实现的直播RTMP服务器 介绍 MyLive 是一个我用业余时间使用Java实现的RTMP直播服务器,它并不是一个全功能的RTMP实现,也就是说不支持seek和play2命令 ...

  4. 用JAVA SOCKET编程,读服务器几个字符,再写入本地显示

    Server: package cn.itcast.framework.socket;import java.io.BufferedReader; import java.io.IOException ...

  5. Java Web项目在Linux服务器自动化部署续-整合Bamboo

    前言 Java Web项目在Linux服务器自动化部署 在这一篇中, 完成的是一个自动化部署的脚本. Atlassian Bamboo 是一款持续集成构建服务器软件(Build Server) 软件地 ...

  6. JAVA实现简单的FTP服务器

    JAVA实现简单的ftp服务器 通过界面可启动FTP服务,先看看看效果,然后具体代码附后. 点击启动FTP服务后,可以看到控制台: 可以通过get和send以及dir执行相对应的操作. 点击退出按钮, ...

  7. Java web项目如何在服务器上跑起来(有源码)

    Java web项目如何在服务器上跑起来(有源码) 要用到的工具有:myeclipse.宝塔,navicat premium.xshell. 概述:本博文主要是帮助入门级新手怎么从网上下载一个java ...

  8. Java项目部署到云服务器的思路

    Java项目部署到云服务器的思路 1 部署项目的前提条件 1.1 购买云服务器 我购买的是腾讯云的服务器,第一年享优惠88一年 cpu好像两核的,作为入门级的也算够用了 如果第二年该续费的时候,我记得 ...

  9. 微信公众号-java上传图片素材到微信服务器基于事件推送两条消息

    微信公众号-java上传图片素材到微信服务器&基于事件推送两条消息 场景:基于微信扫码登录/关注事件,向用户推送两条消息. 分析:翻阅了微信开发者文档和一些其他资料发现,公众号针对用户关注/扫 ...

最新文章

  1. MOSS2007 实现单点登陆
  2. 整理了一个castle的文档,供大家学习使用
  3. 百万级分组大报表开发与呈现
  4. 使用Tensoflow实现梯度下降算法的一次线性拟合
  5. java 将json转换成sql_search-sqlparams
  6. C# 根据年、月、周、星期获得日期等
  7. kubernetes 安装 helm,ingress
  8. 没有躲过的坑--vector使用erase后迭代器变成野指针
  9. Android系统启动-SystemServer下篇
  10. 姚前:算法经济与算法监管
  11. 寻找两个正序数组中的中位数 数组
  12. 【谷粒学院】项目总结
  13. eclipse在线汉化站点
  14. [linux]LINUX程序设计cc1--入门
  15. 用c语言合并两个有序单链表,c++ 如何合并两个有序链表
  16. HTML段落前面怎么加黑点,Word文档段落前面的那个小黑点,是怎么搞出来得呀?...
  17. 算法设计与分析——顺序统计量:最大值与最小值
  18. D2RQ 的安装和基本使用
  19. Android 集成 google 登录并获取 性别等隐私信息
  20. 重复性、分辨率的计算方法

热门文章

  1. python3 修改字符串的四种方法 错误 'str' object does not support item assignment 解决方法
  2. 百度搜索 带网页特效的关键词
  3. 交换分区的查看与扩容
  4. Linux操作系统基础 Intel32位系统架构总览
  5. swiper 定义放多少张图片,小程序swiper轮播图,自定义样式,两种方法:原生方法和bindchange方法;将点点改为数字(当前第几张 /总共几张);点击点点跳转当前图片...
  6. Qt下使用Shader绘制三角形
  7. python计算结果传给spark_将Python函数作为对象传递给Spark
  8. realme怎么互传_realme真我X7 Pro首发体验:非常轻快,颜值不赖
  9. php 实现 pacs 系统,影像管理系统(PACS)
  10. node 升级_技术周刊( Node.js 12 性能大提升 2019-04-30)