Pessoal to fazendo um programa de cadastramento que puxa métodos de uma classe interface, mas simplesmente nao aparece nada!
Abaixo estão os códigos:
A interface
package MVC;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public interface Logica {
void executa(HttpServletRequest req,HttpServletResponse res)
throws Exception;
}
A página JSP
<!DOCTYPE html>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@taglib tagdir="/WEB-INF/tags" prefix="tag" %>
<html lang="es">
<head>
<title>Adicionar Contatos</title>
<link type="text/css" href="css/jquery.css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery-ui.js"></script>
<%-- jquery --%>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
</head>
<%-- resto do codigo! --%>
<body>
<c:import url="cabecalho.jsp" />
<h2 align="center">Faça o seu cadastro!</h2>
<form action="mvc" method="POST">
<p align="center">
Nome:
<input type="text" name="nome" />
</p>
<p align="center">
E-mail:
<input type="text" name="email" />
</p>
<p align="center">
Endereço:
<input type="text" name="endereco" />
</p>
<p align="center">
Data de nascimento:
<tag:campoData id="data_n" />
</p>
<p align="center">
<input type="hidden" name="logica" value="AlteraContatoLogica"/>
<input type="submit" value="Gravar" />
</p>
</form>
<form action="Lista-Contatos-Elegante.jsp">
<p align="center">
<input type="submit" value="Listar" />
</p>
</form>
<c:import url="rodape.jsp" />
</body>
</html>
A Servlet
package MVC;
import Agenda.Contato;
import Agenda.ContatoDAO;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AdicionaContatoLogica implements Logica {
public void executa(HttpServletRequest req, HttpServletResponse res) throws Exception {
String nome = req.getParameter("nome");
String endereco = req.getParameter("endereco");
String email = req.getParameter("email");
String data = req.getParameter("data_n");
Calendar dataNascimento = null;
//fazendo a conversão da data
Date date;
try{
date = new SimpleDateFormat("dd/MM/yyyy").parse(data);
dataNascimento = Calendar.getInstance();
dataNascimento.setTime(date);
}catch(ParseException e){
return;
}
//montando o objeto
Contato contato = new Contato();
contato.setNome(nome);
contato.setEmail(email);
contato.setEndereco(endereco);
contato.setDataNascimento(dataNascimento);
ContatoDAO dao = new ContatoDAO();
dao.adiciona(contato);
RequestDispatcher dispatcher = req
.getRequestDispatcher("Contato-Adicionado.jsp");
dispatcher.forward(req, res);
}
}
E, finalmente, o ‘controlador’
package MVC;
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;
@WebServlet(name = "SistemaTodo", urlPatterns = {"/SistemaTodo"})
public class SistemaTodo extends HttpServlet {
/**
*
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String parametro;
parametro = request.getParameter("logica");
String nomeDaClasse = "MVC." + parametro;
try{
Class classe = Class.forName(nomeDaClasse);
Logica logica = (Logica) classe.newInstance();
logica.executa(request, response);
}catch(Exception e){
throw new ServletException("erro!");
}
}
}
O erro:
Advertência: StandardWrapperValve[controlador]: PWC1406: Servlet.service() for servlet controlador threw exception
javax.servlet.ServletException: erro!
at MVC.SistemaTodo.service(SistemaTodo.java:36)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:722)
obrigada desde já! 