I am using Tomcat 4.1.29 on Windows 2000 Server with Java SDK 1.4.2. On the user query forms in my application "%" is a valid wildcard for "all" as it is in the actual database query. I don't want to use blank for all because I don't want users to accidentally search for all records; i.e. they have to actually enter % to search for all records in a value. Blank parameters are ignored.
Passing % as a parameter via GET or POST causes the error http://website/findnaics.jsp?code=4% I am using POST methods for the forms as in... <form method="POST" name="findform" action="findnaics.jsp"> The request.getParameter line is actually generating the error if the parameter contains a %. String code = request.getParameter("code"); I've seen this error when searching in regards to forwarding pages (http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3986) but it was considered "invalid" because forward expects an encoded url. However, I am simply passing a parameter and submitting a form. Doing something like 'action = <%= response.encodeURL("findnaics.jsp") %>' doesn't do anything for me. Using quotes/backslash, etc. doesn't make any difference. These query parameters can be passed by both GET and POST so encoding the URL isn't an option even if it did work. When "%" is passed as a parameter I get the following error for the getParameter statement. java.io.CharConversionException: EOF at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:177) at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:144) at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java :514) at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java :541) at org.apache.tomcat.util.http.Parameters.handleQueryParameters(Parameters. java:318) at org.apache.coyote.tomcat4.CoyoteRequest.parseRequestParameters(CoyoteReq uest.java:1927) at org.apache.coyote.tomcat4.CoyoteRequest.getParameter(CoyoteRequest.java: 905) at org.apache.coyote.tomcat4.CoyoteRequestFacade.getParameter(CoyoteRequest Facade.java:174) at org.apache.jsp.findnaics_jsp._jspService(findnaics_jsp.java:55) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja va:210) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv e.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv e.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:643) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator Base.java:553) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.ja va:246) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:241 7) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java :180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa lve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java :172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:78 1) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC onnection(Http11Protocol.java:549) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:58 9) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool .java:666) at java.lang.Thread.run(Thread.java:534) --- Bill Faulk [EMAIL PROTECTED] 801-302-8930 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
