JSP x SERVELT

22 respostas
R

Estou tentando criar um jsp que exiba o valor de uma variavel que está dentro de um metodo em uma classe java.
Ex.
index.jsp
<%@page contentType=“text/html” pageEncoding=“UTF-8”%>
<!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=UTF-8”>
<title>JSP Page</title>
</head>
<body>
[color=darkred]VARIAVEL NOME[/color]
</body>
</html>

teste.java

public class Teste {

private String nome=Rafael;
public String getNome(){
    return nome;
}

}

É claro que não será este aplicativo que irei usar, mas gostaria de saber como recuperar o valor da variael de uma classe para usar na jsp.
Obrigado pela ajuda!!!

22 Respostas

g4j

no servlet, coloque o atributo no request:

Teste teste = new Teste();
request.setAttribute("teste", teste);
//dispatch para o jsp

no jsp, use EL ( Expression Language )

Nome: ${teste.nome}
R

g4j:
no servlet, coloque o atributo no request:

Teste teste = new Teste();
request.setAttribute("teste", teste);
//dispatch para o jsp

no jsp, use EL ( Expression Language )

Nome: ${teste.nome}

Voce poderia colocar o .jsp, a servlet completo
Me ajudaria muito

R

Por favor coloque o codigo inteiro da SERVLET E DA JSP.
Agradeço muito

g4j

Não criei servlet nem jsp, postei direto no forum.

R

Voce poderia criar e postar POR FAVOR!!!

R

POR FAVOR PODERIA CRIAR E POSTAR AGRADEÇO MUITO

g4j

que tal você tentar criar e postar os problemas? Vai ser mais proveitoso pra você, acredite

R

Eu acredito, só que não consigo, voce poderia me ajudar?
Preciso levar isso funcionando hoje na faculdade hoje.
Por favor.
Obrigado

Djonatah

Esse é nosso país…

R

Amigo agradeço pela atenção dispensada, mas lembre-se que não vou usar o servlet e nem a jsp para entregar na faculdade, quero um exemplo de como fazer para usar em outras paginas. Pretendo usar os valores em combo, entre outras coisas.
Sabe sou advogado trabalhista, faço faculdade de Sistema de Informação pelo prazer que tenho em informatica, se um dia precisa de um conselho na area trabalhista terei o maior prazer em ajudar, não vou te criticar e nem mandar voce ler e entender a CLT.
“Os altos colhem as maçãs os mais baixinhos as melancias”

Djonatah

Sabe qual eh o problema, as pessoas parecem não se esforçar para correr atrás das coisas.

O nosos colega lhe passou como deveria ser estruturada sua apliação, e você de maneira grossa lhe pediu um fonte inteiro.
Não seria mais educado procurar o exemplo na internet, ao invés de respondê-lo de maneira mal educada?

Aqui vai uma aplicação de exemplo completa que achei na internet em menos de 5min >>
http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/mvc/exemplo.zip

Se tiver dúvidas quanto ao entendimento do código volte a postar.

Abraços.
<><

g4j

Então já percebeu que ninguem vai passar o código pronto pra você. Então ainda dá tempo de tentar fazer…

R

Desculpe mas acho que fui mal interpretado.
Não queria de maneira alguma que fizesse o código para mim.
Aprendo muito melhor com exemplos.
Agradeço estou tentando fazer.

R

Djonatah:
Sabe qual eh o problema, as pessoas parecem não se esforçar para correr atrás das coisas.

O nosos colega lhe passou como deveria ser estruturada sua apliação, e você de maneira grossa lhe pediu um fonte inteiro.
Não seria mais educado procurar o exemplo na internet, ao invés de respondê-lo de maneira mal educada?

Aqui vai uma aplicação de exemplo completa que achei na internet em menos de 5min >>
http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/mvc/exemplo.zip

Se tiver dúvidas quanto ao entendimento do código volte a postar.

Abraços.
<><

Obrigado.
Desculpe, de maneira alguma quis ser grosseiro.
Estou tentando entender o código que peguei no liNK que você mandou.
Valeu.
Só para não ficar um mal entendido o que eu queria era um código bem simples.
index.jsp
<%@page contentType=“text/html” pageEncoding=“UTF-8”%>

