isaquebressy

November 4, 2015

[Aprendendo Java EE] Servlets

As Servlets são pequenos servidores que são responsáveis por servir algum conteúdo (página) para o cliente. Estas servlets recebem uma requisição (request), processam e retornam uma resposta (response).

Uma servlet é implementada como uma classe que estende de HttpServlet (javax.servlet.http) e é acessada através de um dos seus métodos do* ou através do método service. Os métodos do* são: doGet, doPost, doPut, doDelete, doHead, doOptions e doTrace, e são acessados apenas através dos seus equivalentes métodos HTTP: GET, POST, PUT, DELETE, HEAD, OPTIONS e TRACE. Já o método service, por sua vez, é acessado por qualquer um desses. Todos esses métodos recebem como parâmetro a requisição HttpServletRequest (javax.servlet.http) e a resposta HttpServletResponse (javax.servlet.http).

Os métodos de acesso mais comumente utilizados são o doGet e o doPost. Devemos portanto sobrescrever ao menos um deles para podermos acessar o conteúdo.

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
}

Escrevendo o resultado

Um dos modos de retornar o resultado do processamento da página para o client é através da utilização do PrintWriter (java.io), através do método de. O PrinterWriter é obtido através do método getWriter do HttpServletResponse.

PrintWriter writer = response.getWriter();
        writer.println("<html><body></body></html>);

Acessando a servlet

Para acessar uma servlet, podemos fazer isto de 2 maneiras: mapeando-a no web.xml ou anotando-a na classe.

  1. Mapeando em web.xml: 
Primeiramente, define-se a servlet com o seu nome e sua classe, usando a tag <servlet>
. Depois, mapeia-se o padrão da url utilizando o nome definido anteriormente.
    <servlet><servlet-name>servletName</servlet-name><servlet-class>br.com.package.ServletClass</servlet-class></servlet>   
    

   <servlet-mapping><servlet-name>servletName</servlet-name><url-pattern>/url</url-pattern></servlet-mapping>
  2. Através da anotação na classe: 
Usa-se a anotação @WebServlet (javax.servlet.annotation) para informar que a classe é uma servlet. O padrão da url é definido utilizando-se o parâmetro urlPatterns.


    @WebServlet(urlPatterns = "/url")public class ServletClass extends HttpServlet {
    

Pegando um parâmetro da requisição

Os parâmetros da requisição são enviados como String e podem ser acessados no servidor através do método getParameter do HttpServletRequest.

String parametro = req.getParameter("parametro");


Category: java learning

Tags: java language programming


# Back