Posty

Wyświetlanie postów z styczeń, 2019

Biblioteka do JPA w IntelliJ to: org.hibernate:hibernate-entitymanager:5.4.1.Final

Obraz
Zagadka: Dlaczego to świeci mi się na czerwono? [IntelliJ, JPA] Zrobiłem wszystko zgodnie z instrukcją . Jak najechałem myszą na czerwone to pokazało tak jak na obrazku nr2, a jak odpaliłem server to w przeglądarce pokazało tak jak na obrazku nr 3 Żeby się tego dowiedzieć, to zajęło mi to całe 2 dni, ale ile przy tym się nauczyłem, to moje... Dla potomnych: sprawę załatwia niepozorna biblioteka: org.hibernate:hibernate-entitymanager:5.4.1.Final (przy pobieraniu z library  z IntelliJ trzeba zaznaczyć opcje z maven ! Bo inaczej nie działa, jak dodałem ręcznie z zewnątrz)     To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoim dzisiejszym odkryciem  np. w komentarzu :)

Link łączący z MySQL

Zrobiłem jak na filmku, ale coś mi nie działało, więc wesparłem się linkiem ze szkolenia do łączenia się i ten link działa. Potrzeba było jeszcze zarejestrować sterownik, bo nie wykrywał inaczej, więc połączyłem to, co na filmiku z tym co było na szkoleniu i ostatecznie moja komenda łączenia z bazą danych Wygląda tak: try {     Driver ster = new com.mysql.cj.jdbc.Driver();     DriverManager.registerDriver(ster);     Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/AppJEE?     useSSL=false&characterEncoding=utf8&useJDBCCompliantTimezoneShift=true&useLegacy     DatetimeCode=false&serverTimezone=UTC", "root", "pass"); . . . } catch (SQLException e) {     e.printStackTrace(); } gdzie pass to oczywiście hasło, którego tutaj oczywiście nie podam ;)     To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoim dzisiejszym odkryciem  np. w komentarzu :)

"Test" zamiast "Text" i zamiast wyświetlać pobiera

Dzisiaj kolejna nauka z literówki, która mi trochę narobiła fatygi, ale i przy okazji czegoś się nauczyłem.     Wniosek jest taki: jak się wpisze "test/plain" zamiast "text/plain" w metodzie doGet servletu linijce "response.setContentType("text/plain; charset=utf-8");" to zacznie pobierać plik, a nie wyświetlać.     Nie widziałem o co chodzi wszystko tak samo pisałem, jak na filmiku, u niego wyświetlało, u mnie pobiera. założyłem na grupie wątek i po chwili rozmowy, otrzymałem sugestię, żeby w ogóle napisać typ zawartości. Gdy spojrzałem co ja tam napisałem, to już wiedziałem o co chodzi. Ale najważniejsze, że nauka postępuje.     To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoim dzisiejszym odkryciem  np. w komentarzu :)

W doGet kolejność request i response ma znaczenie

Pełna treść mojego wniosku brzmi tak:     W servlecie przy nadpisywaniu metody doGet kolejność podawania parametrów request i response ma znaczenie. Dla obrazu to powinno wyglądać tak:   @WebServlet ( "/date" ) public class DateServlet extends HttpServlet { @Override protected void doGet ( HttpServletRequest request , HttpServletResponse response ) throws IOException { DateTime now = DateTime . now (); PrintWriter responseOutput = response . getWriter (); responseOutput . append ( "<html><body>" + now . toString () + "</body></html>" ); } }     To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoim dzisiejszym odkryciem  np. w komentarzu :)

Odkrycie: phpMyAdmin

