Pessoal. Tô lendo sobre servlets, struts, JSP e quero esclarecer o que realmente é o servlet, sua diferença para o JSP e sua relação com o Web Container.
Desculpem se a dúvida é de iniciante, mas agredeço se a sanarem.
Abraços,
Glailson
Pessoal. Tô lendo sobre servlets, struts, JSP e quero esclarecer o que realmente é o servlet, sua diferença para o JSP e sua relação com o Web Container.
Desculpem se a dúvida é de iniciante, mas agredeço se a sanarem.
Abraços,
Glailson
Aproveito para verificar um exemplo que estou usando aqui do site GUJ. A classe que defini é essa:
[i]package tomcat;
import <a href="http://java.io">java.io</a>.<em>;
import javax.servlet.</em>;
import javax.servlet.http.*;
/**
*/
public class HelloServlet extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse
response) throws IOException, ServletException {
// vamos definir o tipo de conteudo
// que será devolvido pelo response
response.setContentType(“text/html”);
// pegamos o PrintWriter do response, através
// do qual escreveremos o conteudo da pagina
PrintWriter out = response.getWriter();
// Agora vamos escrever o conteudo da pagina
out.println("<HTML>");
out.println("<BODY>");
out.println("<H1>Hello World!</H1>");
out.println("</body>");
out.println("</html>");
}
}[/i]
O resultado no console é esse:
IWAV0048I Java Bean tomcat.HelloServlet started with null constructor
Estou utilizando o Eclipse e já fiz todos os ajustes para utilizar os pacotes javax.servlet.*.
Quando tento rodar dá uma mensagem assim:
[i]type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Error allocating a servlet instance
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:212)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
java.lang.Thread.run(Thread.java:595)
root cause
java.lang.NoClassDefFoundError: HelloServlet (wrong name: tomcat/HelloServlet)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:620)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1815)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:212)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
java.lang.Thread.run(Thread.java:595)
[/i]
Se alguem puder ajudar…
Abraços…
bro, pra começar…sempre que for colocar um codigo no forum coloque entre a tag CODE, que fica bem acima da caixinha aonde vc digita o texto.
blz
Então, seu servlet ta registrado no web.xml ?
voce não pode acessar diretamente uma classe servlet sem que ela esteja corretamente mapeada no deployment descriptor da sua aplicacao, no caso o Web.xml
<servlet>
<servlet-name>CatalogoCadastroAssunto</servlet-name>
<servlet-class>br.com.site.servlet.Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Teste</servlet-name>
<url-pattern>/Teste.do</url-pattern>
</servlet-mapping>

Compre o livro: Use a Cabeça - Servlets e JSP para 1 melhor entendimento do assunto.