Gostaria de umas dicas para saber se estou na direção correta.
web-inf\web.xml
conteúdo
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Minha Aplicacao Web</display-name>
<servlet>
<servlet-name>WelcomeServlet</servlet-name>
<servlet-class>pct.WelcomeServlet</servlet-class>
<load-on-startup>5</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>WelcomeServlet</servlet-name>
<url-pattern>/paginaServlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>welcome.jsp</welcome-file>
<welcome-file>welcome.html</welcome-file>
<welcome-file>welcome.htm</welcome-file>
</welcome-file-list>
</web-app>
web-inf\src\pct\WelcomeServlet.java
package pct;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class WelcomeServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<?xml version=\"1.0\"?>");
out.printf("%s%s%s", "<!DOCTYPE html PUBLIC",
" \"-//W3C//DTD XHTML 1.0 Strict//EN\"",
" \"http://www.w3.org/TR/xhtmll/DTD/xhtmll-strict.dtd\">\n");
out.println("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
out.println("<head><title> A simple Servlet Example</title></head>");
out.println("<body><h1>Welcome to Servlets!!!!</h1> </body>");
out.println("</html>");
}
}
e na raiz do contexto
exemplo\welcome.html
Quando digito no browser “http://localhost:8080/exemplo” a interpretação de passo-a-passo do container Web, seria:
Abrir a página welcome.html(definido no web.xml entre as tags <welcome-file-list> e </welcome-file-list>)
Pressionado botão de submit, direciono a action do form para: “paginaServlet”, neste momento o Web container lê
o arquivo web.xml e identifica que “paginaServlet” na verdade é um mapeamento de "<url-pattern>paginaServlet(…)" para “<sevlet-name>WelcomeServlet(…)” definido entre as tags “<servlet-mapping>” e “</servlet-mapping>”.
Identificado (pelo web container) mapeamento do servlet-name “WelcomServlet”, o web container busca entre as tags <servlet></servlet> e acessa a classe pelo seu pacote definido “<servlet-class>pct.WelcomeServlet(…)”
Pessoal, gostaria de saber se é assim mesmo que funciona o mapeamento de classes no web.xml?
Obrigado, e desculpem os erros de português
Ricardo Spinoza