Hallo,
lassen sich Servlets aus JSPs heraus ausrufen?
Ich kann im Eclipse sowohl Servlets als auch JSPs anlegen, umwandeln und im Brower (http://localhost:8080/...) fehlerfrei betrachten.
Wie schaffe ich es nun, aus einer Java Server Page heraus ein eigenes Servlet aufzurufen? (Wenn das überhaupt geht, denn kein Beispiel dafür habe ich noch nicht gefunden und ich dachte mir, dass gerade das ja den Reiz ausmacht?
)
<%= (new MyServlet... ) %>
reicht scheinbar noch nicht, wie ich beim Probieren festgestellt hab.
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>
_______________________________________________________________________
Starte ich HelloJSP, krieg ich folgende 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.
_______________________________________________________________________
Wie muss ich HalloServer.class also in HelloJSP.jsp einbinden (vorausgesetzt, es geht technisch
)?
Gruß Michi
lassen sich Servlets aus JSPs heraus ausrufen?
Ich kann im Eclipse sowohl Servlets als auch JSPs anlegen, umwandeln und im Brower (http://localhost:8080/...) fehlerfrei betrachten.
Wie schaffe ich es nun, aus einer Java Server Page heraus ein eigenes Servlet aufzurufen? (Wenn das überhaupt geht, denn kein Beispiel dafür habe ich noch nicht gefunden und ich dachte mir, dass gerade das ja den Reiz ausmacht?

<%= (new MyServlet... ) %>
reicht scheinbar noch nicht, wie ich beim Probieren festgestellt hab.
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>
_______________________________________________________________________
Starte ich HelloJSP, krieg ich folgende 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.
_______________________________________________________________________
Wie muss ich HalloServer.class also in HelloJSP.jsp einbinden (vorausgesetzt, es geht technisch

Gruß Michi