Laboratorio di sistemi
Autenticazione utente mediante scriplet
Jsp [NetBeans]
Figura 1 - La pagina input_user.jsp appena caricata
Figura 2 - Lascio vuoti entrambi i campi o immetto un solo valore
Figura 3 - Immetto dei valori che non esistono nel database
autent_utente_scriplet.pdf
Pag. 1/8
Cozzetto ©
Laboratorio di sistemi
Autenticazione utente mediante scriplet
Jsp [NetBeans]
Figura 4 – Viene segnalato l’errore e riproposto il form di login
Figura 5 - Immetto le credenziali giuste
Figura 6 - I dati contenuti nella tabella users_tbl del database film_db di esempio (per comodità le
password sono in chiaro)
autent_utente_scriplet.pdf
Pag. 2/8
Cozzetto ©
Laboratorio di sistemi
Autenticazione utente mediante scriplet
Jsp [NetBeans]
Figura 7 – Ora ho finalmente accesso alla pagina protetta
Figura 8 - Effettuo il logout (viene attivata una nuova sessione utente)
autent_utente_scriplet.pdf
Pag. 3/8
Cozzetto ©
Laboratorio di sistemi
Autenticazione utente mediante scriplet
Jsp [NetBeans]
input_user.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Introduci username e password</title>
<style type="text/css">
<!-body,td,th {
font-family: Trebuchet MS;
font-size: 10pt;
}
.red {
color:red;
}
-->
</style>
</head>
<body>
<h2>Login utente</h2>
<%
out.println("Session ID: "+session.getId()+"<br/>");
String isUserLoggedIn="false";
isUserLoggedIn = (String) session.getAttribute("isUserLoggedIn");
// Se l'utente è si è già loggato, lo ridirico alla pagina protetta
if (isUserLoggedIn!=null && isUserLoggedIn.equals("true")) {
response.sendRedirect("pag_protetta.jsp");
return;
}
%>
<form name="frm_verifica_utente" action="verifica_utente.jsp" method="POST">
Username: <input type="text" name="username" value="" /><br/>
Password: <input type="password" name="password" value="" /><br/>
<input type="submit" value="Submit" name="btn_submit" />
</form>
<%
if (request.getParameter("message")!=null) {
String message=request.getParameter("message");
out.println("<span class='red'>"+message+"</span>");
}
%>
</body>
</html>
autent_utente_scriplet.pdf
Pag. 4/8
Cozzetto ©
Laboratorio di sistemi
Autenticazione utente mediante scriplet
Jsp [NetBeans]
pag_protetta.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Pagina protetta</title>
<style type="text/css">
<!-body,td,th {
font-family: Trebuchet MS;
font-size: 10pt;
}
-->
</style>
</head>
<body>
<h2>Pagina protetta</h2>
<%
out.println("Session ID: "+session.getId()+"<br/>");
String isUserLoggedIn="false";
isUserLoggedIn = (String) session.getAttribute("isUserLoggedIn");
if (isUserLoggedIn!=null && isUserLoggedIn.equals("true")) {
String anagrafica = (String) session.getAttribute("anagrafica");
out.println("Utente: "+anagrafica+"<br/>");
out.println("Qui vanno i contenuti protetti.<br/><br/>");
out.println("<img src='img/nikki_1.jpg' alt='nikki'/><br/>");
out.println("<br/><a href='logout.jsp'>Logout</a>");
} else {
response.sendRedirect("input_user.jsp?message=Utente non verificato. Area protetta. E'
necessario il login utente.");
}
%>
</body>
</html>
autent_utente_scriplet.pdf
Pag. 5/8
Cozzetto ©
Laboratorio di sistemi
Autenticazione utente mediante scriplet
Jsp [NetBeans]
logout.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Logout Page</title>
<style type="text/css">
<!-body,td,th {
font-family: Trebuchet MS;
font-size: 10pt;
}
-->
</style>
</head>
<body>
<h2>Logout Page</h2>
<%
String isUserLoggedIn="false";
isUserLoggedIn = (String) session.getAttribute("isUserLoggedIn");
if (isUserLoggedIn!=null && isUserLoggedIn.equals("true")) {
String anagrafica = (String) session.getAttribute("anagrafica");
session.invalidate();
response.sendRedirect("input_user.jsp?message=Grazie "+anagrafica+" di aver usato
l'applicativo. E' necessario un nuovo login.");
} else {
response.sendRedirect("input_user.jsp?message=Devi effettuare il login.");
}
%>
</body>
</html>
autent_utente_scriplet.pdf
Pag. 6/8
Cozzetto ©
Laboratorio di sistemi
Autenticazione utente mediante scriplet
Jsp [NetBeans]
/*
* Utente.java
*
* Created on 25 giugno 2006, 8.43
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package webapplicationtest;
import java.sql.*;
/**
*
* @author admin
*/
public class Utente implements java.io.Serializable {
private String username;
private String password;
private String anagrafica;
/** Creates a new instance of Utente */
public Utente() {
}
public void setUsername(String username) {
this.username=username;
}
public void setPassword(String password) {
this.password=password;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public String getAnagrafica() {
return anagrafica;
}
public void setAnagrafica(String anagrafica) {
this.anagrafica=anagrafica;
}
public boolean autentUser(String username, String password) throws ClassNotFoundException,
SQLException, Exception {
Connection conn = null;
Statement st = null;
ResultSet rs=null;
autent_utente_scriplet.pdf
Pag. 7/8
Cozzetto ©
Laboratorio di sistemi
Autenticazione utente mediante scriplet
Jsp [NetBeans]
try {
Class.forName("org.gjt.mm.mysql.Driver");
//Class.forName("com.mysql.jdbc.Driver").newInstance(); altro Driver
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/film_db?user=root&password="
);
} catch (ClassNotFoundException e1) {
throw new ClassNotFoundException("Problemi nel caricamento dei driver.");
}
try {
String sql="SELECT * FROM users_tbl WHERE username='"+username+"' AND
password='"+password+"'";
st=conn.createStatement();
rs = st.executeQuery(sql);
if (!rs.next()) {
// record non trovato
rs.close();
st.close();
conn.close();
return false;
} else {
// record individuato
this.username=rs.getString("username");
this.password=rs.getString("password");
this.anagrafica=rs.getString("anagrafica");
rs.close();
st.close();
conn.close();
return true;
} // end if
} catch (SQLException e2) {
throw new SQLException("Impossibile eseguire la query o chiudere la connessione.");
} // fine try/catch
} // fine metodo autentUser
} // fine classe
autent_utente_scriplet.pdf
Pag. 8/8
Cozzetto ©
Scarica

Codice - MaurizioCozzetto.it