Enviar parametros de uma página para outra via POST

Boa noite pessoal!
Tenho duas páginas: pagina1.jsp e pagina2.jsp, gostaria de saber como eu faço para enviar o nome da pagina1.jsp para a pagina2.jsp só que por post, utilizando o getParameter ou ${param.nome} na pagina2.jsp eu consigo receber mais quando eu digito no endereco do browser pagina2.jsp?nome=aaa ele também recebe o nome e eu gostaria que recebesse apenas por POST.

Alguém poderia me ajudar?

Paginas abaixo:

pagina1.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

<!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>Insert title here</title>
</head>
<body>

<form id="form1" name="form1" action="pagina2.jsp" method="post">
  Nome:<input id="nome" name="nome" type="text">
  <input type="submit" value="Enviar" >
</form>

</body>
</html>

pagina2.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

<!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>Insert title here</title>
</head>
<body>
resultado nome=<input id="nome1" name="nome1" type="text" value="${param.nome}">

</body>
</html>

Outra pergunta, esse é o melhor geito de fazer? Ou melhor usar um servlet?

Grato.

o melhor jeito é por servlet.

Alguém poderia me dar um Help de como ficaria? sou iniciante nessa parte.

Valeu.

No servlet:

//recuperando os parametros da pagina1
String param1 = request.getParameter("param1");
String param2 = request.getParameter("param2");

//setando os parametros para a pagina2
request.setAttribute("param1",param1);
request.setAttribute("param2",param2);

//despachando a request para pagina2
RequestDispatcher dispatcher = request.getRequestDispatcher("/pagina2.jsp");
				dispatcher.forward(request, response);

Para implementar um servlet:
http://www.guj.com.br/article.show.logic?id=9

[]'s

O problema é que você ainda está achando que está programando em ASP,PHP, etc.
Na verdade você está agora em um ambiente diferente, isso é JAVA e existem N outras formas bem eficientes de se trabalhar!

[color=green]Recomendo que você comece configurando seu ambiente por aqui:
http://jcanalneto.wordpress.com/2009/07/18/utilizando-o-richfaces-no-jboss-com-o-jboss-tools/

Terminando esta parte pesquise sobre conexão do hibernate (utilize annotations) com algum banco (de sua escolha) e a estruturação das classes em: bean, dao, modelo.[/color]

[color=orange]Ou então tente facelets:


Obs.: A segunda parte do tutorial está em alguns dos posts mais recentes!
[/color]

Espero ter ajudadoo… :slight_smile:

Valeu amigos.

[quote=DianaPJ]No servlet:

//recuperando os parametros da pagina1
String param1 = request.getParameter(&quot;param1&quot;);
String param2 = request.getParameter(&quot;param2&quot;);

//setando os parametros para a pagina2
request.setAttribute(&quot;param1&quot;,param1);
request.setAttribute(&quot;param2&quot;,param2);

//despachando a request para pagina2
RequestDispatcher dispatcher = request.getRequestDispatcher(&quot;/pagina2.jsp&quot;);
				dispatcher.forward(request, response);

Para implementar um servlet:
http://www.guj.com.br/article.show.logic?id=9

[]'s [/quote]

Olá Pessoal, fiz como a DianaPJ disse, muito legal, está tudo funcionando, a pagina1.jsp envia os dados para o servlet e o servlet chama a pagina2.jsp que recebe os dados. Porém se eu digito no browser http://localhost:8080/GravarContatos/pagina2.jsp?nome=Alexandre&cpf=111.111.111-11 a pagina2.jsp recebe os valores por GET e eu gostaria que recebesse apenas por POST.

alguém poderia me ajudar?

Abaixo os arquivos:

web.xml

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;web-app id="WebApp_ID" 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"&gt;

	&lt;display-name&gt;GravarContatos&lt;/display-name&gt;
	&lt;welcome-file-list&gt;
		&lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
		&lt;welcome-file&gt;index.htm&lt;/welcome-file&gt;
		&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
		&lt;welcome-file&gt;default.html&lt;/welcome-file&gt;
		&lt;welcome-file&gt;default.htm&lt;/welcome-file&gt;
		&lt;welcome-file&gt;default.jsp&lt;/welcome-file&gt;
	&lt;/welcome-file-list&gt;


	&lt;servlet&gt;
		&lt;servlet-name&gt;AdicionaPessoa&lt;/servlet-name&gt;
		&lt;servlet-class&gt;gravar.PessoaServlet&lt;/servlet-class&gt;
	&lt;/servlet&gt;
	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;AdicionaPessoa&lt;/servlet-name&gt;
		&lt;url-pattern&gt;/adicionaPessoa&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;

&lt;/web-app&gt;

pagina1.jsp

&lt;%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"&gt;
&lt;title&gt;Insert title here&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

Pagina1.jsp<br /><br />
&lt;form id="form1" name="form1" action="adicionaPessoa" method="post"&gt;
  Nome:&lt;input id="nome" name="nome" type="text"&gt;
  CPF:&lt;input id="cpf" name="cpf" type="text"&gt;
  &lt;input type="submit" value="Enviar" &gt;
&lt;/form&gt;

&lt;/body&gt;
&lt;/html&gt;

pagina2.jsp

&lt;%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"&gt;
&lt;title&gt;Insert title here&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

Pagina2.jsp<br /><br />
Nome = ${param.nome} <br />
CPF  = ${param.cpf}

&lt;/body&gt;
&lt;/html&gt;

PessoaServlet.java

package gravar;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class PessoaServlet extends HttpServlet {

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws IOException, ServletException {
        
	    // recuperando os parametros da pagina1
		String param1 = request.getParameter("nome");
		String param2 = request.getParameter("cpf");

		// setando os parametros para a pagina2
		request.setAttribute("nome", param1);
		request.setAttribute("cpf", param2);

		// despachando a request para pagina2
		RequestDispatcher dispatcher = request.getRequestDispatcher("/pagina2.jsp");
		dispatcher.forward(request, response);
        
	}

}

Valeu.

Para na sua JSP receber dados apenas via POST e recusar dados via POST dê uma olhada na url abaixo
http://download.oracle.com/docs/cd/E17477_01/javaee/5/api/javax/servlet/http/HttpServletRequest.html#getMethod()

O request possui um método que te devolve o tipo de requisição que foi feita: POT, GET ou PUT.