从jersey @PathParameter中的URL获取片段(值哈希'#')

时间:2015-11-17 09:11:54

标签: java jersey-2.0

如何使用Jersey @PathParameter从URL获取片段(值哈希'#')?

    private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
    {

        for (iy = 0; iy < checkedListBox1.Items.Count; iy++)
        {
            var item = checkedListBox1.Items[iy];
            string ctlName = item.ToString();
            Control txt = null;
            if (checkedListBox1.GetItemChecked(iy))
            {
                txt = FindControl(ctlName);
                if (txt != null)
                {
                    continue;
                }

                txt = new TextBox();
                txt.Name = ctlName;
                txt.Text = ctlName;
                txt.Location = new Point(150, 32 + (iy * 28));
                txt.Visible = true;
                this.Controls.Add(txt);                    
            }
            else if (checkedListBox1.GetItemCheckState(iy) == CheckState.Unchecked)
            {
                txt = FindControl(ctlName);
                if (txt==null)
                {
                    continue;
                }
                this.Controls.Remove(txt);
                txt.Dispose();                    
            }
        }


    }

    Control FindControl(String ctlName)
    {
        for (int i = 0; i < this.Controls.Count; i++)
        {
            if (this.Controls[i].Name==ctlName)
            {
                return this.Controls[i];
            }
        }

        return null;
    }

我的网址为http://localhost:8080/Sample/webapi/Step2/Password@12#

但密码将显示&#34;密码@ 12&#34;只缺少哈希(#)..

2 个答案:

答案 0 :(得分:1)

尝试对网址进行编码/解码。 对于javascript: encodeURI(uri)

然后使用URLDecoder

在java中解码它

答案 1 :(得分:1)

由于您的实际值似乎有哈希值,并且它不是片段,因此需要在发送之前对其进行编码。 URL编码是正确的方法(就像其他答案所示)。

另请注意,在网址中发送密码还存在其他问题,例如它将存储在不同的访问日志中,它将成为浏览器网址历史记录等的一部分。通常您不应该以这种方式发送密码。喜欢POST身体。