Servlet

6 respostas
hvivox

Estou desenvolvendo um projeto web gostaria de saber como faço para ligar a minha as minhas telas .jsp com as servlets
além disso gostaria de saber onde entra a servlet padrao nessa historia!!!

6 Respostas

P

hvivox:
Estou desenvolvendo um projeto web gostaria de saber como faço para ligar a minha as minhas telas .jsp com as servlets
além disso gostaria de saber onde entra a servlet padrao nessa historia!!!

ligar seus jsp ao servlets ? os servlets sao “acionados” (chamados) qnd algum jsp seu faz algum tipo de requisicao para ele…essa tal ligacao q vc esta falando ai seria “aonde eu configura para o meu jsp chamar meu servlet?” - se for, vc “configurar” (o certo é mapear :wink: ) dentro do seu arquivo de mapeamento (xml) dos seus servlets…

servlet padrao? nao entendi

hvivox

la vai um modelo de servlet padrao pra todo o Brasil ver:

package pos.projeto.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Method;
import java.util.Enumeration;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class ServletPadrao extends HttpServlet {
    private static final String CONTENT_TYPE = "text/html; charset=windows-1252";
    public static final String ACAO_SERVLET = "ACAO_SERVLET";
    
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
    }

    public void doGet(HttpServletRequest request,
                      HttpServletResponse response) throws ServletException,
                                                                                                 IOException {
        this.processarRequisicao(request, response);
    }

    public void doPost(HttpServletRequest request,
                       HttpServletResponse response) throws ServletException,
                                                                                        IOException {
        this.processarRequisicao(request, response);
    }

    public void doPut(HttpServletRequest request,
                      HttpServletResponse response) throws ServletException,
                                                                                       IOException {
        this.processarRequisicao(request, response);
    
    }

    public void doDelete(HttpServletRequest request,
                         HttpServletResponse response) throws ServletException,
                                                                                              IOException {
        this.processarRequisicao(request, response);
    }
    
    protected void processarRequisicao(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
        Method method = null;        
        
        Method[] declaredMethods = this.getClass().getMethods();
        Method declaredMethod = null;
        String name = request.getParameter(this.ACAO_SERVLET);
        
        Enumeration enun = request.getParameterNames();
        while(enun.hasMoreElements()){
            System.out.println(enun.nextElement());
        }
        
        
        if (name == null){
            this.redirectErrorPage(request,response, "A ação não foi encontrada na requisição!");            
            return;
        }
       
        Object[] args = new Object[2];

        for (int i = 0; i < declaredMethods.length; i++) {
            declaredMethod = declaredMethods[i];
            
            if (name.equals(declaredMethod.getName())) {
                method = declaredMethod;
                break;
            }
        }
        
        if (method == null){
            this.redirectErrorPage(request,response, "A ação "+ name + " não foi encontrada no controlador de requisição");            
            return;
        }
        
        args[0] = request;
        args[1] = response;

        try {
            method.invoke(this, args);
        } catch (Exception e) {
        	e.printStackTrace();
            this.redirectErrorPage(request,response, "Ocorreu um erro de aplicação no redirecionamento para a regra de negócio ");
            return;
        } 
    }
    
    protected void redirectErrorPage(HttpServletRequest request,HttpServletResponse response, String messageError) throws IOException {
        response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head><title>Erro de Aplicação</title></head>");
        out.println("<body>");
        out.println("<p>Ocorreu um erro grave durante a execuçao da requisiçao.</p>");
        out.println("<p><b>Erro:</b>" + messageError + "</p>");
        out.println("</body></html>");
        out.close();        
    }
}
hvivox

A servlet padrao server como um controle de exeção

hvivox

me ajudem!!!

ddduran

primeiro:
com o que você quer ajuda?

segundo:
no lugar de ficar sobre escrevendo todos esses metodos doSeiLaOque por que você não usa o service?

terceiro:
por que ao inves da ação do seu servlet ser um paramenter não é algo na url como “http://meuhost:8080/minhapp/cliente.editar”, ai você pega o editar da url

quarto
da uma olhada nesse link http://www.tatanka.com.br/palestras/cj2005-Web+MVC+IoC+Reflection/

quinto:
acho que você podia estudar um pouco de front controller que acho que é o que você quer

TeiTei

O que vc quis dizer com isso?

Criado 4 de dezembro de 2007
Ultima resposta 6 de dez. de 2007
Respostas 6
Participantes 4