estou estudando apostila JavaWeb da Caelum e possuo algumas duvidas.
Pelo que entendi:
Criei uma ServletControladora que é a classe: ControllerServlet
OBS: Não entendi bem essa interface Logica e uma Classe que implementa Logica. Alguém poderia me ajudar nisso?
package br.com.triadworks.todoList.mvc.servlet;
import java.io.IOException;
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 br.com.triadworks.todoList.logica.Logica;
@WebServlet("/mvc")
public class ControllerServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String parametro = request.getParameter("logica");
String nomeDaClasse = "br.com.triadworks.todoList.logica." + parametro;
try {
Class classe = Class.forName(nomeDaClasse);
Logica logica = (Logica) classe.newInstance();
String pagina = logica.executa(request, response);
request.getRequestDispatcher(pagina).forward(request, response);
} catch (Exception e) {
throw new ServletException("A lógica causou uma exceção!", e);
}
}
}
package br.com.triadworks.todoList.logica;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public interface Logica {
String executa(HttpServletRequest request, HttpServletResponse response) throws Exception;
}
package br.com.triadworks.todoList.logica;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.triadworks.todoList.dao.TarefaDAO;
import br.com.triadworks.todoList.model.Tarefa;
public class AdicionaAlteraTarefaLogic implements Logica {
@Override
public String executa(HttpServletRequest request, HttpServletResponse response) {
Integer id = Integer.parseInt(request.getParameter("id"));
String data = request.getParameter("data");
String descricao = request.getParameter("descricao");
Calendar dataTarefa = Calendar.getInstance();
try {
Date dataconvertida = new SimpleDateFormat("dd/MM/yyyy").parse(data);
dataTarefa.setTime(dataconvertida);
Tarefa tarefa = new Tarefa();
tarefa.setDescricao(descricao);
tarefa.setData(dataTarefa);
TarefaDAO dao = new TarefaDAO();
if (id != null) {
tarefa.setId(id);
dao.atualizaTarefa(tarefa);
}else{
dao.atualizaTarefa(tarefa);
}
} catch (ParseException | SQLException e) {
e.printStackTrace();
}
return "mvc?logica=ListarTarefaLogic";
}
}