Hejka wszystkim,
mam następujący problem.
Uczę się właśnie o JSP i tym podobnych - w tym celu dorwałem książkę z cyklu HEAD FIRST. W rozdziale 3 jest omówienie MVC i jakiś przykład na zasadzie wyboru piwa na formularzu i wyświetlanie potwierdzenia. W przeciwieństwie do książki to ja kod pisze w Eclipsie i korzystam z serwera Glassfish, więc z częścią rzeczy walcze sam...
I tu moje pytanie: przepisałem kod z książki, uruchamiam aplikacje na serwerze. Strona z formularzem zostaje załadowana, teoretycznie po kliknięciu "submit" ma nastąpić przekierowanie na stronę, która wyświetla wybrany parametr. Przekierowanie jednak nie następuje, a strona zamiast się wyświetlić jest pobierana. Po otwarciu jej w notatniku mam to co teoretycznie powinno być wyświetlone jako strona internetowa. Kiedy wpisuje adres nowej strony "z ręki" dostaje HTTP404...
Macie jakiś pomysł? Poniżej załączam kod i dalsze wyjaśnienia.
Poniższy kod javy znajduje sie w folderze src/main/java w pakiecie web
package web;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class WyborPiwa extends HttpServlet {
public void doPost (HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
response.setContentType ("test/html");
PrintWriter out = response.getWriter();
out.println("Porada piwna<br>");
String c = request.getParameter("kolor");
out.println("<br>Wybrany kolor piwa:" +c);
}
}
Tutaj mam plik web.xml z deskryptorem/mapowaniem
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
<servlet-name>R3 Piwo</servlet-name>
<servlet-class>web.WyborPiwa</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>R3 Piwo</servlet-name>
<url-pattern>/WybierzPiwo.do</url-pattern>
</servlet-mapping>
</web-app>
A na koniec plik HTML z formularza od którego zaczynam.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<h1 align="center">Strona wyboru piwa</h1>
<form method="post" action="WybierzPiwo.do">Wybierz wlasciwosci piwa
<p>Kolor:
<select name="kolor" size="1">
<option>jasny
<option>ciemny
<option>brazowy
<option>ciemny
</select>
<br><br>
<center>
<input type="submit">
</center>
</form>
</body>
</html>
Projekt nazwałem sobie jak w książce Piwo-w1.
Strukturę web widzę tak:
formularz:
http://localhost:8080/Piwo-w1/form.html
po potwierdzeniu przechodzę na:
http://localhost:8080/Piwo-w1/WybierzPiwo.do
No ale jak już mówiłem w moim przypadku nie przechodzę, a zostaje na stronie form.html a plik .do jest pobierany...