comunicação JSP e Servlet erro 404 do tomcat não acha ser

4 respostas
E

Olá estou com um problema aqui ,não sei onde é que estou errando ,coloquei uma aplicação chamada CallDesk no container tomcat , a pagina index.jsp(que é uma pag de login e senha) abre numa boa ,mas qdo o usuario manda enviar ,o tomcat retorna um erro 404 que não acha o ServletLogin. Vou postar aqui o arquivo de contexto , o web.xml , o index.jsp, e o servletLogin que esta dentro de um package chamado servlet. por favor alguem ae pode me ajudar ?

contexto :

.....
<?xml version="1.0" encoding="iso-8859-1"?>

<Context path="\CallDesk" docBase="C:\jakarta-tomcat-5.5.9\server\webapps\CallDesk"
 reloadable="true" crossContext="true" debug="3">
	<Logger className="org.apache.catalina.logger.FileLogger"
	 prefix="localhost_CallDesk_log." suffix=".txt" timestamp="true"
	 verbosity="4" />
</Context>
......

index.jsp :

...
      <form method="POST" action="ServletLogin">

<font face="Lucida Console">Login <input type="text" name="login" size="20"></font></p>
        <p align="center">
        <font face="Lucida Console">Senha
        <input type="password" name="senha" size="20"></font></p>
        <p align="center">
         </p>
        <p align="center"><b><font face="Lucida Console">
         
        <input type="submit" value="Acessar" name="acessar"><input type="reset" value="Redefinir" name="redefinir"
        <input type="hidden" name="comando" value="login"></font></b></p>

        <p align="center"> </p>
        <p align="center"> </p>
        <p align="center"> </p>
        <p align="center"> </p>
        <p align="center"> </p>
        <p align="center"> </p>
        <p align="center"> </p>
      </form>
...

web.xml :

...
		<servlet-name>dev-invoker</servlet-name>
		<servlet-class>
			org.apache.catalina.servlets.InvokerServlet
		</servlet-class>
		<init-param>
			<param-name>debug</param-name>
			<param-value>0</param-value>
		</init-param>
		<load-on-startup>2</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>dev-invoker</servlet-name>
		<url-pattern>/servlet/*</url-pattern>
	</servlet-mapping>
</web-app>

ServletLogin.java :

package servlet;
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;

import bd.LoginBD;
import beans.UsuarioBean;

public class ServletLogin extends HttpServlet {
    protected void doPost(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        String comando = request.getParameter("comando");
        if (comando.equalsIgnoreCase("login")) {
            try {
                LoginBD loginBD = new LoginBD();
                UsuarioBean usuario = new UsuarioBean();
                String strLogin = request.getParameter("login");
                String strSenha = request.getParameter("senha");
                usuario = loginBD.checaUsuario(strLogin);                

                if( (strLogin.equalsIgnoreCase(usuario.getLogin())) &&
                (strSenha.equalsIgnoreCase(usuario.getSenha())) ){
                    //getServletContext().getRequestDispatcher("chamado.jsp").forward(request, response);
                    response.sendRedirect("chamado.jsp"); //está é a tela de cadastro de chamado
                }else{
                	  // caso usuario tenha digitado login ou senha invalido
                    response.sendRedirect("index.jsp");
                }

            } catch(Exception ex) {
                ex.printStackTrace();
            }
        }
    }
    protected void processRequest(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
        processRequest(request, response);
    }
    /**
     * Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return "Short description";
    }
}

aqui está o erro que o tomcat informa :

HTTP Status 404 - /servlets/ServletLogin

--------------------------------------------------------------------------------

type Status report

message /servlets/ServletLogin

description The requested resource (/servlets/ServletLogin) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.9

[size=“12”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Matheus [/color][/size] :joia:

4 Respostas

M

mapeie esse teu servlet de login no web.xml

M

Caso tiver dificuldades em mapear teu servlet, coloque este código aí no teu web.xml

<servlet-name>login</servlet-name> 
      <servlet-class>servlet.ServletLogin</servlet-class> 
   </servlet> 

   <servlet-mapping> 
      <servlet-name>login</servlet-name> 
      <url-pattern>/servlet/ServletLogin</url-pattern> 
   </servlet-mapping>

e no teu jsp coloque:

<form method="POST" action="/servlet/ServletLogin">

é isso aí, qualquer dúvia “post it”.

:okok:

E

aqui está o web.xml :

...
	<servlet>
		<servlet-name>login</servlet-name>
		<servlet-class>servlet.ServletLogin</servlet-class>		
	</servlet>

	<servlet-mapping>
		<servlet-name>login</servlet-name>
		<url-pattern>/servlet/ServletLogin</url-pattern>
	</servlet-mapping>

	<error-page>
   		<exception-class>java.lang.Exception</exception-class>
   		<location>/error.jsp</location>
	</error-page> 
...

na index.jsp está :

...
<form method="POST" action="/servlet/ServletLogin">
...
<font face="Lucida Console">Login <input type="text" name="login" size="20"></font></p>
        <p align="center">
        <font face="Lucida Console">Senha
        <input type="password" name="senha" size="20"></font></p>
        <p align="center">
         </p>
        <p align="center"><b><font face="Lucida Console">
         
        <input type="submit" value="Acessar" name="acessar"><input type="reset" value="Redefinir" name="redefinir"
        <input type="hidden" name="comando" value="login"></font></b></p>
...

o ServletLogin está assim :

package servlet;

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;

import bd.LoginBD;
import beans.UsuarioBean;

public class ServletLogin extends HttpServlet {
    protected void doPost(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        String comando = request.getParameter("comando");
        if (comando.equalsIgnoreCase("login")) {
            try {
                LoginBD loginBD = new LoginBD();
                UsuarioBean usuario = new UsuarioBean();
                String strLogin = request.getParameter("login");
                String strSenha = request.getParameter("senha");
                usuario = loginBD.checaUsuario(strLogin); 
                
                

                if( (strLogin.equalsIgnoreCase(usuario.getLogin())) &&
                (strSenha.equalsIgnoreCase(usuario.getSenha())) ){
                    getServletContext().getRequestDispatcher("chamado.jsp").forward(request, response);
                    //response.sendRedirect("chamado.jsp");
                	// request.getSession().setAttribute( "user", user );
                    /// request.getServletDispatcher( "/paginaSegura" ).
                     //forward( request, response ); 
                }else{
                	
                	request.getRequestDispatcher( "index.jsp" ).forward( request, response ); 
                	
                    //response.sendRedirect("index.jsp");
                }

            } catch(Exception ex) {
                ex.printStackTrace();
            }
        }
    }
    protected void processRequest(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
        processRequest(request, response);
    }
    /**
     * Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return "Short description";
    }
}

O TOMCAT ESTÁ RETORNANDO

ERRO 404  /servlet/ServletLogin

[size=“15”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Matheus [/color][/size]

M

Tuas configurações estão certas, certique-se de q esta fazendo um deploy dessa configuração mesmo no teu container, delete o codigo q o tomcat cria em /work…

Criado 20 de junho de 2005
Ultima resposta 21 de jun. de 2005
Respostas 4
Participantes 3