JSP Page VARIAVEL NOME
teste.java

public class Teste {

private String nome=Rafael;
public String getNome(){

return nome;

}

}

Não sei fazer a servlet pegar o valor da variavel nome e depois fazer com que o jsp ao ser chamado busque esse valor e exiba na tela.

TO TENTANDO
VALEU MESMO
UM ABRAÇO

R

Consegui exibir uma variavel static coloquei um import e pronto. Peguei a variavel direto da classe.
Mas quando criei a servlet ;

public class ClienteServlet extends HttpServlet {

Cliente cliente = new Cliente();
public String nome=cliente.getNome();

Tentei exibir a a variavel nome na jsp não funcionou “non-static variable nome cannot be referenced from a static context”

Segue a jsp;

<%<a class="mention" href="/u/page">@page</a> import=“Controle.ClienteServlet” pageEncoding=“ISO-8859-1” %>

<html>

<head>

<meta http-equiv=“Content-Type” content=“text/html;”>

<title>JSP Page</title>

</head>

<%<a class="mention" href="/u/page">@page</a> import=“Negocio.Cliente” %>

<body>
&lt;%= "Nome" + Controle.ClienteServlet.nome %&gt;

&lt;/body&gt;

</html>

Acho que estou aprendendo a utilizar o forum.
Agradeço a todos

OliveirakunJava

Cara eu li os posts do seu tópico e parece que vc esta começando a se esforçar mais, e como vc é novo no fórum resolvi lhe dar uma mão;
Como vc apenas quer chamar um método de uma classe, então vc pode fazer isso direto na jsp, sem precisar criar um servlet:

Classe Teste:
package classes;

public class Teste {
	private String nome="Rafael";
	
	public String getNome(){
		return this.nome;
	}
	
}

Aqui na jsp eu utilizei Standard actions(ações padrão) para chamar o método get e resgatar o valor da variável nome:

<html>
<head>
<title>Exemplo</title>
</head>
<body>
Página de teste<br>
<!-- Standard action utilizado para instanciar uma classe(Equivalente a um Teste cliente=new Teste()) -->
<jsp:useBean id="cliente" class="classes.Teste" scope="page" />
<!-- Standard action utilizado para chamar o método get de uma referência(Equivalente a um cliente.getNome())-->
<jsp:getProperty name="cliente" property="nome" />
</body>
</html>

Bom é isso ai, espero ter lhe ajudado,
Boa sorte!

R
OliveirakunJava:
Cara eu li os posts do seu tópico e parece que vc esta começando a se esforçar mais, e como vc é novo no fórum resolvi lhe dar uma mão; Como vc apenas quer chamar um método de uma classe, então vc pode fazer isso direto na jsp, sem precisar criar um servlet: Classe Teste:
package classes;

public class Teste {
	private String nome="Rafael";
	
	public String getNome(){
		return this.nome;
	}
	
}

Aqui na jsp eu utilizei Standard actions(ações padrão) para chamar o método get e resgatar o valor da variável nome:

&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Exemplo&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
Página de teste<br>
&lt;!-- Standard action utilizado para instanciar uma classe(Equivalente a um Teste cliente=new Teste()) --&gt;
&lt;jsp:useBean id="cliente" class="classes.Teste" scope="page" /&gt;
&lt;!-- Standard action utilizado para chamar o método get de uma referência(Equivalente a um cliente.getNome())--&gt;
&lt;jsp:getProperty name="cliente" property="nome" /&gt;
&lt;/body&gt;
&lt;/html&gt;

Bom é isso ai, espero ter lhe ajudado,
Boa sorte!

Primeiro gostaria de agradecer pela ajuda e compreensão.
Fiz o que voce postou e deu um erro conforme segue;
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: /index.jsp(18,0) The value for the useBean class attribute classes.Teste is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1203)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1160)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2343)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2393)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2399)
org.apache.jasper.compiler.Node$Root.accept(Node.java:489)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2343)
org.apache.jasper.compiler.Generator.generate(Generator.java:3365)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:315)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.

