JSP, wywoływanie metody z innej klasy

JSP, wywoływanie metody z innej klasy
K1
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 2 lata
  • Postów:53
0

cześć,
proszę o sprawdzenie kodu. jest to przykład, który ma mi pomóc w większym projekcie, taki do sprawdzenia zasady działania.
w pliku index.jsp jest Przycisk, który ma wywołać metodę z klasy testButtonController (lub innej w przyszłości). niestety nie działa.
index.jsp

Kopiuj
<!DOCTYPE html>
<html lang="en">
<head>
    <title>test</title>
    <script>
        $(document).on("click", "#somebutton", function() { 
            $.get("testButton", function(responseText) {   
                $("#somediv").text(responseText);           
            });
        });
    </script>
</head>
<body>
<button id="somebutton">press here</button>
<div id="somediv"></div>
</body>
</html>

testButtonController.java

Kopiuj
package pl.javastart.test;

import jakarta.servlet.ServletException;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/testButton")

public class testButtonController extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws  IOException {
        String text = "some text";

        response.setContentType("text/plain");  
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(text);       
    }
}

jarekr000000
(lub innej w przyszłości). to jest jsp - to nie ma przyszłości.
szatkus
Ktoś się ostatnio pytał czy JavaStart jest dobre. To już chyba wiemy.
K1
@jarek, uczę się, taki komentarz jest po prostu głupi. podaj ścieżki, w którą stronę mam iść, a nie staraj się udowodnić mi jaki to jesteś mega klawy gość
szatkus
Ale tak właściwie co nie działa? Jaki jest status tego zapytania w narzędziach przeglądarki?
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
2

@k1313:
Że jestem klawy to nie muszę udowadniać, to przecież wiadomo.

A jeśli chodzi o ścieżki, to nie mam pojęcia - zależy czego chcesz się nauczyć, jakie są twoje cele.
Przejrzyj listę czego się nie uczyć (w javie):
https://4programmers.net/Mikroblogi/View/31514


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 1x, ostatnio: jarekr000000
K1
już lepiej...;) ale tam jest głównie co jest beee...
jarekr000000
dokładnie przy jsp masz napisane co robić
K1
REST -> Ang.js/React.js/Vue... a Spring? sporo tam ludzi na to zwróciło uwagę
ZN
  • Rejestracja:prawie 6 lat
  • Ostatnio:około 2 lata
  • Postów:49
0

brakuje mi tutaj znacznika <form> </form>, gdzie ty tu w ogóle masz połączenie jednego z drugim ?

edytowany 1x, ostatnio: ZabawnyNick
K1
ten przykład wziąłem ze stackoverflow. próbowałem też z <form action="/testButtonController"> </form>. wiem, że brakuje komunikacji, po naciśnięciu przycisku nic się nie dzieje
Shalom
Nie trzeba forma bo on tą akcje robi ajaxem z JS który dopina do guzika jakimś jquery
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

A co pokazuje network monitor w przeglądarce? Wysyła sie ten get? W ogóle JS wskakuje ci do tego handlera?


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 2x, ostatnio: Shalom
K1
już sprawdzę.... nie, nie wchodzi
K5
  • Rejestracja:około 6 lat
  • Ostatnio:około 13 godzin
  • Postów:1002
3

@k1313: Komentarz Jarka nie był taki głupi, ani złośliwy. Ludzie, którzy pracująkomercyjnie o tym wiedzą. Po prostu chcemy Ci oszczędzić zmarnowanego czasu. Nawet jeśli trafisz do pracy w której będzie używane JSP, to po max 3 miesiącach będziesz chciał ją zmienić. Po prostu to zostaw.

Naucz się lepiej Javy SE na dość dobrym poziomie a dopiero potem idź w webówke. Potem sobie wybierzesz czy wolisz angulara, czy recta, czy vue.

