Hi,

Servlet works, jsp not. Why?

Result of servlet:
--------------------
Datensätze
jdbc:mysql://localhost:3306/javatest    com.mysql.jdbc.Driver
javauser        javadude
Name    Vorname
1       hello
2       hellox

Result of jsp:
-----------------
Results
${row.foo}      ${row.bar}

Servlet source code:
---------------------
package de.akdabas.jli.j2ee.servlets;

import java.io.PrintWriter;
import java.io.IOException;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;

/** Erzeugte dynamischen Inhalt aus Datenbank-Daten */
public class DatenbankServlet extends HttpServlet {

   /** Globale Variable: Die geöffnete Datenbank-Verbindung */
   private Connection connection;
   private String driver;
   private String dbURL;
   private String dbUser; 
   private String dbPass; 
   /** Initialisieren der Datenbank-Verbindung */
   public void init(javax.servlet.ServletConfig config)
      throws ServletException {

      // Init der Superklasse aufrufen !
      super.init(config);

      // Parameter aus web.xml auslesen
 //     String
      driver = config.getInitParameter("jdbcClass");
      dbURL =  config.getInitParameter("dbURL");
      dbUser = config.getInitParameter("username");
      dbPass = config.getInitParameter("password");

      // Aufbau der Datenbank-Verbindung
      try {
         Class.forName(driver);
         connection =
            DriverManager.getConnection(dbURL, dbUser, dbPass);
      } catch(Exception exc) {
         throw new ServletException("SQL-Exception in init()", exc);
      }

   }


   /** Bearbeiten von POST-Requests analog zu GET */
   public void doPost(HttpServletRequest request,
                      HttpServletResponse response)
                      throws IOException, ServletException {

      // Weiterleiten des Request an die Methode doGet()
      doGet(request, response);
   }

   /** Service-Methode zur Verarbeitung von GET-Requests */
   public void doGet(HttpServletRequest request,
                     HttpServletResponse response)
                     throws IOException, ServletException {

      // Binden der (in JSPs vordefinierten) Variable out
      PrintWriter out = response.getWriter();

      // Erzeugen von HTML-Code ...
      out.println("<html><body><center>Datensätze</center>");
      out.println("<table><tr><td>"+dbURL+"</td><td>"+driver+"</td></tr>");
      out.println("<table><tr><td>"+dbUser+"</td><td>"+dbPass+"</td></tr>");
      out.println("<table><tr><td>Name</td><td>Vorname</td></tr>");
      // Aufbau der Datenbank-Verbindung

      try {
         Class.forName(driver);
         connection =
            DriverManager.getConnection(dbURL, dbUser, dbPass);
      } catch(Exception exc) {
         out.println("<center>Datensätze2</center>");
         throw new ServletException("SQL-Exception in init()", exc);
      }

      // ... und Einbinden von dynamischem Inhalt
      try {
         ResultSet rs = null;
         try {
            Statement stmt = connection.createStatement();
            rs = stmt.executeQuery
                    ("Select * from testdata");

            while(rs.next() == true) {
               out.println("<tr><td>" + rs.getString(1) + "</td>");
               out.println("<td>" + rs.getString(2) + "</td></tr>");
            }

         } finally {
            rs.close();
         }

      } catch(SQLException exc) {
         out.println("<html><body><center>Datensätze3</center>");
         throw new ServletException("SQL-Exception", exc);
      }

      out.println("</table></body></html>");
   }

   /** Wird verwendet um belegte Ressourcen freizugeben */
   public void destroy() {
      try {
         // Freigeben von Datenbank-Ressourcen
         connection.close();
      } catch(SQLException exc) {
         log("SQL-Exception in destroy()", exc);
      }
   }
}
----------------

jsp code:
---------
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql"; prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core"; prefix="c" %>

<sql:query var="rs" 
dataSource="jdbc:mysql://localhost:3306/javatest?user=javauser&password=javadude">
select id, foo, bar from testdata
</sql:query>

<html>
  <head>
    <title>DB Test</title>
  </head>
  <body>

  <h2>Results</h2>
  

<table>
<c:forEach var="row" items="${rs.rows}">
<tr>
   <td> <c:out value="${row.foo}"/></td>
   <td> <c:out value="${row.bar}"/></td>
</tr>
</c:forEach>
</table>
  </body>
</html>
---------------------------
jsp's servlet code:
-------------------
package org.apache.jsp.jsp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;

public final class test_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent {

  private static java.util.Vector _jspx_dependants;

  private org.apache.jasper.runtime.TagHandlerPool 
_jspx_tagPool_sql_query_var_dataSource;
  private org.apache.jasper.runtime.TagHandlerPool 
_jspx_tagPool_c_forEach_var_items;
  private org.apache.jasper.runtime.TagHandlerPool 
_jspx_tagPool_c_out_value_nobody;

