2016-11-10 21 views

回答

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();