Nowość.     Do tej pory znałem jedynie terminalowy sposób tworzenia/modyfikowania tabel w MySQL. Dzisiaj dowiedziałem się, że w tym może mi pomóc phpMyAdmin. Jak fajnie. Ten terminalowy nawet dawał rade, bo fajne to jest, że wszystko odbywa się błyskawicznie, ale jak jest graficzna opcja i można gdzieś kliknąć, żeby coś zaznaczyć i było zrobione to fajnie.    Na starcie napotkałem drobne problemy z tworzeniem tabel - aż zachciałem wrócić do prostych sposobów terminalowych - ale po przepracowaniu filmiku na YT dałem radę - choć to nie filmik odpowiedział mi na mój problem.     Otóż gdy tworzyłem tabelę pojawiał się następujący błąd: #1089 - Błędna podczę?ć klucza. Użyta czę?ć klucza nie jest łańcuchem lub użyta długo?ć jest większa niż czę?ć klucza     Sprawdzałem różne opcje,  szukałem w necie, rozpatrywałem rozmaite możliwości i nic. Utknąłem. aż w końcu postanowiłem klikać wszystko po kolei, nawet jeśli to będzie bez sensu.     I zadziałało :)     Odpowiedzią na mój pro
Dzisiaj poznałem zastosowanie kilku znaczników "C:" JSTLowych. Ogólnie działają podobnie jak w javie, wiec nie są specjalnie nowe, oto one: <c:out value="${user.imie}" default="brak imienia" escapeXml="true" />     Wyświetla imię "usera" z i nstancji zdeklarowanej w servlecie, a w przypadku, gdy imie to "null" to wyświetla  "brak imienia". <c:if test="${user.imie eq 'Marek'}">   <p>Skoro tu jesteś, to znaczy, że masz na imię Marek</p> </c:if>     Działa jak zwykły "if" w Javie <c:set var="imieUzytkownika" scope="request" value="${user.imie}" /> ${imieUzytkownika}     Ustawia wartość atrybutu i potem można go np wyświetlić jak  wyżej. <c:set target="${user}" property="imie" value="Maros" /> ${user.imie}     Zmienia pole "imie" w instancji "user&

W wartościach znaczników JSTL nawiasy są klamrowe

Właśnie chwilę zobaczyłem, że nie działa :)     Po chwili poszukiwań okazało się, że nie zwróciłem uwagi na to. Na filmiku łatwo się pomylić, więc nie wiedziałem dlaczego u mnie nie działa.      Gdy przyjrzałem się nawiasowi po symbolu "$" okazało się, że nawiasy są klamrowe, a nie okrągłe. I już działa. cieszę się.     To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoim dzisiejszym odkryciem  np. w komentarzu :)

Wszystko wychodzi to po co się na tym skupiać?

Ostatnio dużo się uczę.      Obecnie przerabiam kurs o aplikacjach webowych i przypuszczam, że za kilka - max kilkanaście, bo ważne jest dla mnie nie śpieszyć się - dni zrobię swoją pierwszą internetową aplikację. Dużo składowych jest do tego jak dla mnie. Uczę się o servletach, filtrach, atrybutach i takich innych różnych, które składają się na tworzenie aplikacji webowej.     Możnaby się w takim razie zapytać: Skoro tyle się uczę, to dlaczego o tym nic nie piszę od kilku dni?  Odpowiedź dzisiaj mi się nasunęła: Bo wszystko idzie zgodnie z planem 😀     Ciekawy to jest dla mnie wniosek, gdyż jak się dzisiaj spostrzegłem, to ochotę do szczególnego zapamiętania - czy też napisania o tym posta tutaj - mam wtedy gdy coś mi nie wychodzi i muszę trochę włożyć w to wysiłku, żeby znaleźć odpowiedź samodzielnie. A że teraz robię kurs z YT i wszystko mi wychodzi co na filmiku, to jakoś nie mam potrzeby się na tym szczególnie skupiać. To dla mnie ciekawe odkrycie i w sumie niech to będzie

Servlet to klasa dziedzicząca po klasie HttpServlet

Taka prosta rzecz - jak się wie - a tyle czasu i stresu potrafi zająć... Czyli, żeby Tomcat wiedział, że nasza klasa to servlet, musi mieć dopisane extends HttpServlet tak dla formalności napiszę pełną nazwę klasy. Wygląda tak: @WebServlet ( value = "/s2" ) public class Servlet2 extends HttpServlet {}

