Check if the request parameter equals a string in Java

12,874

Solution 1

Since String is an object, not a primitive, the == would only compare them by reference, not by the object's internal representation. You need to compare them by equals() instead.

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

(note, this style is done so to prevent potential NullPointerException on for example request.getParameter("page").equals("page1") when the parameter returns null)

Related questions:


Unrelated to the problem, the JSP is not the best place for this job. Consider a Servlet.

Solution 2

You are using the wrong equals. Try this:

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

== compares the object references to see if they are equal, whereas .equals checks to see if the values of those object references are equal.

Share:
12,874
steve
Author by

steve

Updated on June 04, 2022

Comments

  • steve
    steve about 2 years

    I want to do this in java

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

    For someone new to java, why doesn't the above code work, and what is the best way to do what I want to do above?

  • jamesmortensen
    jamesmortensen over 13 years
    Good point on the difference between the 2 styles. I never thought about it like that.