2011-06-27 160 views
0

I在我的网站上实施搜索。我只是将搜索关键字传递给java。该网址正在格式化和构造在Java中。我的东西工作正常,如果我通过一个单词说“财务”。从URL中删除空格

但是,如果我在我的搜索关键字中有空格,例如 “财务估算”,那么它的投掷错误。我在表单/ GET方法中发送搜索关键字。

我应该采取出来的空间,看起来像一个字

这是错误

javax.servlet.ServletException 
    at com.ford.fc.atd.servlet.AbstractFrontController.doPost(AbstractFrontController.java:72) 
    at com.ford.fc.atd.servlet.AbstractFrontController.doGet(AbstractFrontController.java:40) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:226) 
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:124) 
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283) 
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) 
    at com.ford.fc.atd.servlet.filter.AbstractFilter.invokeNextFilter(AbstractFilter.java:65) 
    at com.ford.fc.atd.servlet.filter.AbstractFilter.doFilter(AbstractFilter.java:43) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) 
    at com.ford.fc.atd.servlet.filter.XSSParameterEncodingFilter.doFilter(XSSParameterEncodingFilter.java:79) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) 
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3393) 
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
    at weblogic.security.service.SecurityManager.runAs(Unknown Source) 
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2140) 
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2046) 
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1366) 
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200) 
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:172) 
+0

你能发表一些代码吗? – Mikola

+0

*您如何创建GET请求?错误本身来自URL编码搜索术语,但它取决于您当前的代码如何解决这个问题。 – Tomalak

+0

String query =“&B = 0&Btk = AllText&Btt =”+ searchTO.getSearchTerm()+“; String context =”/ something/servlet?“; String url = protocol + getDomain()+ context + query;这就是我如何构造网址 – pushya

回答

1

你可以用替换为%20位,但只带有空格的帮助,将无法逃脱其他角色。你真正需要做的是使用URL-escaping function