更多URL选项HttpServletRequest

时间:2012-08-28 14:54:06

标签: java google-app-engine http servlets httprequest

我将参数传递给服务器行

"login=testAva4&nick=testAvaNick&social=vk&saurl=http://domain.example?param1=1&param2=2&param3=3&maurl=1"

等待值saurl =“http://domain.example?param1 = 1& param2 = 2& param3 = 3”

但我得到http://domain.example?param1=1而param2 = 2 param3 = 3

从Eclipse调试

req->_parameters

{maurl=1, nick=testAvaNick, param2=2, saurl=http://domain.example?param1=1, param3=3, social=vk, login=testAva4}

获取代码中的参数,如下所示:

public class AddProfileServlet extends PlacerServlet {

    //Add new profile method
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        //Receive variables from URL
        String login = req.getParameter("login");
        String nick = req.getParameter("nick");
        String social = req.getParameter("social");
        String saurl = req.getParameter("saurl");

1 个答案:

答案 0 :(得分:0)

您应该在saurl参数上使用URLEncoding。
查看commons编解码器enter link description here项目中的URLCodec。
我认为您不需要编码整个参数部分,而只需要编码此特定参数的值。 您可以使用以下方法对字符串进行编码:

URLCodec codec = new URLCodec();
String encodedValue = codec.encode(valueToEncode);

你应该使用encodedValue作为传递给saurl参数的值。