小编Dr.*_*ibo的帖子

具有适当复数的Java国际化(i18n)

我打算使用Java的标准i18n系统和复数形式的ChoiceFormat类,但后来意识到它不能处理某些语言的复杂多元规则(例如波兰语).如果它只处理类似英语的语言,那么它似乎有点无意义.

有什么选择来实现正确的复数形式?使用它们的利弊是什么?

java internationalization messageformat plural

33
推荐指数
1
解决办法
9002
查看次数

当使用HTTP进行反向代理时,Jetty安全会话cookie

我在Jetty 6前面使用反向代理(Apache).用户使用SSL连接到Apache,Apache通过普通HTTP将一些请求转发给Jetty.我希望Jetty使用安全会话cookie.

人们会认为这将是安装Jetty后人们做的第一件事 - 但我很难让它上班.

我设置Jetty使用安全cookie,如另一个stackoverflow问题中所述.但是,Jetty拒绝使用安全cookie - 我认为这是因为反向代理的连接不是SSL.

我试图说服Jetty它正在根据sonatype.com上的描述处理来自SSL的请求.也就是说,我在Apache中添加了以下内容:

RequestHeader set X-Forwarded-Scheme "https"
Run Code Online (Sandbox Code Playgroud)

在/etc/jetty/jetty.xml中:

<Set name="handler">
  <New id="Handlers" class="org.mortbay.jetty.handler.rewrite.RewriteHandler">
    <Set name="rules">
      <Array type="org.mortbay.jetty.handler.rewrite.Rule">
        <Item>
          <New id="forwardedHttps"
               class="org.mortbay.jetty.handler.rewrite.ForwardedSchemeHeaderRule">
            <Set name="header">X-Forwarded-Scheme</Set>
            <Set name="headerValue">https</Set>
            <Set name="scheme">https</Set>
          </New>
        </Item>
      </Array>
    </Set>

    <Set name="handler">
      <New id="Handlers" class="org.mortbay.jetty.handler.HandlerCollection">
        <Set name="handlers">
          <Array type="org.mortbay.jetty.Handler">
            <Item>
              <New id="Contexts" class="org.mortbay.jetty.handler.ContextHandlerCollection"/>
            </Item>
            <Item>
              <New id="DefaultHandler" class="org.mortbay.jetty.handler.DefaultHandler"/>
            </Item>
            <Item>
              <New id="RequestLog" class="org.mortbay.jetty.handler.RequestLogHandler"/>
            </Item>
          </Array>
        </Set>
      </New>
    </Set>
  </New>
</Set>
Run Code Online (Sandbox Code Playgroud)

仍然没有安全的cookie.有什么建议?

ssl proxy jetty

9
推荐指数
1
解决办法
3824
查看次数

Jetty 会话 cookie 上的 SameSite 标志

如果我使用它来托管战争文件,如何将标志 SameSite=Lax 或 SameSite=Strict 添加到由 Jetty 生成的会话 cookie?

jetty session-cookies

6
推荐指数
1
解决办法
3503
查看次数

如何使用 Apache httpcomponents 从 NHttpRequestHandler 中告诉远程 IP 地址?

我正在使用 Apache httpcomponents 实现彗星式(延迟响应)http 服务器。我的代码与http://hc.apache.org/httpcomponents-core-ga/examples.html上的“基本非阻塞 HTTP 服务器”示例非常相似

我使用 DefaultServerIOEventDispatch 和 DefaultListeningIOReactor 来调度请求,就像在示例代码中一样。在我的 NHttpRequestHandler 中,我想记录每个请求的 IP 地址。

在 HttpRequestHandler 中,您可以访问 HttpRequest、HttpResponse 和 HttpContext。使用 NHttpRequestHandler,您还有一个 NHttpResponseTrigger。如何获取请求来自的远程 IP 地址?我看不出如何使用可用的对象来做到这一点。

更新,这是我最终使用的 Scala 代码:

def getIp(context: HttpContext): Option[String] = {
  val conn = context.getAttribute(ExecutionContext.HTTP_CONNECTION)

  conn match {
    case inet: HttpInetConnection =>
      inet.getRemoteAddress match {
        case sock: java.net.InetSocketAddress => // HttpComponents 4.1
          Some(sock.getAddress.getHostAddress)
        case adr: java.net.InetAddress => // HttpComponents 4.2
          Some(adr.getHostAddress)
        case unknown =>
          Some(unknown.toString)
      }
    case _ => None
  }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,HttpComponents …

java apache-httpcomponents

3
推荐指数
1
解决办法
2535
查看次数

如何使用HttpClient 4.3设置TCP_NODELAY和SO_KEEPALIVE

使用Apache HttpClient 4.3如何在不使用已弃用的HttpParams的情况下关闭Nagle的算法(TCP_NODELAY)并打开TCP保持活动数据包(SO_KEEPALIVE)?

注意:TCP keep-alive和HTTP keep-alive是两回事.

apache-httpclient-4.x

2
推荐指数
1
解决办法
3471
查看次数