jsp

Mattepuffo's logo
Creare pannelli in Javascript con jsPanel

Creare pannelli in Javascript con jsPanel

Ho trovato un plugin per jQuery che permette di creare pannelli dentro una pagina web in maniera veramente easy: jsPanel!

Se guardate gli esempi e la documentazione, potete notare che le possibilità sono veramente tante.

C'è anche l'integrazione con la prossima versione di Bootstrap, ed è possibile creare pannelli espandibili, finestre modali, toolbar, menu contestuali, ecc.

Insomma tanta roba.

Mattepuffo's logo
Usare i template in Java Server Faces

Usare i template in Java Server Faces

Chi ha programmato almeno una volta in Asp.NET, conosce già il concetto di Master Page; una pagina HTML che funziona da template, nella quale alcuni parti sono dinamiche e altre fisse.

Di base le JSP non prevedono una cosa del genere, a parte il meccanismo degli include (come PHP).

Però se usiamo un framework, e nello specifico JSF, abbiamo la possiblità di usare i template.

Vediamo un semplice esempio; una volta creato il progetto (Netbeans ci permette di includere da subito le librerie che ci servono) create una pagina che chiamiamo template.xhtml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"   
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:head>
        <h:outputStylesheet name="style.css" library="css" />
    </h:head>
    <h:body>
        <div id="page">
            <div id="header">
                <ui:insert name="header" ></ui:insert>
            </div>
            <div id="content">
                <ui:insert name="content"></ui:insert>
            </div>
            <div id="footer">
                <ui:insert name="footer"></ui:insert>
            </div>
        </div>
    </h:body>
</html>

Come vedete è una semplice pagina con alcuni tag specifici.

Mattepuffo's logo
Usare Hibernate in una applicazione web

Usare Hibernate in una applicazione web

E' da un pò che voglio scrivere questo articolo, ma tra una cosa e l'altra non ci sono mai riuscito.

Lo trovo un pò complicato, visto anche il numero di passaggi e il tempo che è passato.

Quindi ho deciso che, una volta tanto, non lo scriverò io, ma vi rimanderò al link che ho usato.

Non è nel mio stile lo sapete, ma stavolta ho seguito il concetto "perchè reinventare sempre la ruota?".

Mattepuffo's logo
Gestire le sessioni con le Servlet

Gestire le sessioni con le Servlet

Gestire le sessioni con le Servlet è abbastanza semplice.

Prendiamo uno scenario del genere:

-form di login

-se l'utente esiste viene creato un oggetto User

-l'oggetto viene passato alla Servlet che crea una sessione

Quindi partendo da un form del genere:

<table>
<form action="ServletLogin" method="post">
<tbody>
<tr>
<td>User:</td>
<td><input type="text" id="focus" name="username" value="" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" value="" /></td>
</tr>
<tr>
<td><input type="submit" value="Submit" name="submit" /></td>
</tr>
</form>
</table>

Questo form richiama la ServletLogin in POST:

public class ServletLogin extends HttpServlet {

private DBManager db = DBManager.getInstance(); // CLASSE PER LA CONNESSIONE

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
boolean success = false;
HttpSession session = request.getSession(true);
if (session.getAttribute("user") == null) {
try {
User user = db.login(request.getParameter("username").trim(), request.getParameter("password").trim());
String userCreato = user.getName().toString();
int userCreatoId = user.getId();
session.setAttribute("user_id", userCreatoId);
session.setAttribute("user_name", userCreato);
success = true;
if (success) {
response.sendRedirect("index.jsp");
} else {
response.sendRedirect("error.jsp?err=Atenticazione fallita");
}
} catch (ClassNotFoundException ex) {
response.sendRedirect("error.jsp?err=" + ex.getMessage());
} catch (SQLException ex) {
response.sendRedirect("error.jsp?err=" + ex.getMessage());
} catch (NoSuchAlgorithmException ex) {
response.sendRedirect("error.jsp?err=" + ex.getMessage());
}
}
}

}

Istanzia un oggetto HttpSession con il quale prendiamo la sessione corrente.

Mattepuffo's logo
Da esadecimale a String in Java

Da esadecimale a String in Java

Dopo un week-end di pausa riprendiamo con un argomento molto in voga: la conversione da valori esadecimali a String.

Nel mio caso mi è servito per il login in una wb application in JSP e Servlet.

Nel db sia utente e password sono cripati in SHA1.

Partiamo da questo metodo:

public User login(String name, String pwd) throws ClassNotFoundException, SQLException, NoSuchAlgorithmException, UnsupportedEncodingException {
  User user = new User();
  conn = DBManager.getInstance().takeConnection();
  MessageDigest md = MessageDigest.getInstance("SHA1");
  byte[] encodeName = md.digest(name.getBytes("UTF-8"));
  byte[] encodePwd = md.digest(pwd.getBytes("UTF-8"));
  String convName = ConvertHexToString.convert(encodeName);
  String convPwd = ConvertHexToString.convert(encodePwd);
  PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM user WHERE user_name = ? AND user_pass = ?");
  pstmt.setString(1, convName);
  pstmt.setString(2, convPwd);
  ResultSet rs = pstmt.executeQuery();
  if (rs.next()) {
   user.setId(rs.getInt("user_id"));
   user.setName(name);
   user.setPwd(pwd);
   rs.close();
   pstmt.close();
  } else {
   user.setId(0);
   user.setName("");
   user.setPwd("");
   rs.close();
   pstmt.close();
  }
  return user;
}

Al metodo passo due String.