Forse non mi sono espresso bene, o forse non riesco a capire data la mia ignoranza sull'argomento. Voglio però farvi un semplice esempio:
Ho un servlet che si collega ad un database per inserire dei dati, e questo dovrebbe far parte della logica di business giusto? Il servlet dopo aver inserito i dati nel database, invia all'utente una semplice pagina html che avvisa l'utente che i suoi dati sono stati salvati e viene poi reindirizzato alla pagina principale index.jsp tramite il tag meta refresh.
codice:
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
public class Insert extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String name = request.getParameter("name");
String message = request.getParameter("message");
String email = request.getParameter("email");
out.print("<html><head><meta http-equiv = \"refresh\" content = \"3; url=index.jsp\"></head><body>");
try
{
Class.forName ("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/mysql", "root", "");
Statement statement = connection.createStatement();
statement.executeUpdate("INSERT INTO guestbook (name, message, email) VALUES ('" + name + "', '" + message + "', '" + email + "')");
out.print("Your message has been saved!");
}
catch (Exception exception)
{
out.print ("Error: " + exception.getMessage());
}
out.print("</body></html>");
}
}
Ora vorrei capire, perchè dovrei utilizzare questo servlet invece di questa jsp che mi consente di risparmiare un bel pò di righe di codice?:
codice:
<%@page import = "java.sql.*"%>
<%
String name = request.getParameter("name");
String message = request.getParameter("message");
String email = request.getParameter("email");
%>
<html>
<head>
<meta http-equiv = "refresh" content = "3; url=index.jsp">
</head>
<body>
<%
try
{
Class.forName ("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/mysql", "root", "");
Statement statement = connection.createStatement();
statement.executeUpdate("INSERT INTO guestbook (name, message, email) VALUES ('" + name + "', '" + message + "', '" + email + "')");
out.print("Your message has been saved!");
}
catch (Exception exception)
{
out.print ("Error: " + exception.getMessage());
}
%>
</body>
</html>