Servlet do pobierania obrazków i miejsce źródłowe dla obiektu File

Obraz
    Dzisiaj głównie 2 rzeczy: Jak pobierać obrazki z przeglądarki i miejsce źródłowe dla obiektu File.     Co się dzisiaj wydarzyło? Otóż powstało małe zamieszanie. Kontynuuję przerabianie tego filmiku  instruktażowego o tworzeniu aplikacji internetowych w Javie.     Gdy wykonałem wszystko co było pokazane, to jednak obrazek nie pobierał się.     Mój kod wyglądał tak: byte[] bufor = wczytajPlik("obrazek.png");         response.setContentType("image/png");         response.setContentLength(bufor.length);         response.addHeader("Contetnt-Disposition", "attachment;filename=obraz.png");         OutputStream os = response.getOutputStream();         os.write(bufor);         os.flush();     }     private byte[] wczytajPlik(String nazwaPliku) throws IOException {         File file = new File(nazwaPliku);         long rozmiar = file.length();         byte[] zawartosc = new byte[(int)rozmiar];         FileInputStream fis = new File

Mój pierwszy servlet uruchomiony :)

    To nie było takie oczywiste.     Gdy oglądałem filmik instruktażowy, to wychodziło mi wszystko co na tym filmiku było, tylko nie jedno... nie działało. Oczywiście zaczerpnąłem wiedzy z innych źródeł i zacząłem intensywnie szukać odpowiedzi i realizowałem kolejne pomysły, które przyszły mi do głowy. Napisałem na grupie programistów problem i znaleźli się ludzie dobrej woli, którzy mi podpowiedzieli co zrobić, żeby działało.     A dokładnie miałem taki problem: póki nie mam servletu stworzonego to działa zarówno index.html w katalogu web, jak i każdy inny plik *.html i *.jsp, jednak gdy tylko stworzę servlet w lokalizacji src to już wyskakuje błąd 404 :( gdy potem usunę servlet to znowu działa html I jsp.     Po chwili odezwał się ktoś i podpowiedział mi tak: Jezeli masz już jakiś servlet na Tomcat-cie to aby uruchomić ten servlet adres w przeglądarce powinien wyglądać tak: http://localhost:8080/NazwaTwojegoServletu a adnotacja w kodzie servletu tak: @WebServlet

Serwlety i Aplikacje webowe

    Ulga i radość :)     Przez ostatnie 2 dni uczę się o tworzeniu aplikacji webowych. Podstawowym pojęciem, które mnie do tego tematu doprowadziło są serwlety . I łatwe i nie łatwe. Trochę rozbudowany temat, ale to co mi się podoba, to duża część komunikacji odbywa się automatycznie, bym mógł się skupić tylko na samym programowaniu.     Na czym stanąłem? Gdy chciałem zrobić swoją pierwszą aplikację webową za pomocą IntelliJ to napotkałem się techniczną trudność z instalacją programu obsługującego komunikację z serwletami. Niby teraz łatwe  się wydaje - dla kogoś kto już to umie to tak - ale namęczyłem się tylko na instalacji całe 24h. Był to czas intensywnego szukania, proszenia o pomoc i próbowania kolejnych możliwości.     Po długich i mozolnych próbach rozwikłania zagadki zrobiłem to, ale na prawdę to było dla mnie wyzwanie. Oto treść mojego zapytania na forach: Moja sytuacja jest taka: Chodzi o to, że gdy instaluję Tomcata zgodnie z tym filmem to pokazuje się welcome

Z interfejsu można robić tablicę, w którą można wpisać kolejne instancje klas

