Erro ao enviar formulário (servlet) [RESOLVIDO]

6 respostas
diegohsi
Ola pessoal, creio que muitos aqui já passaram por esse exemplo do livro "Use a Cabeça Servlets e Jsp's". Meu problema é o seguinte, ao enviar o formulário o tomcat (estou usando 5.5) avisa
type Status report

message /Beer-v1/SelectBeer.do

description The requested resource (/Beer-v1/SelectBeer.do) is not available.
Meu web.xml
<?xml version="1.0" encoding="UTF-8"?>
<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 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
   
	<servlet>
		<servlet-name>Ch3 Beer</servlet-name>
		<servlet-class>com.example.web.BeerSelect</servlet-class>
		<url-pattern>/SelectBeer.do</url-pattern>
   	</servlet>
</web-app>
Minha classe esta identica ao do livro, ja compilei e distribui a classe
package com.example.web;

import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.io.*;

public class BeerSelect extends HttpServlet {
	
	public void doPost(HttpServletRequest request, 
						HttpServletResponse response) 
						throws IOException, ServletException {
		
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("Beer Selection Advice<br>");
		String c = request.getParameter("color");
		out.println("<br>Got beer color: " + c);
	}
}
Sei que é muito iniciante, realmente tentei aqui mais nao conseguir funcionar. O servidor tomcat esta funcionando corretamente. Só para constar meu form
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Beer Selection Page</title>
</head>
<body>
	<h1>Beer Selection Page</h1>
	<p>Select Beer characterístcs</p>
	<form method="post" action="SelectBeer.do">
		Color: 
		<select name="color" size="1">
			<option value="light">light</option>
			<option value="amber">amber</option>
			<option value="brown">brown</option>
			<option value="dark">dark</option>
		</select>
		<br>
		<br>
		<input type="submit">
	</form>
</body>
</html>

6 Respostas

drsmachado
diegohsi:
Ola pessoal, creio que muitos aqui já passaram por esse exemplo do livro "Use a Cabeça Servlets e Jsp's". Meu problema é o seguinte, ao enviar o formulário o tomcat (estou usando 5.5) avisa
type Status report

message /Beer-v1/SelectBeer.do

description The requested resource (/Beer-v1/SelectBeer.do) is not available.
Meu web.xml
<?xml version="1.0" encoding="UTF-8"?>
<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 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
   
	<servlet>
		<servlet-name>Ch3 Beer</servlet-name>
		<servlet-class>com.example.web.BeerSelect</servlet-class>
		<url-pattern>/SelectBeer.do</url-pattern>
   	</servlet>
</web-app>
Minha classe esta identica ao do livro, ja compilei e distribui a classe
package com.example.web;

import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.io.*;

public class BeerSelect extends HttpServlet {
	
	public void doPost(HttpServletRequest request, 
						HttpServletResponse response) 
						throws IOException, ServletException {
		
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("Beer Selection Advice<br>");
		String c = request.getParameter("color");
		out.println("<br>Got beer color: " + c);
	}
}
Sei que é muito iniciante, realmente tentei aqui mais nao conseguir funcionar. O servidor tomcat esta funcionando corretamente. Só para constar meu form
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Beer Selection Page</title>
</head>
<body>
	<h1>Beer Selection Page</h1>
	<p>Select Beer characterístcs</p>
	<form method="post" action="SelectBeer.do">
		Color: 
		<select name="color" size="1">
			<option value="light">light</option>
			<option value="amber">amber</option>
			<option value="brown">brown</option>
			<option value="dark">dark</option>
		</select>
		<br>
		<br>
		<input type="submit">
	</form>
</body>
</html>

Então, não li esse livro, mas, você não precisa do .do no mapeamento

diegohsi
drsmachado:
diegohsi:
Ola pessoal, creio que muitos aqui já passaram por esse exemplo do livro "Use a Cabeça Servlets e Jsp's". Meu problema é o seguinte, ao enviar o formulário o tomcat (estou usando 5.5) avisa
type Status report

message /Beer-v1/SelectBeer.do

description The requested resource (/Beer-v1/SelectBeer.do) is not available.
Meu web.xml
<?xml version="1.0" encoding="UTF-8"?>
<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 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
   
	<servlet>
		<servlet-name>Ch3 Beer</servlet-name>
		<servlet-class>com.example.web.BeerSelect</servlet-class>
		<url-pattern>/SelectBeer.do</url-pattern>
   	</servlet>
</web-app>
Minha classe esta identica ao do livro, ja compilei e distribui a classe
package com.example.web;

import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.io.*;

public class BeerSelect extends HttpServlet {
	
	public void doPost(HttpServletRequest request, 
						HttpServletResponse response) 
						throws IOException, ServletException {
		
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("Beer Selection Advice<br>");
		String c = request.getParameter("color");
		out.println("<br>Got beer color: " + c);
	}
}
Sei que é muito iniciante, realmente tentei aqui mais nao conseguir funcionar. O servidor tomcat esta funcionando corretamente. Só para constar meu form
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Beer Selection Page</title>
</head>
<body>
	<h1>Beer Selection Page</h1>
	<p>Select Beer characterístcs</p>
	<form method="post" action="SelectBeer.do">
		Color: 
		<select name="color" size="1">
			<option value="light">light</option>
			<option value="amber">amber</option>
			<option value="brown">brown</option>
			<option value="dark">dark</option>
		</select>
		<br>
		<br>
		<input type="submit">
	</form>
</body>
</html>

Então, não li esse livro, mas, você não precisa do .do no mapeamento

Certo, eu tentei sem o .do, porem continua dando erro ao tentar encontrar meu servlet

fernandoabcampos

Olá diegohsi.
Faltou o .

Acredito que esse mapeamento o ajudará a entender o ocorrido:

<servlet>
        <servlet-name>Ch3 Beer</servlet-name>  
        <servlet-class>com.example.web.BeerSelect</servlet-class>  
</servlet>

<servlet-mapping>
        <servlet-name>Ch3 Beer</servlet-name>  
        <url-pattern>/SelectBeer.do</url-pattern>  
<servlet-mapping>

Espero ter ajudado.

Att.

diegohsi

Obrigado pela atenção Fernando, deu certo :smiley:

fernandoabcampos

Que isso Diego, precisando estamos aí.

:smiley:

Robb_Junior

Diego que massa, já foi resolvido então com a ajuda dos amigos do forum!!!

edite o post colocando [RESOLVIDO] lá pra gente por favor!!!

valeu abraço.

Criado 23 de dezembro de 2011
Ultima resposta 26 de dez. de 2011
Respostas 6
Participantes 4