Java - JavaServer Pages und JavaBeans

From XennisWiki
Jump to: navigation, search

JavaServer Pages (JSP) is a technology that helps software developers create dynamically generated web pages based on HTML, XML, or other document types. Released in 1999 by Sun Microsystems, JSP is similar to PHP, ASP and React's JSX, but it uses the Java programming language. (Wikipedia)

Vorweg

Binde Apache Tomcat in Eclipse ein. Hilfe dazu findest du auf der Artikelseite. Erstelle anschließend in Eclipse IDE for Java EE Developers ein neues Dynamic Web Project und wähle dabei den entsprechenden Tomcat-Server aus.

Die index.jsp stellt ein Loginformular da, welches die show.jsp aufruft. Auf der Seite wird - bei den richtigen Logindaten - der Benutzer begrüßt.

Programmcode

index.jsp (Datei in Eclipse erstellen: Web > JSP-File)

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>

<!DOCTYPE HTML>

<html>

<head>

	<meta charset="UTF-8">
	<title>Login</title>

</head>

<body>

	<h1>Login</h1>
	<p>Logindaten: Name=Hans, Passwort=42</p>
	<form method="post" action="show.jsp">
		<input type="text" name="name" placeholder="Name" required>
		<input type="password" name="password" placeholder="Password" required>
		<input type="submit" value="Login">
	</form>

</body>

</html>

show.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<jsp:useBean id="mybean" class="bean.Album" scope="page" />
<jsp:setProperty name="mybean" property="*"/>

<!DOCTYPE HTML>

<html>

<head>

	<meta charset="UTF-8">
	<title>Show</title>

</head>

<body>
<% if (mybean.isPasswordValid()) { %>
	<p>Willkommen <%=mybean.getName() %></p>
<% } else { %>
	<p>Login ist fehlgeschalgen, <a href="index.jsp">zurück</a>!</p>
<% } %>

</body>

</html>

Album.java (in dem Packet bean)

package bean;

public class Album {

	/** Benutzername */
	private String name = "";

	/** Password */
	private String password = "";
	
	/**
	 * Setzt den Benutzernamen.
	 * 
	 * @param name Benutzername
	 */
	public void setName(String name) {
		this.name = name;
	}
	
	/**
	 * Gibt den Benutzernamen zurück.
	 * 
	 * @return Benutzername
	 */
	public String getName() {
		return this.name;
	}	
	
	/**
	 * Setzt das Password.
	 * 
	 * @param name Benutzername
	 */
	public void setPassword(String password) {
		this.password = password;
	}
	
	/**
	 * Gibt den Benutzernamen zurück.
	 * 
	 * @return Benutzername
	 */
//	public String getPassword() {
//		return this.password;
//	}	

	/**
	 * Überprüft die Logindaten
	 * 
	 * @return True, wenn Daten korrekt
	 */
	public boolean isPasswordValid() {
		return this.name.equals("Hans") && this.password.equals("42");
	}
}