  public java.util.List getDependants() {
    return _jspx_dependants;
  }

  public void _jspInit() {
    _jspx_tagPool_sql_query_var_dataSource = 
org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
    _jspx_tagPool_c_forEach_var_items = 
org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
    _jspx_tagPool_c_out_value_nobody = 
org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
  }

  public void _jspDestroy() {
    _jspx_tagPool_sql_query_var_dataSource.release();
    _jspx_tagPool_c_forEach_var_items.release();
    _jspx_tagPool_c_out_value_nobody.release();
  }

  public void _jspService(HttpServletRequest request, HttpServletResponse 
response)
        throws java.io.IOException, ServletException {

    JspFactory _jspxFactory = null;
    PageContext pageContext = null;
    HttpSession session = null;
    ServletContext application = null;
    ServletConfig config = null;
    JspWriter out = null;
    Object page = this;
    JspWriter _jspx_out = null;
    PageContext _jspx_page_context = null;


    try {
      _jspxFactory = JspFactory.getDefaultFactory();
      response.setContentType("text/html");
      pageContext = _jspxFactory.getPageContext(this, request, response,
                        null, true, 8192, true);
      _jspx_page_context = pageContext;
      application = pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;

      out.write('\n');
      out.write('\n');
      out.write('\n');
      if (_jspx_meth_sql_query_0(_jspx_page_context))
        return;
      out.write("\n");
      out.write("\n");
      out.write("<html>\n");
      out.write("  <head>\n");
      out.write("    <title>DB Test</title>\n");
      out.write("  </head>\n");
      out.write("  <body>\n");
      out.write("\n");
      out.write("  <h2>Results</h2>\n");
      out.write("  \n");
      out.write("\n");
      out.write("<table>\n");
      if (_jspx_meth_c_forEach_0(_jspx_page_context))
        return;
      out.write("\n");
      out.write("</table>\n");
      out.write("  </body>\n");
      out.write("</html>");
    } catch (Throwable t) {
      if (!(t instanceof SkipPageException)){
        out = _jspx_out;
        if (out != null && out.getBufferSize() != 0)
          out.clearBuffer();
        if (_jspx_page_context != null) 
_jspx_page_context.handlePageException(t);
      }
    } finally {
      if (_jspxFactory != null) 
_jspxFactory.releasePageContext(_jspx_page_context);
    }
  }

