Oi Carlos Lorenz,

Desculpe não poder te dar muita atenção porque estou ralando muito e
lutando contra o tempo. Mas vamos lá:

Há muito tempo pesquisei o assunto da ligação HTML com Applets Java
usando o Javascript como intermediário. Para isto vc precisa utilizar o
recurso de LiveConnect criado pela Netscape e posteriormente endossado
pelo Internet Explorer. Até onde eu sei, apenas estes dois Browsers
reconhecem esta ligação pois possuem nas suas bibliotecas o pacote
"netscape.javascript.*" .

Sofri muito com as incompatibilidades entre o Netscape e o Iexplorer e
já comentei isto nesta lista. Enquanto que no IExplorer tudo funcionava
perfeitamente, o modelo de Segurança do Netscape, por ser mais rígido,
dificultava as coisas. Vou mencionar algumas dicas que poderão lhe
orientar:

1) Na definição dos objetos do applet se limite a utilizar o objeto
"win". Acessar o "form" ou os "elements" de um "form" era impossível com
o Netscape e possível com o Iexplorer. Com o objeto "win" vc pode
invocar o método "eval" do tipo:

win.eval("alert('Voce deseja realmente excluir?');");
ou invocar funções do Javascript passando argumentos ou não;

2) A Etiqueta do Applet deve conter OBRIGATÓRIAMENTE  o argumento
MAYSCRIPT, conforme abaixo. Desta maneira vc está autorizando a
comunicação Applet -> Javascript. Para o caminho inverso este parâmetro
é opcional. 

<APPLET NAME="Apt001" CODEBASE="/servlet/Apoio/Apt" CODE="Apt001.class"
WIDTH="10" HEIGHT="10" ALIGN="BOTTOM" "MAYSCRIPT"></APPLET>

3) Condiçào Básica: Todas as VARIÁVEIS e MÉTODOS do Applet que vc deseja
acessar precisam ser públicos (PUBLIC);

4) Estabeleça um nome (NAME) para o seu Applet conforme exemplo acima;

5) Para invocar um método do Applet vc pode fazer como o exemplo abaixo:

function chkForm() {
if((document.forms[0].elements["txt_logon"].value=="") ||
(document.forms[0].elements["txt_senha"].value=="")) {
  alert("Informe o Logon e a Senha de Acesso!");
  return false;
  }
document.forms[0].elements["txt_senha"].value=document.applets[0].Altera
_Senha(document.forms[0].elements["txt_senha"].value);
}

ou, nomeando o Applet:

document.forms[0].elements["txt_senha"].value=document.applets["Apt001"]
.Altera_Senha(document.forms[0].elements["txt_senha"].value);


Listagem Exemplo de um Applet com LiveConnect:

import java.awt.*;
import java.applet.*;
import netscape.javascript.*;

public class Apt001 extends Applet {
  
  public JSObject win;

 public void init() {
                try {
                  win  = JSObject.getWindow(this);
                }
        catch(Exception e) {
                }
this.setLocation(new Point(0,0));
this.setSize(1,1);
this.setBackground(Color.white);
  }

}


Espero ter ajudado,

[]'s

Carlos Campos


