Sep 16, 2019 12:30:35 AM org.xnio.Xnio INFO: XNIO version 3.3.8.Final Sep 16, 2019 12:30:35 AM org.xnio.nio.NioXnio INFO: XNIO NIO Implementation Version 3.3.8.Final Sep 16, 2019 12:30:37 AM demo.servlet.DispatchToSelfServlet doGet --- Example 1: Request "http://localhost:8080/myapp/files/%CF%87%CF%88%CF%89" INFO: Dispatch-To-Self Servlet : request = io.undertow.servlet.spec.HttpServletRequestImpl Sep 16, 2019 12:30:37 AM demo.servlet.DispatchToSelfServlet doGet INFO: Dispatch-To-Self Servlet : HttpServletRequest#getRequestURI() = "/myapp/files/%CF%87%CF%88%CF%89" Sep 16, 2019 12:30:37 AM demo.servlet.DispatchToSelfServlet doGet INFO: Dispatch-To-Self Servlet: HttpServletRequest#getServletPath() = "/files" Sep 16, 2019 12:30:37 AM demo.servlet.DispatchToSelfServlet doGet INFO: Dispatch-To-Self Servlet : HttpServletRequest#getPathInfo() = "/χψω" Sep 16, 2019 12:30:37 AM demo.servlet.DispatchToSelfServlet doGet INFO: Dispatch-To-Self Servlet : asyncContext = io.undertow.servlet.spec.AsyncContextImpl --- AsyncContext#dispatch() --- Servlet filter is called Sep 16, 2019 12:30:37 AM demo.filter.DemoFilter doFilter INFO: Demo Filter : request = io.undertow.servlet.spec.HttpServletRequestImpl Sep 16, 2019 12:30:37 AM demo.filter.DemoFilter doFilter INFO: Demo Filter : HttpServletRequest#getRequestURI() = "/myapp/files/%CF%87%CF%88%CF%89" Sep 16, 2019 12:30:37 AM demo.filter.DemoFilter doFilter INFO: Demo Filter : HttpServletRequest#getServletPath() = "/files" Sep 16, 2019 12:30:37 AM demo.filter.DemoFilter doFilter INFO: Demo Filter : HttpServletRequest#getPathInfo() = "/%CF%87%CF%88%CF%89" ^^^^^^^^^^^^^^^^^^^ Wrong. It should be "/χψω" --- Dispatched servlet is called Sep 16, 2019 12:30:37 AM demo.servlet.DispatchToSelfServlet doGet INFO: Dispatch-To-Self Servlet (dispatched) : request = io.undertow.servlet.spec.HttpServletRequestImpl Sep 16, 2019 12:30:37 AM demo.servlet.DispatchToSelfServlet doGet INFO: Dispatch-To-Self Servlet (dispatched) : HttpServletRequest#getRequestURI() = "/myapp/files/%CF%87%CF%88%CF%89" Sep 16, 2019 12:30:37 AM demo.servlet.DispatchToSelfServlet doGet INFO: Dispatch-To-Self Servlet (dispatched): HttpServletRequest#getServletPath() = "/files" Sep 16, 2019 12:30:37 AM demo.servlet.DispatchToSelfServlet doGet INFO: Dispatch-To-Self Servlet (dispatched) : HttpServletRequest#getPathInfo() = "/%CF%87%CF%88%CF%89" ^^^^^^^^^^^^^^^^^^^ Wrong. It should be "/χψω" --- Example 2: Request "http://localhost:8080/myapp/%CE%B1%CE%B2%CE%B3/%CF%87%CF%88%CF%89" Sep 16, 2019 12:30:41 AM demo.servlet.DispatchToSelfServlet doGet INFO: Dispatch-To-Self Servlet : request = io.undertow.servlet.spec.HttpServletRequestImpl Sep 16, 2019 12:30:41 AM demo.servlet.DispatchToSelfServlet doGet INFO: Dispatch-To-Self Servlet : HttpServletRequest#getRequestURI() = "/myapp/%CE%B1%CE%B2%CE%B3/%CF%87%CF%88%CF%89" Sep 16, 2019 12:30:41 AM demo.servlet.DispatchToSelfServlet doGet INFO: Dispatch-To-Self Servlet: HttpServletRequest#getServletPath() = "/αβγ" Sep 16, 2019 12:30:41 AM demo.servlet.DispatchToSelfServlet doGet INFO: Dispatch-To-Self Servlet : HttpServletRequest#getPathInfo() = "/χψω" Sep 16, 2019 12:30:41 AM demo.servlet.DispatchToSelfServlet doGet INFO: Dispatch-To-Self Servlet : asyncContext = io.undertow.servlet.spec.AsyncContextImpl --- AsyncContext#dispatch() --- Servlet filter is called Sep 16, 2019 12:30:41 AM demo.filter.DemoFilter doFilter INFO: Demo Filter : request = io.undertow.servlet.spec.HttpServletRequestImpl Sep 16, 2019 12:30:41 AM demo.filter.DemoFilter doFilter INFO: Demo Filter : HttpServletRequest#getRequestURI() = "/myapp/%CE%B1%CE%B2%CE%B3/%CF%87%CF%88%CF%89" Sep 16, 2019 12:30:41 AM demo.filter.DemoFilter doFilter INFO: Demo Filter : HttpServletRequest#getServletPath() = "/%CE%B1%CE%B2%CE%B3/%CF%87%CF%88%CF%89" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Wrong. It should be "/αβγ" Sep 16, 2019 12:30:41 AM demo.filter.DemoFilter doFilter INFO: Demo Filter : HttpServletRequest#getPathInfo() = "null" ^^^^ Wrong. It should be "/χψω" --- 404 Response. ...It shouldn't be happened? --- Example 3: Request "http://localhost:8080/myapp/first/%CF%87%CF%88%CF%89" Sep 16, 2019 12:43:54 AM demo.servlet.FirstServlet doGet INFO: First Servlet : request = io.undertow.servlet.spec.HttpServletRequestImpl Sep 16, 2019 12:43:54 AM demo.servlet.FirstServlet doGet INFO: First Servlet : HttpServletRequest#getRequestURI() = "/myapp/first/%CF%87%CF%88%CF%89" Sep 16, 2019 12:43:54 AM demo.servlet.FirstServlet doGet INFO: First Servlet : HttpServletRequest#getServletPath() = "/first" Sep 16, 2019 12:43:54 AM demo.servlet.FirstServlet doGet INFO: First Servlet : HttpServletRequest#getPathInfo() = "/χψω" Sep 16, 2019 12:43:54 AM demo.servlet.FirstServlet doGet INFO: First Servlet : asyncContext = io.undertow.servlet.spec.AsyncContextImpl Sep 16, 2019 12:43:54 AM demo.servlet.FirstServlet doGet INFO: First Servlet : dispatch to "/second/%CF%87%CF%88%CF%89" --- AsyncContext#dispatch("/second/%CF%87%CF%88%CF%89") --- Servlet filter is called Sep 16, 2019 12:43:54 AM demo.filter.DemoFilter doFilter INFO: Demo Filter : request = io.undertow.servlet.spec.HttpServletRequestImpl Sep 16, 2019 12:43:54 AM demo.filter.DemoFilter doFilter INFO: Demo Filter : HttpServletRequest#getRequestURI() = "/myapp/second/%CF%87%CF%88%CF%89" Sep 16, 2019 12:43:54 AM demo.filter.DemoFilter doFilter INFO: Demo Filter : HttpServletRequest#getServletPath() = "/second" Sep 16, 2019 12:43:54 AM demo.filter.DemoFilter doFilter INFO: Demo Filter : HttpServletRequest#getPathInfo() = "/%CF%87%CF%88%CF%89" ^^^^^^^^^^^^^^^^^^^ Wrong. It should be "/χψω" --- Dispatched servlet is called Sep 16, 2019 12:43:54 AM demo.servlet.SecondServlet doGet INFO: Second Servlet : request = io.undertow.servlet.spec.HttpServletRequestImpl Sep 16, 2019 12:43:54 AM demo.servlet.SecondServlet doGet INFO: Second Servlet : HttpServletRequest#getRequestURI() = "/myapp/second/%CF%87%CF%88%CF%89" Sep 16, 2019 12:43:54 AM demo.servlet.SecondServlet doGet INFO: Second Servlet : HttpServletRequest#getServletPath() = "/second" Sep 16, 2019 12:43:54 AM demo.servlet.SecondServlet doGet INFO: Second Servlet : HttpServletRequest#getPathInfo() = "/%CF%87%CF%88%CF%89" ^^^^^^^^^^^^^^^^^^^ Wrong. It should be "/χψω"