Dzisiaj nie lada odkrycie dla mnie. Niesamowite, że można z interfejsów robić nie tylko tablicę, ale i w kolejnych indeksach umieszczać instancje poszczególnych klas implementujących ten interfejs. Coś niesamowitego. mógłbym to różnie opisywać, ale najlepiej niech każdy sam zobaczy: import java.util.Scanner; public class Main {     public static void main(String[] args) {         Figure[] figures = new Figure[3];         Scanner scanner = new Scanner(System.in);         System.out.println("Podaj promień");         figures[0] = new Circle(scanner.nextDouble());         System.out.println("Podaj 2 boki trójkąta");         figures[1] = new Triangle(scanner.nextDouble(), scanner.nextDouble());         System.out.println("Podaj 2 boki prostokąta");         figures[2] = new Rectangle(scanner.nextDouble(), scanner.nextDouble());         for (Figure figure : figures) {             System.out.println(figure.getType());             System.out.p

Przypisanie tablicy jednej do drugiej, nie tworzy dwóch tablic

Dzisiaj się nad tym zastanawiałem, chyba z pół godziny siedziałem patrząc się na 4 linijki kodu i nie mogłem za nic zrozumieć, o co tam chodzi. Przerabiam sobie tak powtórzeniowo zadanka z samouczka programisty i w jednym zadaniu było polecenie, by posortować tablicę. Oczywiście, że jest na to gotowa metoda w Arrraysach, ale ja ćwiczę, wiec postanowiłem sam stworzyć prostą metodę sortującą bąbelkowo. Za pierwszym razem całkiem sprawnie mi to poszło. Jednak kilka zadań później znowu było takie polecenie. I już kusiło mnie, żeby skorzystać z gotowej metody (bo przecież już to umiem), ale jednak jak tak w pamięci rozważałem jak to zrobić, to nie do końca wszystko pamiętałem, więc postanowiłem zrobić to znowu. I co się okazało, że za drugim razem, mimo, iż część pamiętałem sprzed kilku godzin, to jednak nie wychodzi. Nie działa. Zgłupiałem. Wiesz jak to jest, jak już się siedzi nad czymś długo, to proste rzeczy potrafią sprawić problem i tak było i tym razem. Wziąłem kartkę i krok po

Trzeba ćwiczyć

Dzisiaj otrzymałem nieco pokory. Gdyż przysiadłem do zadań z samouczka i po kolei robię. Dzisiaj zrobiłem takie proste z tablic. Okazało się, że tak bardzo skupiłem się na ćwiczeniu innych, rzeczy, że już średnio pamiętam podstawy. Mam dzisiaj taki wniosek, że trzeba ćwiczyć, bo szybko się zapomina jak się nie ćwiczy. Dzisiaj tego doświadczyłem i zapamiętam sobie, bo nie jest przyjemnie printować tablicę i zastanawiać się "Dlaczego drukuje miejsce w pamięci, a nie czytelną dla użytkownika postać?". Dzisiaj tego doświadczyłem i nie chcę znowu tego doświadczać, dlatego biorę się za zadania. po prostu.

Jak obliczać pierwiastek

Obraz
Dzisiaj się dowiedziałem, jak obliczać pierwiastek kwadratowy. Wcześniej przeszukałem cały internet (jaki bylem w stanie) i nie poznałem, żadnego gotowego algorytmu implementacji obliczania pierwiastka kwadratowego. Co nie wpisałem "Obliczanie pierwiastka kwadratowego JAVA" itp, to wszędzie tylko mi wyskakiwały sugestie, abym skorzystał z java.lang.Math. No to, to każdy umie już na początku, ale ja chciałem sam napisać metodę, która będzie to liczyła. Ciekaw byłem jak to się robi. I w końcu znalazłem wzór! Otóż jeden zobaczyłem na stronie jakiejś uczelni, ale ciągle mi pętla nieskończona wychodziła, aż zdecydowałem się zastosować wzór z... Wikipedii :) i za pierwszym razem poszło! adres strony jest  tutaj , a metoda, której użyłem to babilońska. Wzór wygląda tak: Gdzie: S - liczba do pierwiastkowania, x 0 - dowolna liczba większa od zera (serio dowolna, ja dla swoich obliczeń wziąłem połowę S), x n - kolejne obliczanie. Mój kod jest dostępn