> ----- Mensagem original -----
> De:           clorenz [SMTP:[EMAIL PROTECTED]]
> Enviada em:           Quarta-feira, 22 de Dezembro de 1999 13:22
> Para:         Carlos Campos
> Assunto:              Re: [SouJava-J] Chamando Servlets através de
> Applets
> 
> Carlos,
> 
> será que vc poderia me dar um tempinho?
> 
> preciso entender porque um método de um simples Applet não consigo
> chamar
> via Javascript em algumas versões de browsers e outras sim
> 
> poderia me dar uma luz?
> 
> Abraço
> 
> Carlos
> -----Mensagem original-----
> De: Carlos Campos <[EMAIL PROTECTED]>
> Para: '[EMAIL PROTECTED]' <[EMAIL PROTECTED]>
> Cc: 'Lista Java BR' <[EMAIL PROTECTED]>
> Data: Quarta-feira, 22 de Dezembro de 1999 11:12
> Assunto: RES: [SouJava-J] Chamando Servlets através de Applets
> 
> 
> >Prezados Javaneses,
> >
> >Fui socorrer o Charles sobre o método POST e acabei obtendo uma ótima
> >resposta pela CULATRA:
> >
> >O artigo citado abaixo pelo Luis Fernando respondeu ao meu problema.
> Ou
> >seja, através da serialização de objetos posso estabelecer uma
> >comunicação do meu Applet com o Servlet em duas vias
> >(Input/OutputStream).
> >
> >Desta forma posso passar qualquer objeto para o Servlet, consultar
> meu
> >Banco de Dados diretamente do Applet e manter o foco sobre o meu
> >formulário HTML tranquilamente.
> >
> >Melhor, posso criar um Servlet parrudo para cada determinado Sistema,
> >que receba um parâmetro redirecionador sendo capaz de realizar
> diversas
> >funções de apoio para os meus Applets sem a necessidade,
> aparentemente,
> >de recorrer ao RMI.
> >
> >Ainda não testei, mas se funcionar como no exemplo citado: VALEU
> MUITO
> >Luis Fernando!!!
> >
> >[]'s
> >
> >E um Feliz Natal à Todos!
> >
> >Carlos Campos
> >
> >> ----- Mensagem original -----
> >> De: Luis Fernando [SMTP:[EMAIL PROTECTED]]
> >> Enviada em: Terça-feira, 21 de Dezembro de 1999 20:19
> >> Para: [EMAIL PROTECTED]
> >> Assunto: Re: [SouJava-J] Chamando Servlets através de
> >> Applets
> >>
> >>
> >>
> >>
> >> From: "Charles Pereira" <[EMAIL PROTECTED]>
> >> Reply-To: [EMAIL PROTECTED]
> >> To: "JAVA-SouJava" <[EMAIL PROTECTED]>
> >> Subject: [SouJava-J] Chamando Servlets através de Applets
> >> Date: Tue, 21 Dec 1999 15:47:02 -0200
> >>
> >> Olá pessoal!
> >>
> >> É possível substituir um formulário HTML por uma Applet para ativar
> um
> >> Servlet e passar parâmetros simulando o método POST ?
> >>
> >> Obrigado,
> >>
> >>
> >>
> >> Charles
> >>
> >> Oi Charles,
> >>
> >> Eh sim. Eh possivel.Voce faz isso atraves de HTTP Tunneling que eh
> um
> >> metodo
> >> usado para se ler objetos serializados usando uma conexao http.
> >> Uma primeira classe define o objeto. A applet manda esse objeto com
> >> seus
> >> parametros para o servlet atraves de uma ObjectOutputStream.
> >> O servlet os recebe atraves de uma ObjectInputStream.
> >>
> >> Voce teria entao algo do tipo:
> >>
> >> A)Primeiro uma classe que define o seu objeto a ser serializado.
> >> public class MyObject implements Serializable{...
> >>
> >> B)A applet que passarah o objeto ao servlet
> >> public class ObjectApplet extends JApplet{...
> >>
> >> C)O arquivo do servlet
> >> public class ObjectServlet extends HttpServlet{..
> >>
> >> O endereço abaixo contem um artigo que discute  o tema
> >> Applet X Servlets e tambem possui alguns exemplos de codigo sobre
> >> o assunto.
> >>
> >>
> >> http://www.j-nine.com/pubs/applet2servlet/index.htm
> >>
> >> Importante:
> >> Nao se esqueça que ao testar os programas os arquivos da Applet tem
> >> que serem colocados no provedor(jswdk, a velha estoria, uma applet
> >> so funciona quando executada a partir do mesmo provedor que a
> >> originou, caso
> >> contrario se obtem erros de segurança.), e nao se esqueca de ter os
> >> arquivos
> >> Myobject.class e ObjectApplet.class tambem
> >> devem estar no  mesmo diretorio que o arquivo ObjectApplet.html,
> caso
> >> contrario o browser nao conseguirah criar uma instancia das classes
> >> para
> >> execucao.
> >> Talvez voce tambem precise do arquivo swingall.jar nesse mesmo
> >> diretorio,
> >> caso voce opte em usar  swing. Funciona perfeitamente sem,
> >> pois Object serialization eh uma feature da vesao jdk1.1.
> >>
> >> O arquivo do servlet, como voce jah sabe, vai no diretorio de
> sempre
> >> http://localhost:8080/servlet/ObjectServlet.
> >>
> >> Espero que a dica te ajude,
> >> Boa sorte,
> >> Luis Fernando.
> >>
> >>
> >>
> >>      --------------------------- LISTA SOUJAVA
> >> ---------------------------
> >>      http://www.soujava.org.br  -  Sociedade de Usuários Java da
> >> Sucesu-SP
> >>      [para sair da lista:
> >> http://www.soujava.org.br/forum/cadastrados.htm]
> >>
> >>
> ---------------------------------------------------------------------
> >>
> >>
> >> ______________________________________________________
> >> Get Your Private, Free Email at http://www.hotmail.com
> >>
> >>     --------------------------- LISTA SOUJAVA
> >> ---------------------------
> >>     http://www.soujava.org.br  -  Sociedade de Usuários Java da
> >> Sucesu-SP
> >>     [para sair da lista:
> >> http://www.soujava.org.br/forum/cadastrados.htm]
> >>
> >>
> ---------------------------------------------------------------------
> >* Para não receber mais e-mails desta lista envie um e-mail para
> [[EMAIL PROTECTED]]
> >e no corpo do email escreva [unsubscribe <seu-email>]
> >Veja as mensagens antigas em
> http://www.mail-archive.com/javabr%40cits.br/
> >

    --------------------------- LISTA SOUJAVA ---------------------------
    http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
    [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
    ---------------------------------------------------------------------

Responder a