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请求的值,这是我问题的根源。