Salve sto tentando di realizzare questa piccola applicazione web:
1) Creare un menu che tramite iperlink permette la navigazione su due pagine jsp:
Inserisci Cantante
Modifica Cantante
3) la pagina esitoModifica.jsp consente di visualizzare semplicemente: “Sito in costruzione”
4) La pagina insCantante.jsp “chiama la ServletController e quest’ultima stampa i dati tramite
la pagina jsp “esitoInserimento”.
In ques’ultima vengono visualizzati i dati del cantante inseriti e un messaggio: “dati inseriti correttamente”.
In verità, quando inserisco i dati di un cantante nel form ed invio, esce sulla pagina web l'errore:
HTTP Status 500 - Internal Server Error.
Questo è il codice del form per l'inserimento del cantante:
[CODE]:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Inserimento cantante</title>
</head>
<body>
<center>
<h1>Inserimento cantante</h1>
<p>
<form name="inserimento" method="get" action="./ServletController?azione=3">
<p>Inserire il nome del cantante: <input type="text" name="nome" size="30">
<p>Inserire il cognome del cantante: <input type="text" name="cognome" size="30">
<p> Cliccare sul tasto INVIA per trasmettere i dati, oppure sul tasto RESET per anullare i valori dei campi
<p><input type="submit" value="invia" name="botton1">
<input type="reset" value="cancella" name="botton2">
</form>
</center>
</body>
</html>
Questo invece e il codice della servlet:
[CODE]:
package pkg1;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.RequestDispatcher;
/**
* Servlet implementation class ServletController
*/
@WebServlet("/ServletController")
public class ServletController extends HttpServlet {
private static final long serialVersionUID = 1L;
final int INSERIMENTO = 1;
final int MODIFICA= 2;
final int ESITO_INSERIMENTO=3;
/**
* @see HttpServlet#HttpServlet()
*/
public ServletController() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher rd;
String action = request.getParameter("azione");
int azione = Integer.valueOf(action).intValue();
if(azione==INSERIMENTO)
{
rd=request.getRequestDispatcher("insCantante.jsp");
rd.forward(request, response);
}
else if(azione==MODIFICA)
{
rd=request.getRequestDispatcher("esitoModifica.jsp");
rd.forward(request, response);
}
else if(azione==ESITO_INSERIMENTO)
{
String nomeCantante=request.getParameter("nome");
request.setAttribute("nome", nomeCantante);
String cognomeCantante=request.getParameter("cognome");
request.setAttribute("cognome", cognomeCantante);
rd=request.getRequestDispatcher("esitoInserimento.jsp");
rd.forward(request, response);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
E questo è il codice della pagina jsp esitoInserimento:
[CODE]:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Esito inserimento.</title>
</head>
<body>
<center>
<% String nomeCantante=(String)request.getAttribute("nome");%>
<%String cognomeCantante=(String)request.getAttribute("cognome");%>
<h1>Dati inseriti correttamente:</h1>
<h2><%System.out.println(nomeCantante+" "+cognomeCantante); %></h2>
</center>
</body>
</html>
Non ho capito dove ho sbagliato.