Notas de estudo Jsp&Servelet (1)
Autor:Eve Cole
Data da Última Atualização:2009-07-02 17:15:10
1.1 Escreva um programa servelet
1.2 Escreva um programa Jsp
1.3 Compilar um programa Servlet
1.4 Empacotar um programa Servlets e Jsps
1.5 Construir um descritor de implantação
1.1 Escreva um programa servelet
Problema Você deseja escrever um servlet como um aplicativo da web Solução Escreva uma classe java que herda de javax.servlet.http.HttpServlet. Primeiro, um pacote de classe servlet.jar deve ser derramado. Você precisará da biblioteca de classes interna para compilar este programa servlet.
Discussão Um programa servlet é uma classe java usada para responder ao conteúdo dinâmico solicitado pelo cliente através da rede. Se você estiver familiarizado com programas (CGI), os servlets da tecnologia Java podem substituir completamente os programas CGI. Freqüentemente chamado de componente da web, um programa servlet executado em um ambiente de tempo de execução será fornecido por um contêiner de servles como Tomcat e Bea WebLogic.
Nota: Um contêiner da web pode ser
Os servlets são instalados em um contêiner da web como parte de um aplicativo da web. Este aplicativo conterá recursos da WEB. Como páginas HTML, imagens, clipes multimídia, servlets, jsps, arquivos de configuração xml, classes de tempo de execução java e bibliotecas de classes. Quando um aplicativo da web é implementado em um contêiner da web, o contêiner irá gerar e carregar instâncias da classe de servlet java na JVM. . Lidar com solicitações de servlets.
Todos os servlets herdam a interface javax.servlet.Servlet. Programadores que desenvolvem aplicações web escrevem um servlet especial
Herdada de javax.servlet.http.HttpServlet, uma classe abstrata implementa a interface Servlet e é projetada especificamente para lidar com solicitações HTTP.
Quando um contêiner web gera uma instância de servlet, sua sequência básica é a seguinte:
1. O contêiner do servlet primeiro chama o método init() do servlet, que inicializará um recurso para o servlet usar. Listado como um registrador. Este método init() será chamado apenas uma vez durante todo o ciclo de vida do servlet.
2. O método init() inicializa um objeto, que herda a interface java.servlet.ServletConfig. Este objeto permite que o servlet inicialize parâmetros declarados no descritor de implantação. ServletConfig também fornece ao servlet acesso a um objeto javax.servlet.ServletContext, que o servlet pode usar para registrar informações, despachar solicitações para outros componentes da web e usar outros recursos da web no mesmo aplicativo.
3. O contêiner do servlet chama o método service() deste servlet para responder a algumas solicitações do servlet. Baseado em HttpServlets, service() chama automaticamente o método HTTP apropriado para lidar com a solicitação chamando o método doGet() ou doPost() do servlet. Para vários exemplos, o usuário envia uma solicitação Post e o servlet responde à solicitação executando o método doPost().
4. Ao chamar os métodos doPost() e doGet() dos dois HttpServlets principais, o contêiner do servlet gerará os objetos javax..servlet.http.HttpServletRequest e HttpServletResponse e os passará como parâmetros para esses métodos de processamento de solicitação.
http://www.downcodes.com/
5. Gerencie o ciclo de vida de um servlet ou determine o tempo de processamento dessa instância de servlet na solicitação de solicitação e o tempo de existência na máquina virtual Java. Quando um contêiner de servlet começa a remover um servlet, o método destroy() do servlet será chamado, no qual todos os recursos, como uma conexão de banco de dados, podem ser liberados.
Exemplo Um HttpServlet típico
pacote com.mydev;
importar java.io.IOException; importar java.io.PrintWriter;
importar java.util.Enumeration; importar javax.servlet.ServletException;
importar javax.servlet.http.HttpServlet;
importar javax.servlet.http.HttpServletRequest;
importar javax.servlet.http.HttpServletResponse;
//Deve herdar a interface HttpServlet
classe pública FirstServlet estende HttpServlet ...{
public void doGet (solicitação HttpServletRequest, resposta HttpServletResponse) lança ServletException, java.io.IOException ...{
//define o tipo MIME da resposta, "text/html"
resposta.setContentType("texto/html");
//usa um PrintWriter para enviar dados de texto ao cliente que solicitou o
//servlet
java.io.PrintWriter out=response.getWriter();
//Começa a montar o conteúdo HTML out.println("<html><head>");
out.println("<title>Página de Ajuda</title></head><body>");
out.println("<h2>Por favor, envie suas informações</h2>");
//certifique-se de method="post" para que o método de serviço do servlet
//chama doPost na resposta a este formulário submit
out.println( "<form method="post" action ="" + request.getContextPath() + "/firstservlet" >");
out.println("<table border="0"><tr><td valign="top">");
out.println("Seu primeiro nome: </td> <td valign="top">");
out.println("<input type="text" name="firstname" size="20">");
out.println("</td></tr><tr><td valign="top">");
out.println("Seu sobrenome: </td> <td valign="top">");
out.println("<input type="text" name="lastname" size="20">");
out.println("</td></tr><tr><td valign="top">");
out.println("Seu e-mail: </td> <td valign="top">");
out.println("<input type="text" name="email" size="20">");
out.println("</td></tr><tr><td valign="top">");
out.println("<input type="submit" value="Enviar informações"></td></tr>");
out.println("</table></form>"); out.println("</body></html>");
}
//doGet
public void doPost (solicitação HttpServletRequest, resposta HttpServletResponse) lança ServletException, java.io.IOException ...{
//exibe os nomes e valores dos parâmetros
Enumeração paramNames = request.getParameterNames();
String parNome;
//isso conterá o nome do parâmetro
booleano vazioEnum = falso;
if (! paramNames.hasMoreElements())
vazioEnum = verdadeiro;
//define o tipo MIME da resposta, "text/html"
resposta.setContentType("texto/html");
//usa um PrintWriter para enviar dados de texto ao cliente
java.io.PrintWriter out=response.getWriter();
//Começa a montar o conteúdo HTML
out.println("<html><head>");
out.println("<title>Parâmetros enviados</title></head><body>");
if (emptyEnum)...{
out.println( "<h2>Desculpe, a solicitação não contém nenhum parâmetro</h2>");
} outro ...{
out.println( "<h2>Aqui estão os valores dos parâmetros enviados</h2>");
}
while(paramNames.hasMoreElements( )) ...{
parNome = (String) paramNames.nextElement();
out.println( "<strong>" + parName + "</strong> : " + request.getParameter(parName));
out.println("<br />");
}//enquanto
out.println("</body></html>");
}
//doPost
}
Você pode notar que doGet() e doPost() lançarão ServletException e IOException. Isso ocorre porque response.getWriter() lançará uma exceção IO.
http://blog.csdn.net/bruceleey/archive/2007/02/07/1503843.aspx