X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fdolda%2Fjsvc%2Fj2ee%2FJ2eeRequest.java;h=6b1ba0b528116ba26e34c8cdb9ca3e02ce33a127;hb=9f01683a8fd45c753e6aa6580705e0810b701355;hp=9beddf501c6b1824d2246091a00c53b0cdf8c62d;hpb=1c868f4eeb5afebdcf631441985d5ba17fcbd6b2;p=jsvc.git diff --git a/src/dolda/jsvc/j2ee/J2eeRequest.java b/src/dolda/jsvc/j2ee/J2eeRequest.java index 9beddf5..6b1ba0b 100644 --- a/src/dolda/jsvc/j2ee/J2eeRequest.java +++ b/src/dolda/jsvc/j2ee/J2eeRequest.java @@ -13,7 +13,8 @@ public class J2eeRequest extends ResponseBuffer { private HttpServletRequest req; private HttpServletResponse resp; private String method, path; - private URL url; + private URL url, context; + private MultiMap params = null; private Map props = new HashMap(); public J2eeRequest(ServletConfig cfg, HttpServletRequest req, HttpServletResponse resp) { @@ -59,6 +60,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)); } @@ -73,13 +75,13 @@ public class J2eeRequest extends ResponseBuffer { 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 +103,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 +149,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() {