【问题标题】:Set default encoding for Undertow embedded为嵌入的 Undertow 设置默认编码
【发布时间】:2017-03-24 04:26:16
【问题描述】:

我在我的应用程序中使用 Undertow 作为嵌入式 HTTP 服务器。 URL 编码和查询参数的默认编码为ISO-8859-1。我想使用UTF-8。我在文档中没有找到任何东西。有什么想法吗?

【问题讨论】:

    标签: java undertow


    【解决方案1】:

    我在DeploynentInfo 上设置了defaultEncoding。它帮助了我。

    DeploymentInfo servletBuilder =
        Servlets
            .deployment()
            .setClassLoader(Main.class.getClassLoader())
            .setDeploymentName("myapp").setContextPath("/myapp")
            .setDefaultEncoding("UTF-8");
    
    DeploymentManager manager = Servlets.defaultContainer().addDeployment(servletBuilder);
    manager.deploy();
    
    Undertow server = Undertow.builder()
        .addHttpListener(9090, "localhost")
        .setHandler(manager.start())
        .build();
    
    server.start();
    

    对于当前版本的 Undertow,默认编码是 UTF-8。同样对于非部署模式,您可以使用选项来更改默认编码:

    Undertow.builder()
           .setHandler(...)
           .setServerOption(UndertowOptions.URL_CHARSET, "UTF8")
           .addHttpListener(port, host)
           .build()
           .start();
    

    【讨论】:

      猜你喜欢
      • 2012-03-10
      • 2012-02-01
      • 1970-01-01
      • 2014-11-20
      • 2016-02-20
      • 2018-12-03
      • 2014-01-07
      • 2013-06-25
      • 2023-03-18
      相关资源
      最近更新 更多