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>