Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.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 POST请求参数的比较_Java_Jsp_Servlets - Fatal编程技术网

Java POST请求参数的比较

Java POST请求参数的比较,java,jsp,servlets,Java,Jsp,Servlets,以下代码尝试通过getParameter()方法确定用户已从哪个输入字段填充: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println(request.getParameter("userinput")); if(request.getPar

以下代码尝试通过
getParameter()
方法确定用户已从哪个输入字段填充:

protected void doPost(HttpServletRequest request, HttpServletResponse 
response) throws ServletException, IOException {

        System.out.println(request.getParameter("userinput"));

        if(request.getParameter("userinput") != "userinput")
            accessExampleView(request, response);
        else
            accessServletSubsidiary(request, response);

    }
从视觉上看,我试图找出用户是在第一个字段中输入值,还是在第二个字段中输入值:

但是,每次运行时,它都指向
accessExampleView
。我尝试将
if
语句逻辑设置为:

if(request.getParameter(“userinput”)!=null)

无效-第一行继续为true,并路由到
accessExampleView
方法

从本质上讲,是否有更好的方法来检查
请求
对象中存在什么类型的值?

这是它使用的JSP文件:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>JSP HTML page</title>
</head>
<body>

<form action="ServletHome" method="post">
<fieldset name="f1">
This page communicates with the servlet page via input types.
<br>
<br>
<label>Enter some text: </label>
<input type="text" name="userinput">
<input type="submit" value="send">
<br>
Enter your age:
<input type="number" name="userAge">
<input type="submit" value="send">
<br>
</fieldset>
</form>

</body>
</html>

JSP HTML页面
此页面通过输入类型与servlet页面通信。


输入一些文本:
输入您的年龄:

问题是您已经编写了JavaScript代码,
但是编译它就像它是Java代码一样

在爪哇,
字符串是一个对象。
执行测试时
如果(objectReference1!=objectReference2)
您 正在测试objectReference1的位置 与objectReference2的位置相同。 在您的例子中,这写为
if(request.getParameter(“userinput”)!=“userinput”)

这项测试几乎总是正确的, 不管名为“userinput”的参数中存储的值如何。 这是真的,因为名为“userinput”的参数值的地址几乎永远不会是字符串“userinput”的地址

似乎您实际上想要比较名为“userinput”的参数值和字符串值“userinput”。 如果是这样的话,, 您必须使用equals方法。 一种方法是
if(“userinput”.equals(request.getParameter(“userinput”))


这假设HTML(可能是JSP)页面中“userinput”字段的默认值是“userinput”。

是的,我应该早点注意到。我犯了一个相当严重的错误。谢谢你的帮助。错误的标记@BalusC。这个问题不是关于如何比较字符串。这是关于如何根据传递的值分析POST请求。虽然提供的答案解决了我的问题,但肯定有一种比我上面显示的方法(检查空字符串)更好的方法来检查POST请求的值,这是我问题的根源。