Criei uma variável nome e gostaria de passar o valor para um servlet. Assim consigo: Nome
Mas não quero enviar um input, só texto mesmo. Tentei fazer "Nome <%= produto.getNome() %>", mas o valor não é passado para o servlet.
Criei uma variável nome e gostaria de passar o valor para um servlet. Assim consigo: Nome
Mas não quero enviar um input, só texto mesmo. Tentei fazer "Nome <%= produto.getNome() %>", mas o valor não é passado para o servlet.
<html>
<head><title>Página de teste</title></head>
<body>
<form action=” /testeServlet” method=”get”>
Nome.: <input type=”text” name=”nome” />
<br />
<input type=”submit” value=”Enviar”/>
</form>
</body>
</html>
@WebServlet("/testeServlet")
public class Ola extends HttpServlet {
private static final long serialVersionUID = 1L;
public Ola() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String nome = request.getParameter("nome");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Bem Vindo<h3>"+nome+" " +"</h3>");
out.close();
}
}
Bom dia Thamirys,
Se você quer passar o valor vindo de uma página web para a servlet, é o que nosso amigo Ricardo exemplificou acima. Mas pelo que você postou:
Nome <%= produto.getNome() %>
Deu a entender que você está tentando mandar um valor da Servlet para a página, seria isso? Você queria que aparecesse "Nome Refrigerante", onde Refrigerante teria vindo da Servlet??
Oi Emerson, quero fazer as duas coisas.
Tenho uma página que recebe o nome do produto que vem de uma classe java. O valor é exibido na página através "<%= produto.getNome() %>", mas quero passar esse valor para um servlet através de uma tag, mas não quero um input, pois o valor é fixo não digitado em um input.
Certo, então para fazer o valor vindo da página mas sem ser um input que o usuário digita, você pode fazer o seguinte:
<input type="hidden" name="valor" value="123456"
Isso vai gerar um input com o valor que você especificar, fixo, e o usuário não verá nada na tela. Para pegar na Servlet será como você já está acostumada:
String valor = request.getParameter("valor");
Testa ai.
Já para exibir em uma página o valor que está em uma Servlet, você pode fazer assim:
Na Servlet, sete o valor como atributo do request, utilizando:
req.setAttribute("nomeProduto", produto.getNome());
Depois encaminhe para a página que você precisa:
RequestDispatcher dispatcher = req.getRequestDispatcher("sua_pagina.jsp");
dispatcher.forward(req, resp);
Na sua página web, pegue utilizando a seguinte expressão:
<p>Produto ${nomeProduto}.</p>
Para isso funcionar a página precisa ser um JSP, terminando com .jsp. Se for .html não dará certo. O caracter $ representa o escopo do request, por isso que dentro das chaves dele você coloca direto o nome do atributo que definiu na Servlet, ele já sabe que está procurando um atributo com aquele nome.
Abraço.
Funcionou Emerson, muito obrigada! :)
Deu super certo Emerson, nos dois casos, obrigada pela ajuda. Era exatamente o que estava precisando.
Abraço.
Legal, precisando estamos ai.
Abraço.