基于Netty5.0中级案例一之Netty与Web
来源:互联网 发布:师洋淘宝店截图 编辑:程序博客网 时间:2024/05/17 06:04
基于Netty5.0中级案例一之Netty与Web
2015-1-1 付政委 Netty5.0 中级篇
前言介绍:
本案例主要介绍如何在javaweb程序中加入Netty,通过web启动Netty来收发客户端连接的发来的数据。
本案例不难只不过因为不在单独使用Netty所以划分到中级篇章中。
环境需求:
1、jdk1.7
2、MyEclipse8.5【jdk配置到1.7】
3、tomcat1.7
4、Netty5.0
5、网络调试助手
代码部分:
*测试代码部分很简单,就是启动一个servlet,当网页上提交过来请求后开启Netty服务端【控制启动不要多次启动】
启动后就可以用网络调试助手测试了
NettyServletHandler.java
- package com.itstack.servlet;
- import java.io.IOException;
- import java.util.concurrent.ExecutorService;
- import java.util.concurrent.Executors;
- import javax.faces.application.Application;
- import javax.servlet.ServletContext;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import com.itstack.netty.NettyServer;
- import com.itstack.service.Global;
- public class NettyServletHandler extends HttpServlet {
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- this.doPost(request, response);
- }
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- String type = request.getParameter("type");
- if(type.equals("open")){
- if(!Global.isActive){
- NettyServer server = new NettyServer();
- //线程池
- ExecutorService es = Executors.newCachedThreadPool();
- //启动线程池
- es.execute(server);
- Global.isActive = true;
- ServletContext application=this.getServletContext();
- application.setAttribute("isActive", Global.isActive);
- }
- }
- request.getRequestDispatcher("netty/service/nettyservice.jsp").forward(request, response);
- }
- }
nettyservice.jsp
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
- <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
- <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <base href="<%=basePath%>">
- </head>
- <body>
- <table border="1">
- <tr>
- <td>状态</td>
- <td>操作</td>
- </tr>
- <tr>
- <td>${ applicationScope.isActive?"open":"close" }</td>
- <td><a href="NettyServletHandler?type=open">开启</a></td>
- </tr>
- </table>
- </body>
- </html>
测试工程下载:
NettyWeb_01.zip
0 0
- 基于Netty5.0中级案例一之Netty与Web
- Netty之——基于Netty5.0高级案例NettyWebsocket
- 基于Netty5.0入门案例一之NettyServer
- 基于Netty5.0高级案例一之NettyWebsocket
- 基于Netty5.0高级案例一之NettyWebsocket
- 基于Netty5.0入门案例二之NettyServer接收数据
- 基于Netty5.0高级案例之请求响应同步通信
- 基于Netty5的RPC架构笔记4之案例讲解
- 基于Netty5.0案例八服务端心跳包
- 基于Netty5.0高级案例二之WebSocket中关于使用ProtoBuf传输数据介绍js部分
- netty5.0之EventLoop
- Netty5用户手册之六:netty核心之ChannelHandler用法详解
- Netty5用户手册之二:使用netty实现Discard服务器程序
- Netty5用户手册之三:使用netty实现EchoServer程序
- netty5.0之Client端与Server端通信
- netty5.0之SingleThreadEventLoop & NioEventLoop
- netty5.0之Future和Promise
- netty5.0之 ChannelPipeline和ChannelHandler
- 进程和线程
- 猴子选大王
- 排序算法系列二之快速排序
- 字符串对齐
- golang实现简单文件服务器
- 基于Netty5.0中级案例一之Netty与Web
- 08Servlet
- 凤凰网实习生面试
- C++函数指针
- JVM知识点
- Codeforces Round #403 (Div. 2) B. The Meeting Place Cannot Be Changed 三分
- Java程序员必须知道的两个有关Eclipse设置
- (转)Eclipse快捷键
- 09Spring