Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从URL读取参数中的HashMark_Java - Fatal编程技术网

Java 如何从URL读取参数中的HashMark

Java 如何从URL读取参数中的HashMark,java,Java,我已经编写了一个Javaservlet,它查询数据库并将结果返回给JSP。 我正在根据从URL传递的参数执行SQL语句 //Reading Parameter String User = request.getParameter("userid"); //Executing the SQL String sqluser = "SELECT 1 FROM <table name> WHERE username = ? pstmt = con.prepareStatement(sq

我已经编写了一个Javaservlet,它查询数据库并将结果返回给JSP。 我正在根据从URL传递的参数执行SQL语句

//Reading Parameter
String User = request.getParameter("userid");

//Executing the SQL
String sqluser = "SELECT 1  FROM <table name> WHERE username = ?

pstmt = con.prepareStatement(sqluser);
pstmt.setString(1, User);
rset = pstmt.executeQuery();
示例URL: http:\testenv.com\test?userid=tana

上面的URL显示自user='tana'以来的正确结果

但是有些用户的用户名中有

例如: http:\testenv.com\test?userid=lana

SQL语句不返回任何值,因为在上述情况下,User='la',即使URL有lana。我可以使用getParameter获取lana的值吗?如果是,我需要做什么


谢谢。

散列字符需要正确编码,因为它通常用作内部链接

http://testenv.com/test?userid=la%23na

在URL中有一个角色,它不是常规字符。它被称为锚点,并标记请求页面中的某个位置。锚定后的部分仅由浏览器使用,因此它不是查询字符串的一部分,也不会发送到服务器。因此,您的服务器获得la,na保留在浏览器中


如果您可以控制发送的URL,请对其进行编码。否则,您将无能为力。

谢谢您的回复。我可以控制URL。是否可以在java servlet中使用URL编码器/解码器?使用URL编码可能无法解决问题,因为它是URL的合法部分,出于同样的原因,它不会对“/”、“?”等进行编码。只需使用简单的字符串替换,并使用%23进行转换。我计划做的是param1=encodeURIComponentuserid。创建URL。url=。生成的完整URL应为。Javaservlet中的Getparameter应该将userid解码为userid=lana。不客气!如果一切都解决了,你应该把这个作为答案;