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
KA
to taki uber hiper super servlet. podziel sobie to lepiej na warstwy
magdalenka120
Myślisz o czymś takim? Jeden z użytkowników podpowiedział mi wcześniej taki pomysł, troszkę zmieniam właśnie kod i chciałabym zobaczyć, czy w ogóle ruszy... A wtedy będę mogę pisać kod dokładnie pod swoją aplikację. http://krazytech.com/programs/a-login-application-in-java-using-model-view-controllermvc-design-pattern
KA
nom , mniej więcej tak
niezdecydowany
niezdecydowany
wywal to w pi1@#du !
magdalenka120
Co mam wywalić? Tzn kod jest źle, czy nie robić tego podziału, bo ja już sama nie wiem.
KA
rób podział @niezdecydowany chciał to przekazać innymi słowami po prostu :p xd
niezdecydowany
niezdecydowany
ale szacun try catch cz ficzerem z javy 7 :D:D:D:D:D
magdalenka120
Zrobiłam, błędu nie ma, ale dalej nie łączy z bazą danych. Nie jestem pewna, czy mam dobrze zrobione odwołanie do servletu: action="com/mvc/LoginServlet", ale to chyba tak robi się odwołanie, tak? Już mi się wszystko pomieszało.
niezdecydowany
niezdecydowany
Wypi!@#dol to, w kosmos - weź działający przykład z internetów http://www.tutorialspoint.com/servlets/servlets-database-access.htm - przeanalizuj, zmodyfikuj do swoich potrzeb, i nie brnij w takie "kody", bo skończysz tak jak niektórzy tutaj, 25lat wrzody żołądka i problemy z alkoholem, po co ?
niezdecydowany
niezdecydowany
wgl co to jest Class.forName("com.mysql.jdbc.Driver"); ?
KA
to jest chyba pierwszy servlet jakiegoś nowego przełomowego projektu. tak jak 24 lata temu Linus Tovarlds spytał się na grupie mailingowej czy rzutować malloc i potem zrobił linuxa , tak tutaj takie pytanko o servlet i logowanie a potem kto wie ... - drugi facebook?
niezdecydowany
niezdecydowany
ale jaja, ale ludzie na SO, albo jakimś forum MYSQL'a dalej zadają o to pytania :D:D:D CZAICIE ?
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:około 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:5 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 :)
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)