terça-feira, 23 de setembro de 2008

Servlet - HttpServlet Class - doGet & doPost

Sobrescrevendo os métodos herdados de “HttpServlet”

Baseado no que demonstramos no artigo anterior, “Java para Web no Netbeans 6 – Servlet, JSP & CSS”, quando me referi a superclasse “HttpServlet” sobre os métodos “doXXX”, neste artigo vou sobrescrever (override) os métodos “doGet” e “doPost” do Servlet que criamos anteriormente para testarmos a resposta de cada um deles mediante ao tipo de requisição cliente, quanto aos métodos http POST e GET. Lembre-se, estou contando com a mesma aplicação desenvolvida no artigo anterior. Neste artigo vou apenas sobrescrever os métodos citados a cima da classe “ZnLandjha”.





Código do método “doPost” de “ZnLandjha” sobrescrito:
   @Override
   protected void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
      
       String znBla = request.getParameter("znBla");
       if (znBla.equals("TestePost")){
         response.setContentType("text/html;charset=UTF-8");
         PrintWriter out = response.getWriter(); 
         try {
           out.println("<html>");
           out.println("<head>");
           out.println("<title>Servlet ZnLandjha - Método doPost Repondendo requisição Post </title>");
           out.println("<link href=ZnCss/ZnCSSlandjah.css rel=stylesheet type=text/css>");
           out.println("</head>");
           out.println("<body>");
           out.println("<div>Servlet ZnLandjha at Método doPost Repondendo requisição Post " +
                   "<br> Para tesar o método doGet Clik no botão ZN Abaixo." +
                   "</div> <br>");
           out.println("<form name='formZnGet' method='GET'>");
           out.println("<input type='submit' value='Ok Zn Get!' name='btnEnviarGet' /> <br>");
           out.println("<input type='text' name='znBla' value=" + znBla + " size='32' />");
           out.println("   </form>");
           out.println("</body>");
           out.println("</html>");
          
         } finally {
           out.close();
         }
         }
       else{
       processRequest(request, response);
         }
   }


Na linha 5: Recebendo do “Form” postado (do lado cliente) o valor do objeto “input” cujo nome é "znBla".

Na linha 6: O "if" testa se vamos processar o que foi programado no artigo anterior, ou se o processamento desejado é verificar a ação do método “doPost”. Ou seja, se no browser for digitado “TestePost”, você estará testando o método “doPost”.

Na Linha 19: Define a tag “Form” , da pagina que será montada em resposta ao processamento do método “doPost”, como: Name = “formZnGet” e method = “GET'”.

Na Linha 20: Definimos o botão que irá submeter a página que testa o método “doGet”. Para processar o teste, basta digitar “TesteGet” na caixa de texto.

Código do método “doGet” de “ZnLandjha” sobrescrito:
    @Override
   protected void doGet(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {
       String znBla = request.getParameter("znBla");
       if (znBla.equals("TesteGet")){
         response.setContentType("text/html;charset=UTF-8");
         PrintWriter out = response.getWriter(); 
         try {
           out.println("<html>");
           out.println("<head>");
           out.println("<title>Servlet ZnLandjha - Método doGet Repondendo requisição GET </title>");
           out.println("<link href=ZnCss/ZnCSSlandjah.css rel=stylesheet type=text/css>");
           out.println("</head>");
           out.println("<body>");
           out.println("<div>Servlet ZnLandjha at Método doGet Repondendo requisição GET " +
                   "<br> Para tesar o método doPost Clik no botão ZN Abaixo." +
                   "</div> <br>");
           out.println("<form name=formZnPost method=POST>");
           out.println("<input type='submit' value='Ok Zn Post!' name='btnEnviarPost' /> <br>");
           out.println("<input type='text' name='znBla' value=" + znBla + " size='32' />");
           out.println("   </form>");
           out.println("</body>");
           out.println("</html>");
          
         } finally {
           out.close();
       }
     }
       else{
       processRequest(request, response);}
   }


Na linha 4: Recebendo do “Form” postado (do lado cliente) o valor do objeto “input” cujo nome é "znBla".

Na linha 5: O "if" testa se vamos processar o que foi programado no artigo anterior, ou se o processamento desejado é verificar a ação do método “doXXX”. Ou seja, se no browser for digitado “TesteGet”, você estará testando o método “doGet”. Só que para isso funcionar precisamos primeiro testar o “doPost”. Isso porque a primeira requisição vira da página “Index.jsp” e nela definimos que o método http, do “form1” é “POST”.

Execute (F6) e teste ...





OBS: "@Override" indica pro compilador que o método esta sobrescrito ...

Nenhum comentário:

Postar um comentário

 
BlogBlogs.Com.Br