Java(CS)请求分流
接收信息,调用入口
protected void channelRead0(ChannelHandlerContext ctx, String msg) throws Exception {System.out.println(msg);curCtx = ctx ;//ExplainString(msg); RequetMap.instance().map(msg , this);}
RequetMap:1.单例2.init初始化3.map
1 import java.io.File; 2 import java.util.List; 3 4 import org.dom4j.Document; 5 import org.dom4j.DocumentException; 6 import org.dom4j.Element; 7 import org.dom4j.io.SAXReader; 8 9 import net.sf.json.JSONObject; 10 import server.MyServerHanlder; 11 12 /** 13 * @author kimi 14 * 15 */ 16 public class RequetMap { 17 18 List<Element> infos ; 19 20 /** 21 * 将请求的json 解析 将rid根据 xml分流到具体的方法 22 * exp: RequetMap.instance().map("{id:'8000',content:{name:'AA'}}"); 23 * @param info 24 */ 25 public void map( String info, MyServerHanlder handler) 26 { 30 31 JSONObject r = JSONObject.fromObject(info) ; 32 33 String id = r.getString("id") ; 34 String content = r.getString("content") ; 38 for (Element el : infos) { 40 if( el.attributeValue("id").equals(id)) 41 { 45 // 映射方法 46 try { 47 Class<?> class1 = Class.forName( el.attributeValue("class")); 48 49 IMapDemo demo = ( IMapDemo) class1.newInstance() ; 50 demo.Init(content , handler); 51 52 } catch ( Exception e) { 54 e.printStackTrace(); 55 } 56 } 57 } 58 59 60 61 } 62 63 64 /** 65 * 初始化请求映射器 66 * @throws DocumentException 67 */ 68 public void Init() 69 { 70 // 加载xml文件并缓存在变量里面 71 72 SAXReader saxReader = new SAXReader(); 73 74 Document document; 75 try { 76 document = saxReader.read(new File("conf/responseMapping.xml")); 77 78 // 获取根元素 79 Element root = document.getRootElement(); 81 82 // 获取所有子元素 83 infos = root.elements(); 86 87 } catch (DocumentException e) { 89 e.printStackTrace(); 90 } 91 92 } 93 94 static RequetMap _instance ; 95 public static RequetMap instance() 96 { 97 if( _instance == null) _instance = new RequetMap() ; 98 return _instance ; 99 } 100 }
IMapDemo
1 public interface IMapDemo { 2 3 /** 4 * 5 * @param info 6 * 传参数进来的信息 需要进行再处理 7 */ 8 public void Init( String info, Object handler) ; 9 }
GameLogin
1 import model.GameCenter; 2 import server.MyServerHanlder; 3 4 public class GameLogin implements IMapDemo { 5 6 @Override 7 public void Init(String info , Object handler) { 8 // TODO Auto-generated method stub 9 MyServerHanlder myhandler = (MyServerHanlder) handler ; 10 // TODO Auto-generated method stub 11 myhandler.curPlayer = GameCenter.instance().AddPlayer(info) ; 12 GameCenter.instance().RefreshState(); 13 } 14 15 }
responseMapping.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <include> 3 <item id="8000" desc="请求描述8000" class="MapFunc.MapLoginLogin"/> 4 <item id="8001" desc="请求描述8001" class="MapFunc.MapLoginLogout"/> 5 6 <item id="0001" desc="添加用户注册名字" class="MapFunc.GameLogin"/> 7 <item id="0002" desc="用户准备" class="MapFunc.GamePrepare"/> 8 <item id="0003" desc="用户报数" class="MapFunc.GameCount"/> 9 <item id="0004" desc="用户下一局" class="MapFunc.GameNext"/> 10 </include>
转载于:https://www.cnblogs.com/didiaodexi/p/6513068.html
Java(CS)请求分流相关推荐
- 解决Fiddler不能监听Java HttpURLConnection请求的方法
在默认情况下,Fiddler不能监听Java HttpURLConnection请求.究其原因,Java的网络通信协议栈可能浏览器的通信协议栈略有区别,Fiddler监听Http请求的原理是 在应用程 ...
- java http请求
java http 请求几种工具 Jsoup <dependency><groupId>org.jsoup</groupId><artifactId>j ...
- java页面请求跑批处理sql的有关问题
java页面请求跑批处理sql的问题 我想做一个页面,用户登录后可以点一个按钮,开始跑批处理sql. 要求:1,用户的页面不能重复点击跑批按钮. 2,用户的会话关闭后,批处理仍然能跑完.除非用户自 ...
- Java Web 请求转发与请求重定向
Java Web 请求转发与请求重定向 请求转发 服务器行为,即用户向服务器发送了一次http请求,该请求可能会经过多个信息资源处理以后菜返回给用户,各个信息资源使用请求转发机制互相转发请求,但是用户 ...
- Java规范请求中的数字
你们都了解Java社区流程 (JCP),不是吗? JCP是为Java技术开发标准技术规范的机制. 任何人都可以注册该站点并参与对Java规范请求(JSR)的审查和提供反馈,并且任何人都可以注册成为JC ...
- java 判断请求为 ajax请求_Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求...
Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java 判断请求是不是ajax请求,Java判断是否为ajax请求 >>>>>> ...
- Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求
Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求 Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java 判断 ...
- Java HttpURLConnection示例– Java HTTP请求GET,POST
HttpURLConnection class from java.net package can be used to send Java HTTP Request programmatically ...
- java获取请求ip的方法
在上篇文章中我们介绍了 java获取请求 ip的方法,那么这篇文章我们就来详细讲解下获取请求 ip的方法.获取请求 ip的方法是基于 HTTP协议的,其原理如下: 1.用 web应用程序,将 web服 ...
最新文章
- (转)iOS7界面设计规范(1) - UI基础 - 为iOS7而设计
- hierarchyviewer
- LeetCode15:三数之和(转载思路)
- CV Code | 本周新出计算机视觉开源代码汇总(含自动驾驶目标检测、医学图像分割、风格迁移、语义分割、目标跟踪等)...
- js中值得推荐的Memoization
- 激战 5G:国内外技术的分水岭
- 本地VM安装虚拟机,使用xshell连接
- 推荐给初学LSTM或者懂个大概却不完全懂的人
- 立创EDA学习笔记(3)——创建元件封装
- 电感式dcdc原理(转)
- 音视频开发(四十四):M3U8边缓存边播放
- 小米手机相机的专业模式
- css3 两种背景色,CSS3 / 实例改变背景色和位置 - 汇智网
- matlab中的regress函数总结
- 【BZOJ4372】烁烁的游戏(点分树)
- 渗透测试类型(白盒测试、黑盒测试)和漏洞扫描器
- 网约车成品源码 代驾顺风车拼车打车货运司乘双端小程序安卓苹果源码
- 用于 LLM 应用开发的 LangChain 中文版
- 打印机驱动下载ts3180 ts3480
- JAVA代码行数统计工具(是时候看看程序员真实的的代码量了)