加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Netty 拭魅战:怎样编写一个麻小俱全的 Web 框架

发布时间:2019-02-20 12:51:18 所属栏目:建站 来源:逅弈
导读:进修 Netty 也有一段时刻了,为了更好的把握 Netty,我手动造了个轮子,一个基于 Netty 的 web 框架:redant,中文叫红火蚁。建设这个项目标目标首要是进修行使 Netty,俗话说不要等闲的造轮子,可是通过造轮子我们可以学到许多优越开源框架的计划思绪,编

Netty 中是通过 HttpRequest 的 Header 来生涯哀求中所携带的 Cookie的,以是要读取 Cookie 的话,最要害的是获取到 HttpRequest。而 HttpRequest 可以在 ChannelHandler 中拿到,通过 HttpServerCodec 举办编解码,Netty 已经帮我们把哀求的数据转换成 HttpRequest 了。可是这个 HttpRequest 只在 ChannelHandler 中才气会见到,而处理赏罚 Cookie 凡是是用户自界说的操纵,而且对用户来说他是不体谅 HttpRequest 的,他只必要通过 CookieManager 去获取一个 Cookie 就行了。

这种环境下,最得当的就是将 HttpRequest 工具生涯在一个 ThreadLocal 中,在 CookieManager 中必要获取的时辰,直接到 ThreadLocal 中去取出来就可以了,如下列代码所示:

  1. @Override 
  2. public Set<Cookie> getCookies() { 
  3.     HttpRequest request = TemporaryDataHolder.loadHttpRequest(); 
  4.     Set<Cookie> cookies = new HashSet<>(); 
  5.     if(request != null) { 
  6.         String value = request.headers().get(HttpHeaderNames.COOKIE); 
  7.         if (value != null) { 
  8.             cookies = ServerCookieDecoder.STRICT.decode(value); 
  9.         } 
  10.     } 
  11.     return cookies; 

TemporaryDataHolder 就是谁人通过 ThreadLocal 生涯了 HttpRequest 的类。

写 Cookie

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读