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