# Java EE Servlet login Problem



## Danio (25. Feb 2014)

Hallo liebe Community,

Ich habe folgendes Problem:

Ich habe ein altes Projekt als Vorlage benutzt wo eine login Klasse zum allgemeinen Testen ohne Datenbank wo der Benutzername "admin" und das Password "nimda" war zum testen ob er auf die folgende JSP umspringt. Jetzt habe ich das Projekt erweitert mit einer Datenbankklasse zur Login abfrage. Jetzt aber jedoch, führt das Servlet den Methodenaufruf nicht aus, wenn ich normale login Daten eingebe. Wenn ich jedoch wie vorher "admin" und "nimda" eingebe, führt er das ganze aus und springt auf die Folgeseite um obwohl ich die klassen zum testen komplett rausgenommen habe, ich den Tomcat server neugestartet, gelöscht und neu aufgesetzt habe.


Ich benutze Mysql 5.1, Tomcat 7.0 und Java EE auf Eclipse.

Hier mein Programmcode:

Nehmt mir meinen Programmcode nicht übel, anfänger und so 

Login:
[Java]
public User loginvalid(String username, int password) {
		//Der Printwriter ist für die response vom Servlet.
		User result = null;

		try{
			Connection conn = openConnection();
			String query = "SELECT * FROM users WHERE kontonummer.sepa = ? AND kontonummer.pin = ?";
			PreparedStatement pstmt = conn.prepareStatement(query);
			pstmt.setString(1, username);
			pstmt.setInt(3, password);
			ResultSet rs = pstmt.executeQuery();

			if(rs.next()){
				result = mapRow(rs);
			}else{
			}
			pstmt.close();
		}catch(SQLException sqle){
			logger.error("SQL-Exception occured", sqle);
		}

		return result;
		}
	private User mapRow(ResultSet rs) throws SQLException {
		User result = new User() ;

		result.setId(rs.getInt("id"));
		result.setVorname(rs.getString("vorname"));
		result.setNachname(rs.getString("nachname"));
		result.setGeschlecht(rs.getString("geschlecht"));
		result.setAdresse(rs.getString("adresse"));
		result.setTelefonnummer(rs.getInt("telefonnummer"));
		result.setGeburtstag(rs.getDate("geburtstag"));
		return result;
	}
[/code]
LoginServlet

```
package web;

import java.io.IOException;


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

import dao.user.UserDAO;
import dao.user.UserDAOFactory;

public class Login extends HttpServlet {
			
	UserDAO user = UserDAOFactory.getInstance();
	
	protected void doGET(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{
		String kontonr = req.getParameter("kontonr");
		int pin = Integer.parseInt(req.getParameter("pin"));
		user.loginvalid(kontonr, pin);
	}
}
```

Login.jsp

```
<%@ page language="java" contentType="text/html; charset=ISO-8859-1 "
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Banksystem</title>
</head>
<body>
<div class="Top">
<h3>Willkommen zu unserem Banksystem</h3>
</div>
<div class="Content">
<form action="login" method="post">
KontoNR: <input type="text" name="kontonr"/><br>
PIN: <input type="password" name="pin"/><br>
<input type="submit" value="Login">
</div>
</form>
</body>
</html>
```
web.xml

```
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>Bank2</display-name>
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>

  
</web-app>
```


Mit freundlichen Grüßen


----------



## Barista (27. Feb 2014)

Ich habe Tomcat schon lange nicht mehr benutzt,
früher gab es da ein app-Verzeichnis, darunter lagen die Apps, Verzeichnisname == Beginn der URL (ausser Protkoll/IP-Adresse/Port).

Dort würde ich mal nachsehen.

Du musst dafür sorgen, dass Deine kompilierten class-Dateien in diesen Ordner geschrieben werden.

In Eclipse kannst Du einfach den Ziel-Ordner für die Class-Dateien dorthin legen.


----------

