Java+MySql+servlet połączenie

Java+MySql+servlet połączenie
magdalenka120
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:7
0

Witam,

mam problem z logowaniem na swojej stronie. Servlet nie łączy mi z bazą danych, aby sprawdzić poprawność danych wprowadzonych przez użytkownika, a w efekcie nie następuje przekierowanie na następną stronę. Proszę o pomoc, kod poniżej.


Kopiuj
package logowanie;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

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

public class logowanie extends HttpServlet {

    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    static final String DB_URL = "jdbc:mysql://127.0.0.1:3306/sale_konf";
    static final String login = "root";
    static final String pass = "";
    private static final long serialVersionUID = 1L;

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse res)
            throws ServletException, IOException {
        Connection conn = null;
        Statement stmt = null;
        String Login = req.getParameter("login");
        String Pass = req.getParameter("pass");
        
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(DB_URL, login, pass);
            stmt = conn.createStatement();
            String sql = "SELECT login, pass FROM users WHERE login='"+Login+"' and pass='"+Pass+"'";
            ResultSet rs = stmt.executeQuery(sql);

            try (PrintWriter pw = res.getWriter()) 
            {
                res.setContentType("text/html");
                
                
                if (Login!=null && Pass!=null)
                {
                req.getRequestDispatcher("http://localhost:8080/WebApplication1/faces/Przekierowanie1.jsp"); //po poprawnym zalogowaniu ma następić przekierowanie na Przekierowanie1
                }
                else
                {
                    pw.println("Login Failed...!");
                }
            }
            conn.close();
        } catch (ClassNotFoundException | SQLException e) {
        }

    }

}

edytowany 1x, ostatnio: magdalenka120
Zobacz pozostałe 13 komentarzy
magdalenka120
No ja się zgubiłam w połowie, nie wiem czy mam coś przerabiać dalej, czy tworzyć coś nowego, a chciałabym pójść do przodu z aplikacją, najgorzej jest tak zamotać się w jednym miejscu i nie móc ruszyć dalej. Wolałabym poznać swój błąd, aby więcej go nie popełniać, dlatego proszę was o pomoc :)
KA
przerabiaj dalej. przerabiaj tutoriale video
magdalenka120
Zrobiłam wg tamtej strony i dalej nic.. wyskoczył mi problem z Tomcatem, ale działam na Glassfish-u.. Kij go wie już. Dzięki za pomoc!
magdalenka120
Coś się zaczęło dziać, ale wyskoczył mi error 500 i błąd z wyjątkiem: java.lang.NullPointerException Czytałam w necie o co chodzi, ale wie ktoś może jak można to naprawić? W bazie danych mam stworzone obiekty, więc nie wiem czemu mi on wyskakuje :/
niezdecydowany
niezdecydowany
ja tym bardzie nie wiem...
Heheczek
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 5 lat
  • Postów:148
0
  1. Mogłabyś wstawić w znacznik ten kod? Proszę.
  2. A jakiś error ci się pokazuje?
magdalenka120
1)Zrobione! :) 2)Nie, żaden. Czasem wyskakuje mi error 405 na stronie głównej, gdzie mam przekierowanie do servletu, ale nie wiem już dlaczego, adres URL mam poprawny.
krzysiek050
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 4 lata
  • Postów:1272
0
Kopiuj
  } catch (ClassNotFoundException | SQLException e) {
        }

Na początek popraw ten kawałek i zobacz co jest nie tak.

magdalenka120
Zmieniłam na: catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { } Zmieniłam, w odpowiedzi dostaję w przeglądarce pustą stronę o podanym adresie: http://localhost:8080/WebApplication1/logowanie Niestety połączenia nadal nie ma.
magdalenka120
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:7
0

Wstawiam kawałek kodu swojej strony głównej, może źle odwołuję się do wstawionego powyżej servletu.

Kopiuj
<form action="logowanie" method="POST" id='log'>
            <text style="position: absolute; left: 350px; top: 300px"> LOGIN </text>
            <input id='login' style="position: absolute; left: 420px; top: 300px"> 
            <text style="position: absolute; left: 350px; top: 340px"> HASŁO </text>
            <input id='pass' style="position: absolute; left: 420px; top: 340px" type="password" value="" />
            <input style="position: absolute; left: 350px; top: 400px" type="submit" onclick='log' value="Zaloguj się"  />
            </form>
S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
0

Po 1 w ogóle to wypadałoby zrobić osobną klase do połączenia z bazą danych (tzw. DAO)
Po 2 też miałem takie problemy że nie było połączenia z bazą danych,musiałem wstawiać do DAO blok static:

Kopiuj
 
try{
Class.forName(nazwa_sterownika);
}catch(Exception ex){
}


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
magdalenka120
Już działam, w razie czego wstawię swoją pracę jeśli byłoby coś nie tak, ale chciałabym mieć to już z głowy jednak :)

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.