servlet + cos zle z if statementami...

0

hej, mam problem z moim servletem, problem zapewne banalny ale siedze i siedze i nie moge rozkminic dlaczego tak sie dzieje...

3 wyjscia:

  1. login poprawny -> przesyla do logHarvest.jsp
  2. login poprawny lecz ACTIVE ustawione na 0 w db -> przesyla do index.jsp ze ?statusem -> ze konto nie aktywne
  3. login niepoprawny -> przesyla do index.jsp ze ?statusem -> ze dane niepoprawne

Z gory dziekuje:)
pozdro!

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.DriverManager;
import java.sql.ResultSet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class loginServlet extends HttpServlet {
    
    private String Msg;

public void doGet(HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException
{
    doPost(request, response);
}

public void doPost( HttpServletRequest request, HttpS%rvletResponse response ) throws ServletException, IOException
{
Connection connection = null;
Statement statement = null;
ResultSet results = null;
PrintWriter out = response.getWriter();

 try {
            String id = ServletUtil.checkSingleDB(request.getParameter("id"));
            String password = ServletUtil.checkSingleDB(request.getParameter("password"));

                if(id!= null && password !=null){


                connection = (Connection) DriverManager.getConnection("jdbc:mysql:///esystemtech", "root", "");
                statement = (Statement) connection.createStatement();
                results = statement.executeQuery("select * from users where id = '" + id + "' and password = '" + password + "'");
                if (results.next() && results.getLong("active") == 1) {
                    HttpSession session = request.getSession( true );
                    session.setAttribute("id", results.getString("id"));
                    session.setAttribute("password", results.getString("password"));
                    request.getRequestDispatcher("logHarvest.jsp").forward(request, response);
                    Msg = "sucess";
                    return;
                }

                if(results.next() && results.getLong("active") == 0){
                    Msg = "activate pls";
                    request.getRequestDispatcher("index.jsp?status="+Msg).forward(request, response);
                    return;
                }
               
                

                }
                      Msg = "Wrong login/pw details - Please Try again!";
                    request.getRequestDispatcher("index.jsp?status="+Msg).forward(request, response);

}



        catch ( Throwable pop ) {
pop.printStackTrace();
throw new ServletException( pop );
} finally {
if ( results != null ) {
try { results.close(); } catch ( Throwable pop ) {}
results = null;
}
if ( statement != null ) {
try { statement.close(); } catch ( Throwable pop ) {}
statement = null;
}
if ( connection != null ) {
try { connection.close(); } catch ( Throwable pop ) {}
connection = null;
}
}
}
0

Jako ze juz sobie poradzilem to napisze solucje moze komus sie przyda ;-)

uzylem 2x if(id!= null && password !=null){ i stworzylem 2 razy polaczenie, w 1wszym tescie dalem active na 0 w drugim juz na 1, wszystko smiga, troche lamerskie rozwiazanie ale wazne ze dziala:)

hejka!:)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.