Michi: Wie spring ich von der Clientseite ins Servlet?

Beitrag lesen

Hallo,

kennt jemand eine gute Seite, auf der erklärt wird, wie man von einer JSP-Seite aus ein eigenes Servlet aufruft und wie JSP und Servlet in ein Eclipse-Projekt bzw. in die publizierte Webversion (-> WAR?) eingebunden werden müssen, damit sie zusammenarbeiten können?

Diese Seite erklärt schon viel:
http://www.torsten-horn.de/techdocs/java-eclipse.htm#Tomcat

und das Einführungstutorial
http://www.galileocomputing.de/openbook/javainsel5/javainsel17_000.htm#Xxx999378
ist schon auch hilfreich für Anfänger,

aber ich schaff es eben noch nicht, vom JSP aus das Servlet aufzurufen.

Vielleicht ist es aber auch gar nicht so gedacht, dass man von JSP aus in ein eigenes Servlet überspringt, zumal ich ja noch KEIN - nicht mal im galileocomputing, wo es ja eine ewiglange Einführung gibt - Beispiel dafür gefunden habe, außer für "form action"-Aufrufe, ansonsten immer nur so Standardmethodenaufrufe wie "java.util.Date()" - weiß ich eben nicht.

In dem Fall bitte ich um kurze Aufklärung, wie ich denn am Einfachsten von der Clientseite in ein Java-Servlet rüberkomme und evtl. auch wieder zurück, wenn das Servlet eben nicht alles machen soll. ;)

Im Anhang mein bisheriger, gescheiterter Eclipse-Versuch mit der Jasper-Fehlermeldung, von JSP aus ein Servlet zu starten.

Gruß Michi

____________________________________________________________________
____________________________________________________________________

Meine Projektstruktur vom Projekt "MyFirstJSP" im Eclipse schaut so aus:

HelloJSP.jsp
WEB-INF/src/HalloServlet.java
WEB-INF/web.xml

Inhalte:

HelloJSP.jsp:
_______________________________________________________________________
<%@ page import="java.text.*" %>
<%@ page import="java.util.*" %>

<html>
Hallo, meine erste JSP-Seite meldet sich!<br>
<%= request.getRemoteHost() %>,
<%= (new SimpleDateFormat("yyyy-MM-dd, HH:mm:ss")).format(new Date()) + " h" %>
<%= (new HalloServlet()) %>
</html>
_______________________________________________________________________

WEB-INF/src/HalloServlet.java:
_______________________________________________________________________
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HalloServlet extends HttpServlet
{
  public void doGet( HttpServletRequest requ, HttpServletResponse resp )
  throws ServletException, IOException
  {
    resp.setContentType( "text/html" );
    PrintWriter out = resp.getWriter();
    // out.println( "<html>" );
    out.println( "Hallo, mein erstes Servlet meldet sich." );
    // out.println( "</html>" );
    out.close();
  }
}
_______________________________________________________________________

WEB-INF/web.xml:
_______________________________________________________________________
<!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>
  <display-name>Mein erstes Servlet</display-name>
  <servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>HalloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
</web-app>
_______________________________________________________________________

Fehlermeldung:

_______________________________________________________________________
HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 8 in the jsp file: /HelloJSP.jsp
Generated servlet error:
HalloServlet cannot be resolved to a type

org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
   org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
   org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:409)
   org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
   org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
   org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
   org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.12 logs.
_______________________________________________________________________