  private boolean _jspx_meth_sql_query_0(PageContext _jspx_page_context)
          throws Throwable {
    PageContext pageContext = _jspx_page_context;
    JspWriter out = _jspx_page_context.getOut();
    //  sql:query
    org.apache.taglibs.standard.tag.rt.sql.QueryTag _jspx_th_sql_query_0 = 
(org.apache.taglibs.standard.tag.rt.sql.QueryTag) 
_jspx_tagPool_sql_query_var_dataSource.get(org.apache.taglibs.standard.tag.rt.sql.QueryTag.class);
    _jspx_th_sql_query_0.setPageContext(_jspx_page_context);
    _jspx_th_sql_query_0.setParent(null);
    _jspx_th_sql_query_0.setVar("rs");
    _jspx_th_sql_query_0.setDataSource(new 
String("jdbc:mysql://localhost:3306/javatest?user=javauser&password=javadude"));
    int[] _jspx_push_body_count_sql_query_0 = new int[] { 0 };
    try {
      int _jspx_eval_sql_query_0 = _jspx_th_sql_query_0.doStartTag();
      if (_jspx_eval_sql_query_0 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
        if (_jspx_eval_sql_query_0 != 
javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
          out = _jspx_page_context.pushBody();
          _jspx_push_body_count_sql_query_0[0]++;
          
_jspx_th_sql_query_0.setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);
          _jspx_th_sql_query_0.doInitBody();
        }
        do {
          out.write("\n");
          out.write("select id, foo, bar from testdata\n");
          int evalDoAfterBody = _jspx_th_sql_query_0.doAfterBody();
          if (evalDoAfterBody != 
javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
            break;
        } while (true);
        if (_jspx_eval_sql_query_0 != 
javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE)
          out = _jspx_page_context.popBody();
          _jspx_push_body_count_sql_query_0[0]--;
      }
      if (_jspx_th_sql_query_0.doEndTag() == 
javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
        return true;
    } catch (Throwable _jspx_exception) {
      while (_jspx_push_body_count_sql_query_0[0]-- > 0)
        out = _jspx_page_context.popBody();
      _jspx_th_sql_query_0.doCatch(_jspx_exception);
    } finally {
      _jspx_th_sql_query_0.doFinally();
      _jspx_tagPool_sql_query_var_dataSource.reuse(_jspx_th_sql_query_0);
    }
    return false;
  }

  private boolean _jspx_meth_c_forEach_0(PageContext _jspx_page_context)
          throws Throwable {
    PageContext pageContext = _jspx_page_context;
    JspWriter out = _jspx_page_context.getOut();
    //  c:forEach
    org.apache.taglibs.standard.tag.rt.core.ForEachTag _jspx_th_c_forEach_0 = 
(org.apache.taglibs.standard.tag.rt.core.ForEachTag) 
_jspx_tagPool_c_forEach_var_items.get(org.apache.taglibs.standard.tag.rt.core.ForEachTag.class);
    _jspx_th_c_forEach_0.setPageContext(_jspx_page_context);
    _jspx_th_c_forEach_0.setParent(null);
    _jspx_th_c_forEach_0.setVar("row");
    _jspx_th_c_forEach_0.setItems(new String("${rs.rows}"));
    int[] _jspx_push_body_count_c_forEach_0 = new int[] { 0 };
    try {
      int _jspx_eval_c_forEach_0 = _jspx_th_c_forEach_0.doStartTag();
      if (_jspx_eval_c_forEach_0 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
        do {
          out.write("\n");
          out.write("<tr>\n");
          out.write("   <td> ");
          if (_jspx_meth_c_out_0(_jspx_th_c_forEach_0, _jspx_page_context, 
_jspx_push_body_count_c_forEach_0))
            return true;
          out.write("</td>\n");
          out.write("   <td> ");
          if (_jspx_meth_c_out_1(_jspx_th_c_forEach_0, _jspx_page_context, 
_jspx_push_body_count_c_forEach_0))
            return true;
          out.write("</td>\n");
          out.write("</tr>\n");
          int evalDoAfterBody = _jspx_th_c_forEach_0.doAfterBody();
          if (evalDoAfterBody != 
javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
            break;
        } while (true);
      }
      if (_jspx_th_c_forEach_0.doEndTag() == 
javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
        return true;
    } catch (Throwable _jspx_exception) {
      while (_jspx_push_body_count_c_forEach_0[0]-- > 0)
        out = _jspx_page_context.popBody();
      _jspx_th_c_forEach_0.doCatch(_jspx_exception);
    } finally {
      _jspx_th_c_forEach_0.doFinally();
      _jspx_tagPool_c_forEach_var_items.reuse(_jspx_th_c_forEach_0);
    }
    return false;
  }

  private boolean _jspx_meth_c_out_0(javax.servlet.jsp.tagext.JspTag 
_jspx_th_c_forEach_0, PageContext _jspx_page_context, int[] 
_jspx_push_body_count_c_forEach_0)
          throws Throwable {
    PageContext pageContext = _jspx_page_context;
    JspWriter out = _jspx_page_context.getOut();
    //  c:out
    org.apache.taglibs.standard.tag.rt.core.OutTag _jspx_th_c_out_0 = 
(org.apache.taglibs.standard.tag.rt.core.OutTag) 
_jspx_tagPool_c_out_value_nobody.get(org.apache.taglibs.standard.tag.rt.core.OutTag.class);
    _jspx_th_c_out_0.setPageContext(_jspx_page_context);
    _jspx_th_c_out_0.setParent((javax.servlet.jsp.tagext.Tag) 
_jspx_th_c_forEach_0);
    _jspx_th_c_out_0.setValue(new String("${row.foo}"));
    int _jspx_eval_c_out_0 = _jspx_th_c_out_0.doStartTag();
    if (_jspx_th_c_out_0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
      return true;
    _jspx_tagPool_c_out_value_nobody.reuse(_jspx_th_c_out_0);
    return false;
  }

  private boolean _jspx_meth_c_out_1(javax.servlet.jsp.tagext.JspTag 
_jspx_th_c_forEach_0, PageContext _jspx_page_context, int[] 
_jspx_push_body_count_c_forEach_0)
          throws Throwable {
    PageContext pageContext = _jspx_page_context;
    JspWriter out = _jspx_page_context.getOut();
    //  c:out
    org.apache.taglibs.standard.tag.rt.core.OutTag _jspx_th_c_out_1 = 
(org.apache.taglibs.standard.tag.rt.core.OutTag) 
_jspx_tagPool_c_out_value_nobody.get(org.apache.taglibs.standard.tag.rt.core.OutTag.class);
    _jspx_th_c_out_1.setPageContext(_jspx_page_context);
    _jspx_th_c_out_1.setParent((javax.servlet.jsp.tagext.Tag) 
_jspx_th_c_forEach_0);
    _jspx_th_c_out_1.setValue(new String("${row.bar}"));
    int _jspx_eval_c_out_1 = _jspx_th_c_out_1.doStartTag();
    if (_jspx_th_c_out_1.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
      return true;
    _jspx_tagPool_c_out_value_nobody.reuse(_jspx_th_c_out_1);
    return false;
  }
}
--------------------------------------


Thanks in advance for any help: Eleonora


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to