我想用Java实现这个功能。
if(request.getParameter("page") == "page1")
// page1
else if(request.getParameter("page") == "page2")
// page2
对于刚接触Java的人来说,为什么上面的代码不起作用,以及我想要做的最好方法是什么?
我想用Java实现这个功能。
if(request.getParameter("page") == "page1")
// page1
else if(request.getParameter("page") == "page2")
// page2
对于刚接触Java的人来说,为什么上面的代码不起作用,以及我想要做的最好方法是什么?
由于String
是一个对象,而不是原始类型,所以==
只会通过引用比较它们,而不是对象的内部表示。你需要使用equals()
来进行比较。
if("page1".equals(request.getParameter("page")))
// do something
else if("page2".equals(request.getParameter("page")))
// do something else
(注意,这种样式的作用是为了防止潜在的NullPointerException
。例如当参数返回null
时,request.getParameter("page").equals("page1")
)
与问题无关,JSP不是执行此任务的最佳场所,请考虑使用Servlet。
if(request.getParameter("page") != null) {
if(request.getParameter("page").equals("page1")) {
// do stuff
} else if(request.getParameter("page").equals("page2")) {
// do other stuff
}
}
== 比较对象引用以查看它们是否相等,而 .equals 检查这些对象引用的值是否相等。