检查请求参数是否等于Java中的字符串

时间:2011-01-08 21:59:28

标签: java request query-string

我想在java中执行此操作

if(request.getParameter("page") == "page1")
// page1
else if(request.getParameter("page") == "page2")
// page2

对于刚接触java的人,为什么上面的代码不起作用,以及在上面做我想做的最好的方法是什么?

2 个答案:

答案 0 :(得分:10)

由于String是一个对象而不是一个原语,==只能通过引用来比较它们,而不是通过对象的内部表示来比较它们。您需要通过equals()来比较它们。

if("page1".equals(request.getParameter("page")))
// do something
else if("page2".equals(request.getParameter("page")))
// do something else

(请注意,当参数返回NullPointerException

相关问题:


与此问题无关,JSP不是这项工作的最佳选择。考虑Servlet

答案 1 :(得分:1)

你使用错误的等号。试试这个:

  if(request.getParameter("page") != null) {
    if(request.getParameter("page").equals("page1")) {
         // do stuff
    } else if(request.getParameter("page").equals("page2")) {
         // do other stuff
    }
  }

==比较对象引用以查看它们是否相等,而.equals检查这些对象引用的值是否相等。