Será que pode me ajudar?
Me diz uma coisa via na jsp que voce usa o comando "jsp:usebean" tenho que criar alguma classe Bean?
Obrigado!!!!!

g4j

Opa, pela mensagem de erro me parece que não existe a classe “Teste” no pacote classes:

Você tem que possuir uma classe parecida com isso:

package classes;
public class Teste {
    //... atributos
}

confira ai…

R

g4j:
Opa, pela mensagem de erro me parece que não existe a classe “Teste” no pacote classes:

Você tem que possuir uma classe parecida com isso:

package classes;
public class Teste {
    //... atributos
}

confira ai…

Funcionou, funconou!!!
Valeu
Obrigado.
Vou tentar fazer via Servlet agora, pois no trabalho tenho que segui o MVC, e a jsp não pode acessar a classe diretamente, vou ver se consigo seguindo o mesmo principio.
Muito obrigado mesmo.

g4j

Legal,

Se quiser, dê uma olhada neste tópico: http://www.guj.com.br/posts/list/55367.java

V

Oi pessoal, um colega me mandou um codigo para login e carrinho de compras, a duvida é: Gostaria de saber
em qual lugar eu coloco estes arquivos??? Tenho que criar um pacote para inserir eles dentro??? Estes 3 arquivos
vieram juntos numa pasta chamada libDB. É porque eu sou novo no JAVA.Ahh estou utilizando o netbeans.

Database.jsp


<%@ page import="java.sql.*" %>

<%
String DRIVER  = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String URL     = "jdbc:microsoft:sqlserver://localhost:1433";
String USUARIO = "root";
String SENHA   = "rodrigo";
%>



GetConnection.jsp

<%@ page import="java.sql.*" %>

<%
String DRIVER  = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String URL     = "jdbc:microsoft:sqlserver://localhost:1433";
String USUARIO = "root";
String SENHA   = "rodrigo";
%>




LoadDriver.jsp
<%@ include file="Database.jsp" %>

<%
try {
  Class.forName( DRIVER );
} catch ( ClassNotFoundException cnfe ) {
  String msg = "Driver JDBC não encontrado : " + cnfe.getMessage();
  throw new Exception(msg);
}
%>

Os meus outros arquivos estão tudo ok, somente estes tres que vieram juntos dentro de uma pasta
chamada libDB que eu não estou sabendo onde iseri-los. Se alguem puder dar uma força aí.

Obrigado.

V

Oi pessoal, um colega me mandou um codigo para login e carrinho de compras, a duvida é: Gostaria de saber
em qual lugar eu coloco estes arquivos??? Tenho que criar um pacote para inserir eles dentro??? Estes 3 arquivos
vieram juntos numa pasta chamada libDB. É porque eu sou novo no JAVA.Ahh estou utilizando o netbeans.

Database.jsp


&lt;%@ page import="java.sql.*" %&gt;

&lt;%
String DRIVER  = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String URL     = "jdbc:microsoft:sqlserver://localhost:1433";
String USUARIO = "root";
String SENHA   = "rodrigo";
%&gt;



GetConnection.jsp

&lt;%@ page import="java.sql.*" %&gt;

&lt;%
String DRIVER  = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String URL     = "jdbc:microsoft:sqlserver://localhost:1433";
String USUARIO = "root";
String SENHA   = "rodrigo";
%&gt;




LoadDriver.jsp
&lt;%@ include file="Database.jsp" %&gt;

&lt;%
try {
  Class.forName( DRIVER );
} catch ( ClassNotFoundException cnfe ) {
  String msg = "Driver JDBC não encontrado : " + cnfe.getMessage();
  throw new Exception(msg);
}
%&gt;

Os meus outros arquivos estão tudo ok, somente estes tres que vieram juntos dentro de uma pasta
chamada libDB que eu não estou sabendo onde iseri-los. Se alguem puder dar uma força aí.

Obrigado.

Criado 17 de abril de 2009
Ultima resposta 22 de abr. de 2009
Respostas 22
Participantes 5