X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fdolda%2Fjsvc%2Fj2ee%2FJ2eeRequest.java;h=8eb8b90acf4d96d45cf2d6b0bd2f50e5ca865001;hb=80e2f8488b75b0eddf8df3d22a05f5a0481c2c0e;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..8eb8b90 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,9 @@ public class J2eeRequest extends ResponseBuffer { } public MultiMap params() { - return(null); + if(params == null) + params = Params.stdparams(this); + return(params); } protected void backflush() {