X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fdolda%2Fjsvc%2Fj2ee%2FJ2eeRequest.java;h=466b81c7616703440a2f764657dd209efde0e03e;hb=ed8f7296bfb39fbd66b79a113d4a72c6ade71fc0;hp=f3946536d7f7fe3e9d96a5dd9edf14300cac94a2;hpb=433ee7759d4bc5a22e0cf4a98b36554a508f25c3;p=jsvc.git diff --git a/src/dolda/jsvc/j2ee/J2eeRequest.java b/src/dolda/jsvc/j2ee/J2eeRequest.java index f394653..466b81c 100644 --- a/src/dolda/jsvc/j2ee/J2eeRequest.java +++ b/src/dolda/jsvc/j2ee/J2eeRequest.java @@ -13,8 +13,8 @@ public class J2eeRequest extends ResponseBuffer { private HttpServletRequest req; private HttpServletResponse resp; private String method, path; - private URL url; - private Map props = new HashMap(); + private URL url, context; + private MultiMap params = null; public J2eeRequest(ServletConfig cfg, HttpServletRequest req, HttpServletResponse resp) { this.cfg = cfg; @@ -59,6 +59,7 @@ public class J2eeRequest extends ResponseBuffer { q = ""; try { url = new URL(scheme, host, port, req.getContextPath() + req.getServletPath() + pi + q); + context = new URL(scheme, host, port, req.getContextPath()); } catch(MalformedURLException e) { throw(new Error(e)); } @@ -69,17 +70,13 @@ public class J2eeRequest extends ResponseBuffer { path = path.substring(1); } - public Map props() { - return(props); - } - - public ServerContext ctx() { - return(new J2eeContext(cfg, req, resp)); - } - public SocketAddress remoteaddr() { try { - return(new InetSocketAddress(InetAddress.getByName(req.getRemoteAddr()), req.getRemotePort())); + /* Apparently getRemotePort returns -1 when running on Tomcat over AJP. */ + int port = req.getRemotePort(); + if(port < 0) + port = 0; + return(new InetSocketAddress(InetAddress.getByName(req.getRemoteAddr()), port)); } catch(UnknownHostException e) { /* req.getRemoteAddr should always be a valid IP address, * so this should never happen. */ @@ -101,6 +98,14 @@ public class J2eeRequest extends ResponseBuffer { return(url); } + public URL rooturl() { + return(context); + } + + public ServerContext ctx() { + return(ThreadContext.current().server()); + } + public String method() { return(method); } @@ -139,7 +144,15 @@ public class J2eeRequest extends ResponseBuffer { } public MultiMap params() { - return(null); + if(params == null) { + params = Params.urlparams(this); + if(method == "POST") { + MultiMap pp = Params.postparams(this); + if(pp != null) + params.putAll(pp); + } + } + return(params); } protected void backflush() {