Problem z serwletem

0

Witam, przerabiam ksiazke Head first servlets and jsp (wczesniej zrobilem head first java) i mam problemy z kompilowaniem serwletu. Próbowałem to kompliować ręcznie ale wyświetla mi wtedy błędy:

C:\Users\qwerty>cd ..

C:\Users>cd ..

C:>javac WyborPiwa.java
WyborPiwa.java error: package javax.servlet does not exist
import javax.servlet.;
^
WyborPiwa.java error: package javax.servlet.http does not exist
import javax.servlet.http.
;
^
WyborPiwa.java error: cannot find symbol
public class WyborPiwa extends HttpServlet {
^
symbol: class HttpServlet
WyborPiwa.java error: cannot find symbol
public void doPost(HttpServletRequest request, HttpServletResponse respo
nse)
^
symbol: class HttpServletRequest
location: class WyborPiwa
WyborPiwa.java error: cannot find symbol
public void doPost(HttpServletRequest request, HttpServletResponse respo
nse)
^
symbol: class HttpServletResponse
location: class WyborPiwa
WyborPiwa.java error: cannot find symbol
throws IOException, ServletException {
^
symbol: class ServletException
location: class WyborPiwa
6 errors

C:>

kod serwletu :

package com.example.web;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class WyborPiwa extends HttpServlet {
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException {
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("Porada piwna<br>");
		String c = request.getParameter("kolor");
		out.println("<br>Wybrany kolor piwa:" + c);
	}
}

Jest to pierwszy przykład serwletu z książki. Najpierw próbowałem to robić wszystko w notatnikach i samemu robić strukturę folderów ale to nic nie dało. Spróbowałem zrobić to w eclipse i też nie działa. Wyświetla się zawartość strony :
http://localhost:8080/Wyborpiwa-w1/form.html
Lecz gdy chce wysłać zapytanie to serwlet już nie działa i odpowiedzi nie dostaje, wyświetla mi się wtedy błąd 404. Już nie mam pojęcia w jaki sposób co mam zrobić, najchętniej bym zrobił to w eclipsie ponieważ wcześniej tam dużo programowałem .
Zamieszczam w załączniku plik z eclipse , znajduję się tam xml, strona html i serwlet.

Jeżeli byłby ktoś tak bardzo dobry, to proszę o pomoc, siędzę już nad tym cały dzień.

0

Nie kompiluj ręcznie tylko z jakiegoś ludzkiego IDE. Serwlety wymagaja servlet-api.jar żeby sie kompilować.
Jeśli w eclipse ci ruszyło ale daje 404 to znaczy że źle napisałeś servlet.

0

Kompilowałem przez eclipse i jedynie co mogę zrobić to otworzyć w okienku eclipse plik html i wysłać zapytanie. Nie mam pojęcia co może być tam źle, jestem zielony jeżeli chodzi o serwlety. Czy mógłby ktoś bardziej nakierować lub poprawić ? Może struktura folderów jest źle ?

0

Servlet, jak sama nazwa wskazuje, jest do tego, aby pracować na serwerze. Nic nie wspominasz o serwerze, więc podejrzewam, że go nie masz. Do tego co robisz wystarczy serwer Tomcat, znajdź, pobierz, zainstaluj zgodnie z instrukcją. Potem dodaj serwer do eclipse i zrób aplikację typu dynamic web. Do tego mógłbyś mieć eclipse w wersji Java EE. Znajdź potem tutorial jak się robi taką dynamic web app i dalej z książki.

0

Mam tomcata 7.0 który jest dobrze skonfigurowany i eclipse w wersji EE który również konfigurowałem i dodawałem tam tomcata . Stworzyłem ten projekt właśnie za pomocą dynamic web project, dlatego mam problem bo mimo wszystko to nie działa i załączyłem plik . Kod jest bardzo krótki.

0

A w zakładce servers masz twój serwer dodany? I jak masz, to masz do niego dodany swój projekt?

0

Mam osobno folder nazwany servers i w nim folder o nazwie tomcat v7.0 server at localhost-config
a w srodku jest:
catalina policy
cataliny.properties
context.xml
server.xml
tomcat-users.xml
web.xml

A moj projekt z reszta jest w osobnym folderze który wcześniej podałem w załączniku

0

W menu Winodw->Show View->Other->Server->Servers
I w tej zakładce dodaj serwer. Poza tym tak jak napisano wcześniej możesz dodać do projektu servlet-api.jar. Jak będziesz miał serwer, to wtedy w buildpath dodajesz Server Runtime do ścieżki zamiast jara. Ale najpierw dodaj i skonfiguj serwer, żeby się z eclipse uruchamiał.

0

Działa :D! dziekuje bardzo za pomoc wam, a powiecie mi jeszcze jak takiego jara się tworzy i po co on jest ?

0

To powiedz czy dodałeś jar czy serwer? Jak to katalog spakowany zipem o określonej strukturze, zawiera zwykle skompilowane klasy, ale też inne rzeczy. Tworzy się go pakując odpowiednio przygotowany katalog. Z automatu robi to eclipse (export projektu), ,maven, ant. Tego servlet-api.jar pisze ten, kto pisze serwer, a nie aplikację. Tak więc przyjmij, że jest on już napisany.

0

jara nie zrobilem, serwer ustawilem w taki sposób jak napisałeś powyżej

0

Odpowiadając na poprzednie pytanie, to w aplikacjach webowych część specyfikacji jest implementowana przez serwer, m. in. rzeczona biblioteka servlet-api. Specyfikacja opisuje jakie metody co mają robić, ale nie w jaki sposób. Dlatego pisząc kod w eclipsie, aby działało sprawdzanie poprawności kodu muszą być dodane zewnętrzne biblioteki. Zewnętrzne, tzn. inne niż te, które są udostępniane przez JRE (w jre są też biblioteki od innych dostawców, np. xerces).

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