Java EE: Prima Servlet

Java EE: Prima Servlet – Prosegui il lavoro iniziato con il progetto della scorsa lezione

Dal menu File scegli New e poi Servlet

menu nuova Servlet di Eclipse
menu nuova Servlet di Eclipse

Specifica un nome per la tua Servlet

menu Create Servlet Eclipse
menu Create Servlet Eclipse

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

render di form.jsp
render di form.jsp

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

output della Servlet
output della Servlet

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

Pubblicato da Carlo Contardi

Carlo Contardi, docente di informatica e sviluppatore Full Stack, condivide la sua passione per la programmazione e l’informatica attraverso il suo blog Space Coding. Offre preziosi consigli e soluzioni pratiche a chi vuole imparare a programmare o migliorare le proprie abilità. 🚀👨‍💻

Translate »