【问题标题】:Check if the request parameter equals a string in Java检查请求参数是否等于Java中的字符串
【发布时间】:2011-06-05 21:39:11
【问题描述】:

我想用java做这个

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

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

【问题讨论】:

    标签: java request query-string


    【解决方案1】:

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

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

    (注意,这样做是为了防止NullPointerException 在参数返回request.getParameter("page").equals("page1") 时出现request.getParameter("page").equals("page1")

    相关问题:


    与问题无关,JSP 不是这个工作的最佳位置。考虑Servlet

    【讨论】:

    • 关于这两种风格的区别的要点。我从来没有这样想过。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-07-29
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      • 2018-09-25
      • 2016-12-21
      • 2019-10-10
      • 2015-02-04
      • 1970-01-01
      相关资源
      最近更新 更多