Luca
Dezembro 20, 2003, 3:37pm
#1
Olá
Imaginando que usa Windows corrigi apenas seu web.xml
Seu web.xml que vai em %CATALINA_HOME%webappslivroWEB-INF
pode ficar assim:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>BasicServlet</servlet-name>
<servlet-class>cap01.BasicServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BasicServlet</servlet-name>
<url-pattern>/myServlet</url-pattern>
</servlet-mapping>
</web-app>
Repare que apenas declarei web-app e eliminei o resto da linha <web-app> Mais tarde entenderá para que serve os parametros que retirei.
A sua classe BasicServlet foi colocada em:
%CATALINA_HOME%webappslivroWEB-INFclassescap01
Depois de startar o tomcat acessei: http://luca-note:8080/livro/myServlet
O resultado foi:
Starting service Tomcat-Standalone
Apache Tomcat/4.0.6
Starting service Tomcat-Apache
Apache Tomcat/4.0.6
Instanciando BasicServlet
Entrando no método INIT
Requisição pedida
É isso que esperava? Talvez não, pois em Service não chamou doGet. Em service depois de System.out.println(“Requisição pedida”); inclua:
try {
doGet(req, res);
}
catch (IOException ioe){}
Vai ver na tela:
HELLO WORD!
MY FIRST SERVLET
[]s
Luca
Ae pessoal, é o seguinte:
Sou novo nessa área, Servlets e JSP. To tentando criar meu primeiro Servlet mais não está dando erro, mas também não está dando certo :roll:
web.xml
[code]<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee "
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance "
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd"
version="2.4">
<servlet>
<servlet-name>BasicServlet</servlet-name>
<servlet-class>cap01/BasicServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BasicServlet</servlet-name>
<url-pattern>/myServlet</url-pattern>
</servlet-mapping>
</web-app>
[/code]
Ae quando eu coloco: http://localhost:8080/livro/myServlet , não dá erro, mas também não imprime o que era pra imprimir. Na verdade nem entra no método doGet()
SERVLET
[code]package cap01;
import java.io.IOException;
import javax.servlet.;
import javax.servlet.http. ;
public class BasicServlet extends HttpServlet {
public BasicServlet() {
System.out.println("Instanciando BasicServlet");
}
public void init(ServletConfig config) throws ServletException {
super.init(config);
System.out.println("Entrando no método INIT");
}
public void service(HttpServletRequest req, HttpServletResponse res) {
System.out.println("Requisição pedida");
}
public void destroy() {
System.out.println("Fim de BasicServlet");
}
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
System.out.println("GET");
ServletOutputStream out = res.getOutputStream();
res.setContentType("text/html");
out.println("<HTML><HEAD><TITLE>HELLO WORD!</TITLE></HEAD><BODY>");
out.println("HELLO WORD!<BR>MY FIRST SERVLET</BODY></HTML>");
}
}[/code]
O que que está errado???
Valeu!!!
Entendi o porque não estava dando certo!
Eu estava sobrescrevendo o método service. E é esse método que chama o doGet() ou o doPost().
Valeu pela ajuda Luca!