# JSP kann Servlet nicht aufrufen! :-(



## Novanic (17. Feb 2007)

Hi Leute,

ich hab hier ein Problem und zwar kann meine JSP mein Servlet nicht aufrufen. Der Webserver ist ein Tomcat. Bitte helft mir, ich werd hier echt noch wahnsinnig!!

Das Servlet wird aber anscheinend gefunden, wenn ich den "/" im form-action der JSP rausnehme, bekomme ich eine Fehlermeldung vom Tomcat (Servlet nicht gefunden) und wenn ich es so lasse wie es unten steht, bekomme ich eine leere Seite. Aber das Servlet macht keine Ausgabe (was es eigentlich in doGet/doPost machen sollte) und der Debugger hält auch in keiner Zeile des Servlets an... Deprimierender gehts garnicht...

Registrierung des Servlets in der web.xml:


```
<servlet>
		<display-name>GameServlet</display-name>
		<servlet-name>GameServlet</servlet-name>
		<servlet-class>de.novanic.web.GameServlet</servlet-class>
    </servlet>
	<servlet-mapping>
		<servlet-name>GameServlet</servlet-name>
		<url-pattern>/GameServlet</url-pattern>
	</servlet-mapping>
```

Inhalt der JSP (entscheidender Ausschnitt):


```
<form name="game_form" action="/GameServlet" method="POST">
        <center>
            <table border="0" width="65%">
                <tr>
                    <td>
                    <input type="submit" value="Submit"/>
                    </td>
                </tr>
            </table>
        </center>
    </form>
```

Testweiser Inhalt des Servlets:


```
public class GameServlet extends HttpServlet implements Servlet
{
    protected void doPost(HttpServletRequest aHttpServletRequest, HttpServletResponse aHttpServletResponse) throws ServletException, IOException
    {
        PrintWriter out = aHttpServletResponse.getWriter();
		out.print("Hello Servlet");
        System.out.println("YES");
        Enumeration theEnumeration = aHttpServletRequest.getParameterNames();
        while(theEnumeration.hasMoreElements()) {
            System.out.println("Test: " + theEnumeration.nextElement());
        }
    }

    protected void doGet(HttpServletRequest aHttpServletRequest, HttpServletResponse aHttpServletResponse) throws ServletException, IOException
    {
        PrintWriter out = aHttpServletResponse.getWriter();
		out.print("Hello Servlet");
        System.out.println("YES");
        Enumeration theEnumeration = aHttpServletRequest.getParameterNames();
        while(theEnumeration.hasMoreElements()) {
            System.out.println("Test: " + theEnumeration.nextElement());
        }
    }
```

Danke schonmal im Voraus! 

Gruß Nova


----------



## freez (18. Feb 2007)

Hallo Novanic,

dein Problem ist der Aufruf deines Servlets. Es ist nicht auf dem Root verzeichniss gemappt, sondern unter deiner Webanwendung. In deinem Fall rufst du im Formular dein Servlet so auf: http://meineDomain.de/GameServlet ... in deiner web.xml ist das Servlet allerdings unter deiner Webanwendung gemappt: http://meineDomain.de/deineWebanwendung/GameServlet

Der Aufruf im form Tag muß also so lauten:


```
<form name="game_form" action="/Pfad zu deiner Webanwendung/GameServlet" method="POST">
```

oder so:


```
<form name="game_form" action="./GameServlet" method="POST">
```



Beste Grüße
Denis


----------



## Novanic (18. Feb 2007)

Juhu, es klappt! Danke! 

Komischerweise zeigt mir IntelliJ jetzt in meiner JSP-Seite eine Warnung an, weil er das Servlet nicht finden kann (das war bei "/GameServlet" nicht der Fall). Aber ist ja nicht so schlimm, hauptsache der Tomcat findet es. ;-)

Vielen Dank! 

Gruß Nova


----------

