# Parameter auslesen



## padde479 (17. Sep 2005)

Moin Zusammen

Ich möchte aus einem HTML-Formular drei Parameter auslesen. Habe dazu ein HTML-File, ein Java-File geschrieben. Das web.xml-File habe ich auch angepasst. Nur leider funktioniert es nicht. Wenn ich das Formular abschicke, bekomme ich immer eine Fehlermeldung, dass das angegebene Servlet nicht 'available' ist. Woran kann das denn liegen?

Gruß
Padde

PS: Anbei noch die drei Quellcode:
ThreeParamsForm.html

```
<!DOCTYPE HTML PUBLIC "W3C//DTD HTML 4.0 Transitional//EN">
<html>
 <head>
  <title>
   Collecting Three Parameters
  </title>
 </head>
 <body bgcolor="#fdf5f6">
  <h1 align="center">
   Collecting Three Parameters
  </h1>
  <form action="/servlet/ThreeParams">
   First Parameter: <input type="text" name="param1">
   Second Parameter: <input type="text" name="param2">
   Third Parameter: <input type="text" name="param3">
   <center>
    <input type="submit">
   </center>
  </form>
 </body>
</html>
```

ThreeParams.java

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

public class ThreeParams extends HttpServlet{
 public void doGet(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException{
  response.setContentType("text/html");
  PrintWriter out = response.getWriter();

  // Titel bestimmen
  String title = "Reading Three Request Parameters";
  String docType = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";

  // html-Seite erzeugen
  out.println(docType);
  out.println("<html>");
  out.println("<head>");
  out.println("<title>" + title + "</title>");
  out.println("</head>");
  out.println("<body bgcolor=\"#fdf5f6\">");
  out.println("<h1 align=\"center\">" + title + "</h1>");
  out.println("<ul>");
  out.print("[*][b]param1[/b]:");
  out.println(request.getParameter("param1"));
  out.print("[*][b]param2[/b]:");
  out.println(request.getParameter("param2"));
  out.print("[*][b]param3[/b]:");
  out.println(request.getParameter("param3"));
  out.println("[/list]");
  out.println("</body>");
  out.println("</html>");
 }
}
```

web.xml

```
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app >
 <servlet>
  <servlet-name>ThreeParams</servlet-name>
  <servlet-class>ThreeParams</servlet-class>
 </servlet>
  <servlet-name>ThreeParams</servlet-name>
  <url-pattern>/servlet/ThreeParams</url-pattern>
 </servlet-mapping>
</web-app>
```


----------



## Bleiglanz (17. Sep 2005)

die web.xml ist falsch

es fehlt das start-Tag 

<servlet-mapping>


Tipp: verwende nie das Default-Package, leg alle Klassen immer in ein package!!


----------



## padde479 (17. Sep 2005)

Daran kann es nicht liegen. Habe das Start-Tag nur falsch kopiert. <servlet-mapping> existiert. Daran kann es also nicht liegen.

Wenn ich das Servlet direkt über die Adresszeile aufrufe, funktioniert es ja auch. Nur wenn ich es von einem Formular aus aufrufen will klappt es nicht. Was habe ich denn noch für Möglichkeiten?


----------



## bronks (17. Sep 2005)

padde479 hat gesagt.:
			
		

> Daran kann es nicht liegen. Habe das Start-Tag nur falsch kopiert. <servlet-mapping> existiert. Daran kann es also nicht liegen.
> 
> Wenn ich das Servlet direkt über die Adresszeile aufrufe, funktioniert es ja auch. Nur wenn ich es von einem Formular aus aufrufen will klappt es nicht. Was habe ich denn noch für Möglichkeiten?



Wie Bleiglanz schon schrieb: Verwende nie das Default-Package und genau das ist in deinem Fall m.E. der Grund. Das Ergibt total unerwartet unsinnige Probleme, mit denen Du wahrscheinlich jetzt kämpfst.


----------



## Bleiglanz (17. Sep 2005)

du hast nur doGet, aber das Formular macht ein doPost  ???

genaue Fehlermeldung:

Serlvet not available

oder

Mehtod not available


----------

