JSP, wywoływanie metody z innej klasy

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

<!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

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);       
    }
}

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):
Początki w java, a technolog...

0

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

0

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

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.

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.

0

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


: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

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

<%@ 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

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;
    }
}
3

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1