Boa tarde pessoal.
Estou com um problema vergonhosamente simples que não estou conseguindo resolver.
Estou desenvolvendo um servlet que recebe uma string de uma página e retorna “olá + string”.
O servlet quando acessado diretamente do eclipse funciona normalmente. Porém, ao tentar acessá-lo via página HTML fazendo uso de um form + action, acusa arquivo não encontrado.
Estou usando eclipse, lubuntu 13.10, tomcat 6 e firefox.
Seguem os códigos:
SERVLET
[code]
package com.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;
public class SecondServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/*
* (non-Javadoc)
* @see javax.servlet.http.HttpServlet#doGet
* (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*
*"Esse servlet recebe uma string como parametro de uma requisição do cliente e imprime-a no browser."
*/
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("name"); //O método .getParameter("nome_parametro_a_receber")
//obtem o valor do parametro passado
//pelo cliente, caso o parâmetro esteja vazio, o método retornará
// uma string vazia.
PrintWriter out = response.getWriter();
out.println("<H1>Oi, " + name + "!!!</H1>"); //Obtem o fluxo de saída em forma de caracteres
//e envia para o browser
out.close();
}
}[/code]
WEB.XML
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>SecondServlet</display-name>
<servlet>
<servlet-name>com_servlet_SecondServlet</servlet-name>
<servlet-class>com.servlet.SecondServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>com_servlet_SecondServlet</servlet-name>
<url-pattern>/SecondServlet</url-pattern>
</servlet-mapping>
</web-app>
PÁGINA HTML
<HTML>
<HEAD>
<TITLE>Introdução</TITLE>
</HEAD>
<BODY>
<FORM ACTION=?http://localhost:8081/SecondServlet/SecondServlet? METHOD="post">
Qual o seu nome?
<INPUT TYPE=TEXT NAME=?name?><P>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>
Desde já agradeço pela ajuda!