Pierwszy servlet w Java Hello World

Odpowiedz Nowy wątek
2018-12-21 16:38
0

Od jakiegoś czasu uczę się Java. Postanowiłem zacząć ćwiczyć proste aplikacje webowe. Mam zinstalowany Tomcat 9.0.14, W Inteliji utworzyłem nowy projekt->Java Enterprise->Web application. Kod poniżej. Wydaje się że serwer Tomcat startuje poprawnie, tylko po wpisaniu adresu http://localhost:8080/HelloWorldServlet/HelloWorld mam bład

HTTP Status 404 – Not Found
Type Status Report
Message /HelloWorldServlet/HelloWorld
Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
Apache Tomcat/9.0.14

Przejrzełam kilknaście poradników i turtoriali ale we wszyskich jest to samo. Gdzie popełniam błąd. Czy pliki muszę wgrać do katalogu z Tomcat? Tak robiłem i nic nie pomogło.

web.xml


<?xml version="1.0" encoding="UTF-8"?>
<web-app
        xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
        xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
        version="2.5">

    <servlet>
        <servlet-name>HelloWorldServlet</servlet-name>
        <servlet-class>HelloWorldServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>HelloWorldServlet</servlet-name>
        <url-pattern>/HelloWorld</url-pattern>
    </servlet-mapping>
</web-app>

HelloWorldServlet.java

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.io.PrintWriter;

public class HelloWorldServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request,
                         HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");

        PrintWriter out = response.getWriter();

        out.println("<html><head><title>My Servlet</title></head><body>");
        out.println("Hello World!");
        out.println("<body></html>");

        out.close();
    }
}
edytowany 1x, ostatnio: mprofitw, 2018-12-21 17:13

Pozostało 580 znaków

2018-12-21 17:14
1

Ale zdajesz sobie sprawę że to czego się uczysz to jest technologia z czasów kamiennych tabic i nikt dzisiaj w tej sposób nie programuje ?

Pozostało 580 znaków

2018-12-21 17:27
0

Nie nie zdaję sobie sprawy. Chcę po prostu zacząć a nie moge odpalić najprostszej aplikacji!

Pozostało 580 znaków

2018-12-21 17:28
1

To w ogóle nie jest prosta aplikacja, serwlety, tomcat..

Proste aplikacje webowe to masz tak:
http://sparkjava.com/documentation


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.
edytowany 1x, ostatnio: jarekr000000, 2018-12-22 09:36

Pozostało 580 znaków

2018-12-21 17:54
2

a mi się wydaje, że JEDEN, słownie JEDEN servlet trzeba w życiu zrobić, aby zrozumieć co mogą, co nie mogą frameworki webowe, jakie mają zalety i mankamenty. Co to jest abstrakcja Requets i Response.
Nawet żeby zrozumieć wyższość / niższość JEE i serwować technologiami non-servlet np o niskim zużyciu wątków (tj zrozumieć co przejada wątki)

Gdybym był gorliwym krytykiem JEE, to przywołał bym ludzką mądrość, że choć raz się tzreba sparzyć i choć raz trzeba się młotkiem stuknąć. Aby wiedzieć co się krytykuje.

Albo np w moim widzeniu problemu monokultura Spring Boota jest szkodliwa, bo developer nie ma nawet wyobrażenia co jest pod maską. Na dziś Boot to jest takie webowe voodoo "kazali użyć, używam, ale nie rozumiem"

Dopóki serwery servletowe istnieją choćby w starszych projektach.

edytowany 1x, ostatnio: AnyKtokolwiek, 2018-12-21 17:58

Pozostało 580 znaków

2018-12-21 18:56
0

Spróbuj http://localhost:8080/HelloWorld

Ja tam ostatnio widziałem servlet w "nowym" kodzie, ale nie ukrywam, że byłem lekko zażenowany.

edytowany 1x, ostatnio: piotrpo, 2018-12-21 19:03
Ja zrozumiałem Ciebie "servlet w wykonaniu ręcznym", słusznie? Bo w piwnicach każdego bardziej współczesnego fw (Wicket, Vaadin, JSF2) pracują konieczne (nieliczne) servlety (albo filtry - Filter) .Fakt - nie są widoczne. - AnyKtokolwiek 2018-12-21 19:22
Tak, o to chodziło. - piotrpo 2018-12-21 19:47

Pozostało 580 znaków

2018-12-21 19:19
0
AnyKtokolwiek napisał(a):

a mi się wydaje, że JEDEN, słownie JEDEN servlet trzeba w życiu zrobić, aby zrozumieć co mogą, co nie mogą frameworki webowe, jakie mają zalety i mankamenty. Co to jest abstrakcja Requets i Response.

Do tego servlety nie sa wcale potrzebne. Podany przeze mnie sparkjava pokazuje to o wiele przyjaźniej, bez całego syfu servletów.
Servlety sa potrzebne tylko i wylacznie do nauczenia się servletów. Faktycznie, w wielu firmach, nawet w aplikacjjach springowych można takie spotkać i czasem nawet ma to jeszcze jakiś sens!
(najczęściej spotykam servlety w jakiś dziwnych operacjach uploadu/ downloadu ).


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.

Pozostało 580 znaków

2018-12-21 19:41
0

@jarekr000000: akurat Spark to nie framework. Ja nie znam żadnego frameworka Javovego który nie opierałby się o servlety, no poza SpringWebfluxem ale to nawet nie jest do końca framework :P


Nie pomagam przez PM. Pytania zadaje się na forum.
No właśnie. Do web/rest nie jest framework potrzebny. - jarekr000000 2018-12-21 19:42
Ale ja tego nie neguje, tylko chodzi o to że OP powiedział ze chodzi o frameworki :P - scibi92 2018-12-21 19:44
Nie. przynajmniej ja nie widzę. - jarekr000000 2018-12-21 20:03

Pozostało 580 znaków

2018-12-22 12:56
0

@mprofitw: szukaj pod hasłem Spring boot.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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