Java EE: Prima Servlet – Prosegui il lavoro iniziato con il progetto della scorsa lezione
Dal menu File scegli New e poi Servlet
Specifica un nome per la tua Servlet
ora predisponiamo un form per inviare i dati alla Servlet che completeremo in seguito quindi crea una nuova jsp con il nome form.jsp ed all’interno aggiungi i tag HTML relativi al form
<%@ page language="java" contentType="text/html; charset=UTF-8"
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>Simple Form</title>
</head>
<body>
<form method="POST" action="/TestEnv/FirstServlet">
<input type="text" name="username" placeholder="Nome utente"/>
<input type="submit"/>
</form>
</body>
</html>
Nota che nell’esempio iniziato nella lezione precedente il nome del progetto è TestEnv, se il tuo è diverso modifica opportunamente il percorso dell’attributo action del tag form
Nella servlet scriveremo il seguente codice nel metodo doPost
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//doGet(request, response);
String username=request.getParameter("username");
System.out.println("Ecco il nome: "+username);
PrintWriter out=response.getWriter();
out.println("<html><body>Parametro POST: "+username+"</body></html");
}
Ora avvia il server da form.jsp (click sul pulsante destro del mouse e scegliamo Run on Server…) e otterrai il seguente risultato
Premendo il pulsante Invia, il parametro inserito nel form verrà inviato alla Servlet che attraverso il metodo doPost potrà utilizzare il dato. Nel nostro caso lo stampiamo su console application e poi restituiamo del contenuto html in cui stampiamo il nostro parametro
Nelle prossime lezioni impareremo le operazione CRUD con MySQL, per adesso possiamo comunque salvare i nostri dati in un file di testo e permettere all’utente di scaricarlo.
Per fare questo aggiungi il seguente codice nel menu doPost
response.setContentType("text/plain");
response.setHeader("Content-Disposition", "attachment; filename=\"username.txt\"");
try {
OutputStream outputStream = response.getOutputStream();
String outputResult = "Username with HTML";
outputStream.write(outputResult.getBytes());
outputStream.flush();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
Otterrai un file di testo con tutto quello che hai decido di scrivere nel metodo println dell’oggetto out, nel mio caso:
<html><body>Parametro POST: Gaman</body></html
La mia repository GitHub dove trovi il codice delle lezioni su Java EE
L’immagine in copertina è di Steven Lilley