java - 比较POST请求的参数

标签 java jsp servlets

以下代码尝试确定用户通过 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);

    }

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

enter image description here

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

if(request.getParameter("userinput") != null)

无济于事 - 第一行仍然正确,并路由到 accessExampleView方法。

本质上,有没有更好的方法来检查 request 中存在什么样的值?对象?

这是它使用的 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>

最佳答案

问题是你写了JavaScript代码, 但将其编译为 Java 代码。

在Java中, String 是一个对象。 当您执行测试 if (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”。

关于java - 比较POST请求的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57062971/

相关文章:

java - 在 JSP NetBeans 中报告语法错误但结果看起来并且工作正常

java - IRCLib Java 创建的 IRC Bot 问题

java - 将 jar 文件添加到 LibGdx 项目中的 eclipse 中

java - @WebServlet 注解 web.xml 欢迎文件

java - 如何使请求 header 在 rxJava 线程中可用?在新线程中注入(inject) HttpServletRequest 不起作用

java - 从java项目到包

java - JSP 从 Java servlet 获取 null 值

JAVA - Apache POI批量修改Excel文件

java - 将数组从 dataprovider 返回到 @Test 方法

java - 找不到读取类型为“jlab1.beans.Message”的 bean 中的属性 'lastname' 的方法