Problema com comunicação entre JSP e Servlet

3 respostas
F

Fala povo…
sou novato nessa área e estou com um problema:
quero enviar uns dados de um form em um JSP para ser processado em um servlet, mas não estou conseguindo. O erro que aparece no browser eh:

HTTP Status 404 - /Web/Web/

type Status report

message /Web/Web/

description The requested resource (/Web/Web/) is not available.

No arquivo jsp chamo o form da seguinte forma

<form method="POST" name="formprin" onsubmit="return TestaVal()"
  action="/Web/Web/">

O Servlet eh assim:

package Web;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class InserirServlet extends HttpServlet {
    
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
        
    }
    public void destroy() {    }
    
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
                
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("Essa b*** num funciona!"); 
        out.println("</body>");
        out.println("</html>");
        
        out.close();
    }
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    public String getServletInfo() {
        return "Short description";
    }
    
}

Na verdade issu ainda naum ta processando nada do form, mas issu vem depois… :smiley:
e o arquivo web.xml esta assim:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 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 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <servlet>
    <servlet-name>  InserirServlet  </servlet-name>
    <servlet-class>   Web.InserirServlet   </servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name> InserirServlet </servlet-name>
        <url-pattern> /inserir </url-pattern>
    </servlet-mapping>

    <session-config>
    <session-timeout>
            30
        </session-timeout>
  </session-config>
  <welcome-file-list>
    <welcome-file>
            index.jsp
        </welcome-file>
    <welcome-file>
            index.html
        </welcome-file>
    <welcome-file>
            index.htm
        </welcome-file>
  </welcome-file-list>
</web-app>

Nesse ultimo, da linha <servlet-config> para baixo foi feita pelo NetBeans 3.6 que estou usando.

A minha estrutura de arquivos esta assim:

webapps
|
Web
|
|WEB-INF
| |
| |classes
| | |
| | Web
| | |
| | InserirServlet.java
| |web.xm
|
linserir.jsp

Alguem ai ta vendo onde eu estou errando???

Valew… :grin:

3 Respostas

D

a suja action do seu form tem que estar direcionado para o mesmo nome de onde voce mapeou no seu web.xml.
Sacou?

F

Tentei mudar mas achu q não entendi direito.
no form eh teria q direcionar para o local onde o Servlet está… certo?
mas eu tenho que colocar o nome do servlet tb? (ie, action="/Web/Web/InserirServlet")

no mapeamento do web.xml eu tenho q colocar, na parte de mapeamento, o local onde esta o servlet tb, certo? (ie,
<servlet-mapping>
<servlet-name>InserirServlet</servlet-name>
<url-pattern>/Web/Web/InserirServlet</url-patter>
</servlet-mapping>
)

Outr aduvida q surgiou agora…
nesses casos, eu tenho que colocar a extensão .java dos servlets??

Valew

M

Salve,

não é necessário… aliás, você tem que compilar este arquivo java para virar um class senão não será nenhum espanto acontecer um erro. De acordo com o seu primeiro post a action seria “/inserir” conforme o código abaixo:

&lt;servlet-mapping&gt; &lt;servlet-name&gt; InserirServlet &lt;/servlet-name&gt; &lt;url-pattern&gt; /inserir &lt;/url-pattern&gt; &lt;/servlet-mapping&gt;

:okok:

Criado 16 de julho de 2005
Ultima resposta 16 de jul. de 2005
Respostas 3
Participantes 3