edytowany 1x, ostatnio: kixe52
K1
ok. nie obrażam się, broń Boże. wiem, że błądzę i np. Twój post wiele rozjaśnia. dz
K1
ale swój projekcik chciałbym skończyć:D:D więc co tam brak????;)
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
4

Nie wiem po co chcesz skończyć ten projekcik, ale taka mini pomoc.
Zaprzyjaźnij się z klawiszem f12. Szczególnie jak używasz chrome, albo firefox.

Wedź na renderowaną stronę - mam nadzieję, że dobrze to robisz (cyli w pasku adresu będziesz miał coś w stylu http://localhost:8080/projekcik/index.jsp.
Naciskasz f12 wyszukaj czegoś co się nazywa konsola - console, mówią, że to najgorsza konsola na rynku, ale przy debugowaniu stron nadal lepsze od playstation.

Potem przeładuj stronę i f5 i zobacz co tam wypisane jest.
A pewnie będzie wypisane $ is not a function. Co oznacza:

  • pieniądze szczęścia nie dają.

Natomiast oznacza to też, że mógłbyś spróbować szczęścia dołączając do tej strony bibliotekę np. jquery. Twój pierwszy problem nie ma nic wspólnego z javą, ani z jsp tylko z javascriptem.
Ale to pewnie tylko pierwszy problem. Pod f12 bezie też zakładka network tam znajdziesz dalsze wskazówki.


jeden i pół terabajta powinno wystarczyć każdemu
K1
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 2 lata
  • Postów:53
0

biblioteka załadowana.
po odpaleniu i naciśnięciu przycisku dostaję na konsoli to:

Kopiuj

:1813/button/testButton:1 Failed to load resource: the server responded with a status of 404 ()
jquery.min.js:2 GET http://localhost:1813/button/testButton 404
send @ jquery.min.js:2
ajax @ jquery.min.js:2
S.<computed> @ jquery.min.js:2
(anonymous) @ (index):14
dispatch @ jquery.min.js:2
v.handle @ jquery.min.js:2
jquery.min.js:2 GET http://localhost:1813/button/testButton 404
send @ jquery.min.js:2
ajax @ jquery.min.js:2
S.<computed> @ jquery.min.js:2
(anonymous) @ (index):14
dispatch @ jquery.min.js:2
v.handle @ jquery.min.js:2


w zakładce network takei cóś:

*testButton Status:404 Type:shr Initiator: jquery.min.js.2 Size: 959B Time:9ms
*
ugrzązłem

K1
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 2 lata
  • Postów:53
0

poszło!!! korzystając z "<form action="test" method="post"></form>, a nie z jQuery.
załączam. może przyda się jakiejś zabłąkanej duszy:
index.jsp

Kopiuj
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <title>test button</title>
</head>
<body>
<p></p>
<c:if test="${not empty exampleText}">
    <p><c:out value="${exampleText}"/></p>
</c:if>
<form action="test" method="post">
    <button id="somebutton">press here</button>
    <div id="somediv"></div>
</form>
</body>
</html>

testButtonController.java

Kopiuj
package com.example;

import jakarta.servlet.ServletContext;


import java.io.IOException;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.*;

@WebServlet("/test")

public class testButtonController extends HttpServlet {

    protected void doGet(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws ServletException, IOException {
        request.getRequestDispatcher("index.jsp").forward(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
        createExampleText();
        response.sendRedirect(request.getContextPath());

    }

    private String createExampleText() {
        ServletContext context = getServletContext();
        String exampleText = (String) context.getAttribute("exampletext");
        exampleText="testtesttest";
        context.setAttribute("exampleText", exampleText);
        return exampleText;
    }
}
edytowany 3x, ostatnio: k1313
K5
  • Rejestracja:około 6 lat
  • Ostatnio:około 13 godzin
  • Postów:1002
3

Powinieneś zażądać odszkodowania od tego kto Ci polecil/nakierował na JSP.

K1
:D:D:D:D zakończę co zacząłem i zacznę jak wspomniał @jarek
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)