Tag: query string

如何使用Java HttpServer / HttpExchange在GET中获取查询字符串?

我试图在Java中创建一个简单的HttpServer来处理GET请求,但是当我尝试获取请求的GET参数时,我注意到HttpExchange类没有方法。 有人知道一种简单的方法来读取GET参数(查询字符串)吗? 这是我的处理程序的样子: public class TestHandler{ @Override public void handle(HttpExchange exc) throws IOxception { String response = “This is the reponse”; exc.sendResponseHeaders(200, response.length()); // need GET params here OutputStream os = exc.getResponseBody(); os.write(response.getBytes()); os.close(); } } ..和主要方法: public static void main(String[] args) throws Exception{ // create server on port 8000 InetSocketAddress address = new InetSocketAddress(8000); […]

如何validation使用Struts2 Json插件发送的JSON而不抛出exception

假设一个动作中有一个Double变量,并且在请求体中发送的值是这样的 {“dblField”:””} 和interceptorStack看起来像: <!—-> true idIo 然后该动作抛出一个NumberFormatException ,根据这里的插件源代码很好 – https://github.com/apache/struts2/blob/STRUTS_2_3_15_X/plugins/json/src/main/java/org/apache/struts2/ JSON / JSONPopulator.java 但是这个exception没有在插件中处理,因此,从动作抛出exception返回,这导致global-exception-handler的触发。 如果使用查询字符串发送相同的请求, ?dblField=则操作返回INPUT 。 那么,我怎样才能使json-plugin以相同的方式返回INPUT并设置适当的fieldErrors而不是抛出NumberFormatException并触发globalExceptionHandler呢?

当相对URI包含空路径时,Java的URI.resolve是否与RFC 3986不兼容?

我相信Java的URI.resolve方法的定义和实现与RFC 3986第5.2.2节不兼容。 我知道Java API定义了该方法的工作方式,如果它现在被更改,它会破坏现有应用程序,但我的问题是: 任何人都可以确认我的理解这个方法与RFC 3986不兼容吗? 我正在使用这个问题中的示例: java.net.URI仅针对查询字符串进行解析 ,我将在此处复制: 我正在尝试使用JDK java.net.URI构建URI。 我想附加一个绝对URI对象,一个查询(在String中)。 例如: URI base = new URI(“http://example.com/something/more/long”); String queryString = “query=http://local:282/rand&action=aaaa”; URI query = new URI(null, null, null, queryString, null); URI result = base.resolve(query); 理论(或我认为)是决心应该回归: http://example.com/something/more/long?query=http://local:282/rand&action=aaaa 但我得到的是: http://example.com/something/more/?query=http://local:282/rand&action=aaaa 我对RFC 3986第5.2.2节的理解是,如果相对URI的路径为空,那么将使用基URI的整个路径: if (R.path == “”) then T.path = Base.path; if defined(R.query) then T.query = R.query; […]