你好,我现在有一个jsp页面,想传一个String变量给下个页面。
String是一个书名“Thinking in C++”, 在传递的时候好像不能有空格,我就写成
“viewbook.jsp?title=Thinking+in+C++&uid=1”, 这时候出现问题了,
应该是C++后面的两个加号弄的。导致后面的参数都得不到了。请问该如何解决啊? 谢谢

解决方案 »

  1.   

    应该是编码的问题吧?
    把"+"改成"%2B"
    空格改成"%20"
    也就是"viewbook.jsp?title=Thinking%20in%20C%2B%2B&uid=1"试试!
      

  2.   

    test1.jsp:<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>test1.jsp</title>
    </head><body>
    <%String str = "Thinking in C%2B%2B" ;%>
    <a href="test2.jsp?str=<%=str%>">test</a>
    </body>
    </html>test2.jsp:
    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>test2.jsp</title>
    </head><body>
    <%
      String str = request.getParameter("str"); 
      out.println(str);
    %>
    </body>
    </html>
      

  3.   

    如何能将要查找的数据中的符号,比如说Thinking in C++中的++在传入的时候自动改成%2B%2B呢?还是只能在传入viewbook.jsp?title=Thinking%20in%20C%2B%2B&uid=1前手动把所有空格和+都替换掉,然后下个页面读取的时候再手动都改回来?(用.replaceAll?),谢谢