Um servlet é um componente web que gera conteúdo dinâmico. O cliente web interage com um servlet utilizando o padrão request/response. O servlet container é responsável pelo ciclo de vida de um servlet, receber requisições, enviar respostas, e executar o encoding/decoding.
Para definir um servlet, utilizamos a anotação @webservlet:
@webservlet(urlPatterns={"/teste","/testeServlet"}) public class TesteServlet extends javax.servlet.http.HttpServlet { }Para especificar a inicialização dos parametros utiliza-se a anotação @WebInititParam:
@webservlet( urlPatterns = {"/teste","/testeServlet"} , initiParams= {@WebInitiParam(name="type",value="checking")}) public class TesteServlet extends javax.servlet.http.HttpServlet { }
A interface do Servlet possui um método do___ que trata uma das requisições (GET, POST, PUT, DELETE, HEAD, OPTIONS e TRACE). Normalmente os desenvolvedores se preocupam apenas com o método doGet e doPost, mas é possível implementar cada um dos outros.
@webservlet( urlPatterns = {"/teste","/testeServlet"} , initiParams= {@WebInitiParam(name="type",value="checking")}) public class TesteServlet extends javax.servlet.http.HttpServlet { @Overrride protected void doGet(HttpServletRequest request, HttpServletResponse reponse) { String parameter = request.getParameter("tx"); try { ServletContext context = request.getServletContext(); (PrintWriter out = response.getWriter()){ out.println("<html><header>"); out.println("<title>Título</title>"); out.println("</head><body> Teste parametro ="+parameter==null? "null:parameter"+" </body></html>"); ServletCookieConfig config = request.getServletContext().getSessionCookieConfig(); configHttpOnly(true); HttpSession session = request.getSession(true); }finaly{ //... } } } }
O código escrito acima mostra a implementação de um servlet na sua forma mais simples. O mesmo, só responde as requisições do tipo doGet. A resposta é formada utilizando o writer presente no response.
Nesta forma é necessário que a página html seja gerada utilizando concatenação de String.
Para que o parameter não seja nulo é necessário que seu valor seja passado através da url
../teste?tx=10
Para recuperar o contexto do Servlet basta chamar o método getServletContext a partir do request.
Para recuperar ou criar uma sessão utilizamos o método request.getSession(true);. Caso queiramos adicionar ou recuperar atributos, basta utilizar o método set ou getAttribute .
Parâmetros de inicialização
Os parâmetros para inicialização do Servlet podem ser passados através da anotação @WebInitParam, e podem ser recuperadas desta forma:
String type = null; @Override public void init(ServletConfig config) throws ServletException { type = config.getInitParameter ("type") ; }
O ciclo de vida padrão de um Servlet pode ser manipulado sobrescrevendo os métodos init, service e destroy da interface javax.servlet.Servlet. Normalmente as conexões à banco de dados são criadas em init e finalizadas no método destroy. Pois caso fossem criadas sempre que o método fosse chamado poderia haver uma sobrecarga das mesmas.
Nenhum comentário:
Postar um comentário