• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

JAVA EE - czy można z poziomu pliku .jsp wymusić wywołanie metody z klasy pliku .java?

+1 głos
946 wizyt
pytanie zadane 1 września 2015 w Java przez Kapitan Nowicjusz (210 p.)
Cześć,

zacząłem uczyć się Javy EE. Czy można w jakiś sposób połączyć pliki .jsp z plikami javowymi, tak by np. metody z pliku Java były wywoływane w czasie otwiernia .jsp?

Moje środowisko to eclipse z doinstalowanymi pluginami, odpalam pliki na serwerze tomcat. Zrobiłem sobie jakiś prosty formularz rejestracyjny z bazą danych w sqlite i to pięknie śmiga. Jeśli w pliku .jsp mamy jakiś button submitujący i mamy powiązaną z plikiem klasę z przeładowaną metodą doPost, to również to wszystko wspaniale działa. Ale na koniec mam plik success.jsp w którym wyświetlamy dane osoby, która się rejestrowała. Chciałem do tego również jakoś podczepić plik Javy, ale nie wiem czy się da.

Porównując to do np. Javy script, to w htmlu byśmy zrobili <body onload="funkcja();"> a później wiadomo function funkcja(){ ... }, czy można jakoś metody z Javy wstrzyknąć w ten sposób jak z JS?

3 odpowiedzi

+1 głos
odpowiedź 1 września 2015 przez NoName Mądrala (5,640 p.)
<body>
<%
  MyClass tc = new MyClass();
  tc.testMethod();
%>
</body>

jeśli dobrze Cię zrozumiałem

komentarz 2 września 2015 przez Kapitan Nowicjusz (210 p.)
edycja 2 września 2015 przez Kapitan
Działa :) Właśnie o to mi chodziło. Dla przyszłych pokoleń:

Szkoda że od razu nie podałem kodu. Pokombinowałem z różnymi wariantami i to nie dało spodziewanego efektu. Mam jsp [b]register[/b]: http://pastebin.com/V5v4BYsj i do niego javkę: http://pastebin.com/JY62DQrb I ok, to pięknie śmiga, kiedy user wypełni ankietkę i wciśnie button submit tworzone jest nowe konto dla niego i przenosimy się na stronę [b]success[/b] gdzie prawidłowo wyświetla się podane wcześniej imię usera jsp: http://pastebin.com/uw4kVwAm I tu jest to o czym pisał @Tomasz90 czyli metoda doPost

No ale chcę wymusić żeby także ten .jsp łączył się z javką, po to że na koniec chciałbym np. zamknąć połączenie z bazą danych albo sobie coś wyświetlic w konsoli: java: http://pastebin.com/5vTzPcS6 Zrobiłem jeszcze XML-a WEB-INF/web.xml http://pastebin.com/s5yaPKt4

I okazało się że rozwiązanie @NoName czyli po prostu utworzenie obiektu interesującej mnie klasy wewnątrz <% %> pliku JSP + dopisanie konstruktora w Success.java robi to co chciałem;) Dzięki!
0 głosów
odpowiedź 1 września 2015 przez nowszy94 Bywalec (2,320 p.)
Poczytaj o Spring WebFlow. Myślę że o to Ci chodzi. Ten mechanizm jest dobrze (na przykładzie zamówienia pizzy) opisany w książce Spring w Akcji.
0 głosów
odpowiedź 1 września 2015 przez Tomasz90 Nałogowiec (25,140 p.)

Obiekt klasy reprezentującej użytkownika dodajesz do requesta w serwlecie za pomocą metody setAttribute()
 

request.setAttribute("user", user);

RequestDispatcher view = new request.getRequestDispatcher("success.jsp");

view.forward(request, response);


No i potem w pliku success.jsp:
 

<% User user = (User) request.getAttribute("user");

%>



No i na tym userze możesz wykonywać jakieś operacje typu pobranie danych itd.

Podobne pytania

0 głosów
0 odpowiedzi 252 wizyt
pytanie zadane 29 kwietnia 2018 w Java przez Mateusz Gęborski Nowicjusz (140 p.)
0 głosów
1 odpowiedź 366 wizyt
pytanie zadane 7 sierpnia 2020 w JavaScript przez Wiciorny Ekspert (283,440 p.)
0 głosów
2 odpowiedzi 481 wizyt
pytanie zadane 4 marca 2016 w Systemy CMS przez ReksetoDev Gaduła (4,530 p.)

93,756 zapytań

142,715 odpowiedzi

323,363 komentarzy

63,351 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...