# Servlet erkennt request Objekt nicht



## aschunk (28. Sep 2010)

Hallo,

mein Servlet erkennt mein request Objekt nicht. 

Die entsprechende Klasse ist eingebunden: 

```
import javax.servlet.http.HttpServletRequest;

String username = request.getParameter("name");
String password = request.getParameter("passwort");
```


----------



## Murray (28. Sep 2010)

Geht es vielleicht etwas ausführlicher?


----------



## aschunk (28. Sep 2010)

Hallo

anbei das Servlet:


```
public class DBUserDataConnector extends HttpServlet {

  /* Die Methode Connection stellt eine Verbindung zur MySQL Datenbank her */
  public static Connection connect(){
    Connection conn = null;
    try{
    //MySQL Treiber laden 
    Class.forName("com.mysql.jdbc.Driver");
    //Verbindung herstellen 
    conn = DriverManager.getConnection("jdbc:mysql:///userdata", "root", "");

    }catch(Exception e){
        System.out.println("Fehler bei Datenbankverbindung: " + e.toString());
        
    }
    return conn;
  }

    /* Die Methode doPass überprüft das eingegebene Passwort */
    public void doPass(){
    //Verbindung herstellen 
    Connection conn = connect();
    //Variablen aus dem Formular auslesen 
    String username = request.getParameter("name");
    String password = request.getParameter("passwort");
      if (username == null) {
         //Statement Objekt erzeugen
        try{
         //Statement Objekt erzeugen
         Statement stmt = conn.createStatement();
         //Abfrage ausführen 
         ResultSet rs = stmt.executeQuery("select name, passwort from userdata");
          }catch(SQLException e){
            //Fehlermeldung ausgeben 
            PrintWriter out = response.getWriter();
            //Fehlerseite ausgeben
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Database Request Error</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>SQL Connection Error</h1>");
            out.println("<p>Error by accessing database </p>" + e.toString());
            out.println("</body>");
            out.println("</html>");
          }

         //Abfrage auf Datenbank ausführen
         
         
      }
    }

    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet DBUserDataConnector</title>");  
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet DBUserDataConnector at " + request.getContextPath () + "</h1>");
            out.println("<p>This Servlet processes the User input of the Administration form</p>");
            out.println("</body>");
            out.println("</html>");
            */
        } finally { 
            out.close();
        }
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "UserData Table Connector Servlet";
    }// </editor-fold>

}
```

[/code]


----------



## Noctarius (28. Sep 2010)

Schon mal geschaut ob der Parameter der Methode wirklich request heißt? Eclipse erzeugt oft Parameternamen im Stil "argx" wobei x die Position des Parameters in der Methoden-Signatur darstellt.

edit: In der Methode doPass ist ja auch kein Parameter namens request. Woher soll er den denn zaubern?


----------



## Gast2 (28. Sep 2010)

aschunk hat gesagt.:


> Hallo
> 
> anbei das Servlet:
> 
> ...



Die Variable Request gibt es in diesem Scope auch nicht


----------



## SlaterB (28. Sep 2010)

Java-Grundkurs Kapitel 1, zu lernen Jahre bevor man je etwas von HttpServlet hört:

lokale Variablen/ Parameter sind nur in den Methoden bekannt, zu denen sie gehören,
wenn andere Methoden die zugehörigen Objekt auch benötigen, dann muss man sie übergeben


```
class A {

public void a(String x) {
   b();
   c(x);
}
public void b() {
   System.out.println(x); // ?
}
public void c(String x) {
   System.out.println(x); // supi
}

}
```


----------



## ARadauer (28. Sep 2010)

danke für den Tipp Slater, den muss ich mir merken


----------



## aschunk (28. Sep 2010)

Hallo,

das Problem ist gelöst.


----------



## FArt (29. Sep 2010)

aschunk hat gesagt.:


> Hallo,
> 
> das Problem ist gelöst.



Super. Dann bedankt man sich nett und freundlich bei den Leuten und erzählt vielleicht noch, was das Problem war, damit auch andere noch was von diesem Thread haben.


----------

