# HG changeset patch # User paulb # Date 1088791565 0 # Node ID bd434c81cf2a9d7c24a83fe9ee69cb0e141aa29d # Parent dbdb94b01875bc913620f487b6978e377fbda28f [project @ 2004-07-02 18:06:05 by paulb] Fixed various issues in the Java Servlet implementation. diff -r dbdb94b01875 -r bd434c81cf2a WebStack/JavaServlet.py --- a/WebStack/JavaServlet.py Fri Jul 02 18:05:21 2004 +0000 +++ b/WebStack/JavaServlet.py Fri Jul 02 18:06:05 2004 +0000 @@ -61,7 +61,7 @@ # NOTE: Discarding much of the information received. self.cookies_in = {} - for cookie in self.request.getCookies(): + for cookie in self.request.getCookies() or []: cookie_name = cookie.getName() self.cookies_in[cookie_name] = Cookie(cookie_name, cookie.getValue()) @@ -103,13 +103,13 @@ """ headers = {} - header_names = self.request.getHeaderNames() - if header_names: - for header_name in header_names: + header_names_enum = self.request.getHeaderNames() + while header_names_enum.hasMoreElements(): - # NOTE: Retrieve only a single value (not using getHeaders). + # NOTE: Retrieve only a single value (not using getHeaders). - headers[header_name] = self.request.getHeader(header_name) + header_name = header_names_enum.nextElement() + headers[header_name] = self.request.getHeader(header_name) return headers @@ -121,7 +121,11 @@ 'key' is treated as a case-insensitive string. """ - return self.request.getHeaders(key) + values = [] + headers_enum = self.request.getHeaders(key) + while headers_enum.hasMoreElements(): + values.append(headers_enum.nextElement()) + return values def get_content_type(self): @@ -130,7 +134,7 @@ request, along with the charset employed. """ - content_types = self.get_header_values("Content-Type") + content_types = self.get_header_values("Content-Type") or [] if len(content_types) >= 1: return self.parse_content_type(content_types[0]) else: @@ -142,7 +146,7 @@ Returns the character set preferences. """ - accept_charsets = self.get_header_values("Accept-Charset") + accept_charsets = self.get_header_values("Accept-Charset") or [] if len(accept_charsets) >= 1: return self.parse_content_preferences(accept_charsets[0]) else: @@ -155,7 +159,7 @@ the transaction. """ - accept_languages = self.get_header_values("Accept-Language") + accept_languages = self.get_header_values("Accept-Language") or [] if len(accept_languages) >= 1: return self.parse_content_preferences(accept_languages[0]) else: @@ -241,8 +245,9 @@ parameter_map = self.request.getParameterMap() fields = {} - for key in parameter_map.keySet(): - fields[key] = parameter_map[key] + if parameter_map: + for key in parameter_map.keySet(): + fields[key] = parameter_map[key] return fields def get_user(self): @@ -291,7 +296,7 @@ the transaction. """ - return self.response.getWriter() + return self.response.getOutputStream() def get_response_code(self):