Search code examples
javaeclipsejspif-statementeclipse-kepler

Simple Java If Statement not working properly with Sevlet or Java class


I am working with eclipse Keplerr IDE for a Dynamic Web Project

The Problem occuring is that, even if java conditional if statement is correct, simple with right data, its not returning the 1st (True) part of IF statement even if its true.

my code:

GetSetClass (Model)

package tempTryOct15;


public class GetSetClass {

    String Conditionalz(String txt1){

        String t1 = txt1;
        System.out.println("The String Received is:" + t1);

        String ret="NULL-Value";
        if(t1=="ssc")
            ret="SSC";
        else
            ret="Non-SSC";

        System.out.println("returned: " + ret);
        return ret;
    }

}

tryServlet.java (Controller)

package tempTryOct15;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 * Servlet implementation class tryServlet
 */
public class tryServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public tryServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String txt1=request.getParameter("txt1");
        String txt2=request.getParameter("txt2");

        System.out.println("The 1st String Entered is:" + txt1);
        System.out.println("The 2nd String Entered is:" + txt2);

        request.setAttribute("text1",txt1);

        /*
        GetSetClass GSC = new GetSetClass();
        String text2 = GSC.Conditionalz(txt1);
        System.out.println(text2);

        */

        if(txt1=="ssc")
            txt2="SSC";
        else
            txt2="Non-SSC";

        request.setAttribute("text2",txt2);

        System.out.println("The 2nd String Got is:" + txt2);

        RequestDispatcher view = request.getRequestDispatcher("Display.jsp");
            view.forward(request, response);

    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

}

The Same code is working fine with core plain java and Notepad++ editor. as:

Try.java

class Try{

    String Conditionalz(String t1){

        System.out.println("The String Received is:" + t1);

        String ret="NULL-Value";
        if(t1=="ssc")
            ret="SSC";
        else
            ret="Non-SSC";

        return ret;
    }
}

TryDemo.java

class TryDemo{
    public static void main(String[] args){

        Try t = new Try();
        String ret = t.Conditionalz("ssc");
        System.out.println("returned: " + ret);

    }
}

Solution

  • Since String is not a primitive type, you have to use str1.equals(str2) instead of str1==str2 ...