# Problem mit JSP und Bean



## mr.magoo (7. Dez 2008)

sooo, ich hab da so ein problem mit der verständigung zwischen jsp seite und bean...

folgende fehlermeldung



> incompatible types
> found : bohnen.Login.authenticate
> required: boolen
> 
> authenticate(java.lang.String,java.lang.String) in bohnen.Login cannot be applied to ()




zunächst der code des formulars auf der index.jsp:

```
<form method="post" action="process2.jsp" >
               
               <p style="position:relative; left:0px; top:20px;">
               Name:     <input style="position:relative; left:23px;" type="text" name="username">

               Passwort: <input type="password" name="password">

               <input type="submit" name="submit" value="Login"> 
               </p>

            </form>
```

Benutzername und Passwort werden nun an die nächste seite übergeben:
das problem hierbei: die methode authenticate erwartet einen boolean....bekommt ihn aber anscheinend nicht...
kann mir hier jemand helfen?



```
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<%@ page import="java.util.*" %>
<jsp:useBean id="idHandler" class="bohnen.Login" scope="request">
<jsp:setProperty name="idHandler" property="*"/>
</jsp:useBean>

<% 
   if (idHandler.authenticate()) { 
%>
<jsp:forward page="startseite.jsp"/>
<%
   }  else {
%>
<jsp:forward page="index.jsp"/>
<%
   }
%>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP-Seite</title>
    </head>
    <body>
        

Sie werden weiter geleitet...</p>
    </body>
</html>
```

und das ist die dazugehörige bean:

```
package bohnen;
import java.sql.*;

public class Login {
    
 private String username = "";
 private String password = "";

 public Login() {
 }

 public void setUsername(String username) {
    this.username = username;
 }

 public void setPassword(String password) {
    this.password = password;
 }


  public boolean authenticate(String username2,String password2) {
  String query="select * from registration;";
  String users_Alias="";
  String users_Password="";
  
  try {
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  Connection
  con=DriverManager.getConnection("jdbc:mysql://_______");
  Statement stat=con.createStatement();
  ResultSet rst=stat.executeQuery(query);
  while(rst.next())

  {
  users_Alias=rst.getString("UserName");

  users_Password=rst.getString("password");

   if (username2.equals(users_Alias) &&
       password2.equals(users_Password)) {

   break;
   }


   }
 return true;
 }
  
  catch(Exception e){

 e.printStackTrace();
 return false;
 }
}

}
```


----------



## diggaa1984 (7. Dez 2008)

ich hab nu zwar nich soviel ahnung davon, was sich aber in bälde aendern muss  .. aber idHandler.authenticate() is schonmal nich konform mit der deklaration der methode in deiner bean. Das is auf jedenfall ein Anlaufpunkt und dann sollte das vielleicht auch klappen


----------



## L (9. Dez 2008)

Methode authenticate ohne Parameter, dafür die Klassenvariablen(username, password) benutzen, fertig, .. ala:


```
public boolean authenticate() {
  String query="select * from registration;";
  String users_Alias="";
  String users_Password="";
 
  try {
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  Connection
  con=DriverManager.getConnection("jdbc:mysql://_______");
  Statement stat=con.createStatement();
  ResultSet rst=stat.executeQuery(query);
  while(rst.next())

  {
  users_Alias=rst.getString("UserName");

  users_Password=rst.getString("password");

   if (username.equals(users_Alias) &&
       password.equals(users_Password)) {

   break;
   }


   }
return true;
}
 
  catch(Exception e){

e.printStackTrace();
return false;
}
```


----------

