[JSP] Problem z porownaniem log,pas z bazy z log,pas z formu

0

Witam.
Mam nastepujacy problem.
Po pomyslnym polaczeniu z baza, nie wiem w jaki sposob porownac login oraz haslo z formularza z loginem i haslem z bazy danych.
Moge dodawac oraz usuwac dane z bazy, na innej stronie.

oto kod programu:

try
        {
            Connection con = null;
            con = DriverManager.getConnection("jdbc:odbc:test");
            Statement statement = con.createStatement();
            ResultSet rs=null;
            rs.first();
            String log = request.getParameter("log");
            String has = request.getParameter("has");

            statement.executeQuery("SELECT * FROM OSOBA WHERE LOGIN=log AND HASLO=has");
            if(log.equals("log") || has.equals("has"))
                {
                out.println(log);
                out.println(has);
                }

                
            }
            
        catch (Exception e) {out.println("Exception: "+e.getMessage());}
        %>
        <br/>
        <center>
        <form action="<%=request.getRequestURI()%>" method="POST">
            <input name="add" type="hidden" value="true"/>
            <div>Login: <input name="log" type="text" value=""/></div>
            <div>Haslo: <input name="has" type="text" value=""/></div>
            <div><input type="submit" value="Zaloguj"/></div>
            
        </form>

Problem w tym, ze po wpisaniu istniejacych danych, na stronie wywala mi wyjatek:
Exception: null

Czy ktos zna powod takowego komunikatu?

Za wszelakie wskazowki ogromne dzieki ;-)

0

Nie znam się za bardzo na JSP ale w jaki sposób możesz odwoływać się do obiektu request bezpośrednio w kodzie strony JSP?.

Nie mieszaj logiki z prezentacją.
Minimalistycznie potrzebujesz:

stronę JSP, w której znajduje się tylko forma.
servlet, który pobiera przekazane dane.
no i klasę łączącą się z bazą i sprawdzającą przesłane dane.
I zadziała bez problemowo.

0

@GhostDpg, na stronie JSP jest dostępny obiekt o nazwie request zawierający informacje o żądaniu.
@Tru

            ResultSet rs=null;
            rs.first();

dziwi Cię, że w drugim wierszu rs jest równe null?

0

Propozycja naprawy błędu:

            String log = request.getParameter("log");
            String has = request.getParameter("has");

            ResultSet rs=statement.executeQuery("SELECT * FROM OSOBA WHERE LOGIN=log AND HASLO=has");
            if(rs.first())
                {
                out.println(log);
                out.println(has);
                }

Metoda first w klasie ResultSet zwraca false <==> wynik zapytania jest pusty (nie zawiera żadnego wiersza).

0
            ResultSet rs=null;
            rs.first();

dziwi Cię, że w drugim wierszu rs jest równe null?

chyba zaczynam rdzewieć... ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1