<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Horizontes Digitais &#187; Java</title>
	<atom:link href="http://horizontesdigitais.com/category/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://horizontesdigitais.com</link>
	<description>Desenvolvimento, Segurança e Negócios</description>
	<lastBuildDate>Sat, 24 Jul 2010 20:34:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Java + JavaScript + JavaServerFaces(JSF)</title>
		<link>http://horizontesdigitais.com/2008/06/16/java-javascript-javaserverfacesjsf/</link>
		<comments>http://horizontesdigitais.com/2008/06/16/java-javascript-javaserverfacesjsf/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 19:29:48 +0000</pubDate>
		<dc:creator>Felipe Thomas</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/06/16/java-javascript-javaserverfacesjsf/</guid>
		<description><![CDATA[Caro amigo leitor, gostaria de fazer-lhe uma simples pergunta? É possível desenvolvermos uma aplicação que contenha uma classe Java e essa classe comunique-se com um browser? Sabemos que esses dois itens(classe Java e browser) estão relacionados a tipos de propósitos diferentes, mas&#8230; gostaria de conceder a boa notícia. Sim, é possível fazermos essa comunicação entre [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Caro amigo leitor, gostaria de fazer-lhe uma simples pergunta? É possível desenvolvermos uma aplicação que contenha uma classe Java e essa classe comunique-se com um browser? Sabemos que esses dois itens(classe Java e browser) estão relacionados a tipos de propósitos diferentes, mas&#8230; gostaria de conceder a boa notícia. Sim, é possível fazermos essa comunicação entre uma classe Java e um browser usando Applet(classe Java) e JavaScript(linguagem utilizada pelo browser).</p>
<p align="justify">&nbsp;</p>
<p align="justify">O melhor de tudo isso é que não é complicado a ponto de fazer pessoas desistirem de utilizar este recurso. Na verdade é muito simples. Para começar crie seu projeto web(dynamic web do Eclipse), o qual sugiro com o nome <strong><u>Java-JavaScript</u></strong>. Após ter criado o projeto, faça o download de um arquivo .jar que será fundamental para que nossa aplicação funcione com sucesso, o nome do arquivo é JSObject.jar, ele pode ser encontrado bem facilmente pela internet(o que seria de nós sem o google). Feito isso, coloque o JSObject.jar dentro do seu classpath. Pronto já temos todos os .jar de que precisamos!!</p>
<p align="justify"><span id="more-72"></span></p>
<p align="justify">&nbsp;</p>
<p align="justify">Bem, agora vamos desenvolver o código da nossa aplicação. Primeiro crie sua classe Applet dentro da pasta <strong>src</strong> que por sua vez esta dentro do seu projeto. Nessa classe Applet teremos um método chamado <strong>init()</strong> e nós o utilizaremos para testar nossa comunicação com o browser através de JavaScript. Só para tirar qualquer dúvida que possa surgir, o método <strong>init()</strong> é lido na primeira vez que o applet é carregado em memória(se você ainda assim não entendeu, a grosso modo, o método <strong>init()</strong> é<strong> </strong>lido quando você aciona o applet). Faça também o import do pacote de classes que iremos utilizar no nosso Applet: <strong>import netscape.javascript.*;</strong></p>
<p align="justify">&nbsp;</p>
<p align="justify">Não se preocupe, irei colocar um exemplo dessa classe aqui para você:</p>
<p><strong>import</strong> javax.swing.JApplet;</p>
<p><strong>import</strong> netscape.javascript.*;</p>
<p><strong>public</strong> <strong>class</strong> JavaJS <strong>extends</strong> JApplet {</p>
<p>//Método iniciado quando o Applet é executado.</p>
<p><strong>public</strong> <strong>void</strong> init() {</p>
<p>JSObject.<em>getWindow</em>(<strong>this</strong>).eval(&#8220;alert(\&#8221;Saudações       Javanesas!\&#8221;)&#8221;);</p>
<p>JSObject win = JSObject.<em>getWindow</em>(<strong>this</strong>);</p>
<p>String[] args = {&#8220;Saudações Javanesas!&#8221;};</p>
<p>win.call(&#8220;alert&#8221;, args);</p>
<p>}</p>
<p>}</p>
<p align="justify">Perceba que dentro do nosso método <strong>init()</strong>, temos dois blocos de código. O primeiro faz exatamente o que o segundo faz, só que com a referência ao objeto <strong>win</strong> nós poderíamos realizar mais tarefas. No primeiro bloco de código dentro do método init(), teremos uma janela do tipo <strong>alert</strong> que será aberta quando o applet for iniciado, assim como no segundo bloco.</p>
<p align="justify">Agora, já que nosso Applet foi criado com sucesso, vamos empacotá-lo em um .jar e colocá-lo dentro de WebRoot do projeto criado pelo Eclipse. Para isso basta você clicar com o botão direito do mouse em cima do nome do seu projeto e escolher a opção <strong>Exportar&#8230;</strong> Não esqueça de colocá-lo dentro do diretório WebRoot(é o nome da pasta) do seu projeto. Se o seu browser não estiver reconhecendo a classe do seu Applet, então você precisará assiná-lo e para saber como fazer isto, consulte um outro tutorial feito por mim mesmo aqui no <u>horizontesdigitais.com</u> com o titulo de <strong>Assinatura de Applet</strong>.</p>
<p align="justify">&nbsp;</p>
<p align="justify">Vamos criar agora nossa página com conteúdo JSF. A título de maior praticidade, vou colocar o código de exemplo logo abaixo. Não esqueça que para utilizar JSF você precisa do framework JSF. Caso você não tenha, basta baixar a versão mais recente e colocar os .jar do framework no seu classpath. Quem usa MyEclipse ainda pode ter a vantagem dele fazer isso mais praticamente, basta clicar com o botão direito do mouse em cima do nome do projeto e escolher a opção <strong>MyEclipse&#8230;</strong> e depois a opção <strong>Add JSF Capabilities</strong>.</p>
<p align="justify">&nbsp;</p>
<p align="justify">Bem, segue o exemplo do conteúdo do arquivo com tags JSF. Coloque-o no arquivo <strong>index.jsp</strong>:</p>
<p>&lt;%@ taglib uri=&#8221;http://java.sun.com/jsf/core&#8221; prefix=&#8221;f&#8221; %&gt;</p>
<p>&lt;%@ taglib uri=&#8221;http://java.sun.com/jsf/html&#8221; prefix=&#8221;h&#8221; %&gt;</p>
<p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</p>
<p>&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&gt;</p>
<p>&lt;head&gt;</p>
<p>&lt;meta http-equiv=&#8221;Content-Type&#8221;</p>
<p>content=&#8221;text/html; charset=iso-8859-1&#8243; /&gt;</p>
<p>&lt;title&gt;Materia feita por Felipe Thomas&lt;/title&gt;</p>
<p>&lt;/head&gt;</p>
<p>&lt;f:view&gt;</p>
<p>&lt;body&gt;</p>
<p>&lt;f:verbatim&gt;</p>
<p>&lt;jsp:plugin type=&#8221;applet&#8221;</p>
<p>archive=&#8221;JavaJS.jar&#8221;</p>
<p>code=&#8221;JavaJS.class&#8221; codebase=&#8221;.&#8221;</p>
<p>width=&#8221;480&#8243; height=&#8221;224&#8243; jreversion=&#8221;1.6&#8243;&gt;</p>
<p>&lt;jsp:params&gt;</p>
<p>&lt;jsp:param name=&#8221;MAYSCRIPT&#8221; value=&#8221;TRUE&#8221; /&gt;</p>
<p>&lt;/jsp:params&gt;</p>
<p>&lt;/jsp:plugin&gt;</p>
<p>&lt;/f:verbatim&gt;</p>
<p>&lt;/body&gt;</p>
<p>&lt;/f:view&gt;</p>
<p>&lt;/html&gt;</p>
<p align="justify">Nesse código temos algumas tags importantes para o bom funcionamento da nossa aplicação:</p>
<p>archive=&#8221;JavaJS.jar&#8221; É o nome do arquivo que você criou empacotando o Applet</p>
<p>code=&#8221;JavaJS.class&#8221; É o nome da sua classe + extensão .class . Note que os nomes dos que eu criei são os mesmos, mas isso não necessita ser desta forma. Se você tiver criado a classe dentro de um pacote, você DEVE colocar o nome completo do pacote aqui também.</p>
<p>codebase=&#8221;.&#8221; É o local onde se encontra-se o .jar .</p>
<p>&lt;jsp:param name=&#8221;MAYSCRIPT&#8221; value=&#8221;TRUE&#8221; /&gt; Essa tag é o que habilita a comunição entre applet e browser. Aqui você está dizendo “meu browser, você pode aceitar que um applet comunique-se com você através de JavaScript ok!!!”.</p>
<p align="justify">Tendo este código, precisamos ter no web.xml configurado adequadamente. Portanto segue o código correto:</p>
<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;</p>
<p>&lt;web-app xmlns=&#8221;http://java.sun.com/xml/ns/javaee&#8221; xmlns:xsi=&#8221;http://www.w3.org/2001/XMLSchema-instance&#8221; version=&#8221;2.5&#8243; xsi:schemaLocation=&#8221;http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&#8221;&gt;</p>
<p>&lt;context-param&gt;</p>
<p>&lt;param-name&gt;javax.faces.CONFIG_FILES&lt;/param-name&gt;</p>
<p>&lt;param-value&gt;/WEB-INF/faces-config.xml&lt;/param-value&gt;</p>
<p>&lt;/context-param&gt;</p>
<p>&lt;servlet&gt;</p>
<p>&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;</p>
<p>&lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;</p>
<p>&lt;load-on-startup&gt;0&lt;/load-on-startup&gt;</p>
<p>&lt;/servlet&gt;</p>
<p>&lt;servlet-mapping&gt;</p>
<p>&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;</p>
<p>&lt;url-pattern&gt;/faces/*&lt;/url-pattern&gt;</p>
<p>&lt;/servlet-mapping&gt;</p>
<p>&lt;welcome-file-list&gt;</p>
<p>&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;</p>
<p>&lt;/welcome-file-list&gt;</p>
<p>&lt;/web-app&gt;</p>
<p align="justify">&nbsp;</p>
<p align="justify">A comunicação também pode ser feita do JavaScript para o applet. O JavaScript pode fazer uma instância de um applet e usá-lo para comunicação. Deixaremos isto para um próximo tutorial ou caso algum leitor tenha interesse, basta solicitar que iremos atendê-lo o mais brevemente possível.</p>
<p align="justify">Pronto!!!</p>
<p align="justify">Agora, acione o tomcat(já pode ser usado o Tomcat 6), faça o deploy da sua aplicação, abra o browser(pode ser Firefox, Interner Explorer, Netscape &#8230;), digite a seguinte URL:</p>
<p><a href="http://localhost:8080/Java-JavaScript/faces/index.jsp"><strong>http://localhost:8080/Java-JavaScript/faces/index.jsp</strong></a></p>
<p>E divirta-se bastante, por que você é jovem, êÊêÊêÊêÊêÊêÊêÊêÊêÊêÊêÊêÊ.</p>
<p>Muito obrigado&#8230;&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/06/16/java-javascript-javaserverfacesjsf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Criando e configurando seu primeiro projeto web no MyEclipse</title>
		<link>http://horizontesdigitais.com/2008/06/16/criando-e-configurando-seu-primeiro-projeto-web-no-myeclipse/</link>
		<comments>http://horizontesdigitais.com/2008/06/16/criando-e-configurando-seu-primeiro-projeto-web-no-myeclipse/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 19:21:23 +0000</pubDate>
		<dc:creator>Felipe Thomas</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/06/16/criando-e-configurando-seu-primeiro-projeto-web-no-myeclipse/</guid>
		<description><![CDATA[Este artigo tem como alvo principal aqueles desenvolvedores que estão engatinhando no mundo do desenvolvimento de softwares ou até mesmo aqueles que já programam, mas não têm tanta afinidade com a ferramenta, que no caso é o MyEclipse. Pra quem não tem MyEclipse, os passos de configuração servem também para o Eclipse e até mesmo [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Este artigo tem como alvo principal aqueles desenvolvedores que estão engatinhando no mundo do desenvolvimento de softwares ou até mesmo aqueles que já programam, mas não têm tanta afinidade com a ferramenta, que no caso é o MyEclipse. Pra quem não tem MyEclipse, os passos de configuração servem também para o Eclipse e até mesmo para outras ferramentas similares como NetBeans entre outras.</p>
<p align="justify">&nbsp;</p>
<p align="justify">Começamos indo ao Menu <strong>File</strong> item <strong>New</strong> opção <strong>Project&#8230;</strong> Conforme pode ser visto na figura abaixo:</p>
<p><a href="http://horizontesdigitais.com/files/2008/06/imagem011.JPG" title="imagem011.JPG"><img src="http://horizontesdigitais.com/files/2008/06/imagem011.JPG" alt="imagem011.JPG" border="0" height="200" width="530" /></a></p>
<p align="justify"><span id="more-64"></span></p>
<p align="justify">Vá então até o diretório MyEclipse e escolha a opção <strong>Web Project</strong>. No Eclipse esta opção chama-se <strong>Dynamic Web Project</strong> ou algo similar. As duas opções representam a mesma idéia. Veja a figura abaixo:</p>
<p><a href="http://horizontesdigitais.com/files/2008/06/imagem02.JPG" title="imagem02.JPG"><img src="http://horizontesdigitais.com/files/2008/06/imagem02.JPG" alt="imagem02.JPG" border="0" height="434" width="530" /></a></p>
<p align="justify">Dê um click em <strong>Next &gt;</strong>. Aparecerá algo semelhante a seguinte figura:</p>
<p><a href="http://horizontesdigitais.com/files/2008/06/imagem03.JPG" title="imagem03.JPG"><img src="http://horizontesdigitais.com/files/2008/06/imagem03.JPG" alt="imagem03.JPG" border="0" height="335" width="530" /></a></p>
<p align="justify">Dê um nome ao seu projeto. Neste exemplo o nome dado ao projeto foi <strong>MeuProjetoWeb</strong> e também escolhemos a opção de trabalhar com a <strong>Java EE 5.0</strong>. Depois disso, click em <strong>Finish</strong>. Pronto! Seu projeto web está criado. O diretório <strong>WebRoot</strong> (que você pode escolher outro nome) é o local onde serão colocados os arquivos do seu projeto, como por exemplo, as páginas .jsp, .xhtml, .html, dependendo do framework que você for utilizar para desenvolver este projeto e também é o diretório que será lançado (colocado) dentro do diretório webapps do tomcat, porém com o nome do projeto. Dentro de WebRoot ainda encontramos dois diretórios chamados <strong>META-INF </strong>e<strong> WEB-INF</strong> e dentro deste último ainda temos a pasta <strong>lib</strong>. Na pasta lib ficarão os .jar que iremos utilizar em nosso projeto. Todo o conteúdo do diretório de WEB-INF não é acessado pelo do Container (Tomcat é o mais famoso). Temos também um diretório chamado <strong>src</strong> onde serão colocados nossos arquivos-fonte cujos ponto .class serão colocados dentro de uma pasta chamada <strong>classes</strong> localizada dentro de WEB-INF (muitas vezes esta pasta não é visível no projeto do MyEclipse ou Eclipse, mas se você for no seu workspace e verificar dentro de seu projeto no diretório WebRoot &gt; WEB-INF verá que existe uma pasta chamada classes).</p>
<p align="justify">&nbsp;</p>
<p align="justify">Depois de criado o seu projeto, você pode configurá-lo conforme sua necessidade. Por exemplo, você pode adicionar arquivos .jar que precisará na construção de sua aplicação. Vamos fazer um exemplo.</p>
<p align="justify">&nbsp;</p>
<p align="justify">Dê um click com o botão direito do mouse em cima do nome do seu projeto. Escolha <strong>Build Path</strong>. Em seguida escolha a opção <strong>Configure Build Path</strong>. Veja a figura a seguir:</p>
<p><a href="http://horizontesdigitais.com/files/2008/06/imagem04.JPG" title="imagem04.JPG"><img src="http://horizontesdigitais.com/files/2008/06/imagem04.JPG" alt="imagem04.JPG" border="0" height="410" width="530" /></a></p>
<p align="justify">Na tela seguinte, aparecerá a janela onde você pode configurar o seu projeto. Normalmente é comum os desenvolvedores chamar isso de <strong>Configuração de classpath</strong>. Muito comumente você vai ouvir pessoas falando: “<em>coloca o sei_la.jar no teu classpath</em>” ou “<em>configura o teu classpath</em>” o que significa dizer que você deve fazer isto que estamos aprendendo agora. Nesta tela selecione a aba <strong>Libraries</strong>, onde aparecerão as bilbiotecas que você está usando. Ao lado direito, você verá um lista de botões onde você pode clicar e adicionar JARs que estão dentro deste workspace, adicionar JARs que estão externos, ou seja, fora do workspace, e até mesmo adicionar suas próprias bibliotecas. Vamos aqui escolher a opção <strong>Add External JARs&#8230;</strong> Vá até a pasta do seu MyEclipse ou Eclispe. Talvez sua árvore de diretórios esteja igual a minha: <strong>C:\Arquivos de programas\MyEclipse 6.0.</strong> Depois entre na pasta <strong>eclipse</strong> e depois <strong>plugins</strong>. Aqui contém alguns jars que já são utilizados pelo MyEclipse. Vamos pegar o <strong>javax.servlet.jsp</strong>. Selecione ele e click em <strong>Abrir</strong>. Veja que agora ele faz parte do seu projeto. Mas atenção!!! O que nós acabamos de fazer foi apenas dizer ao nosso classpath onde se encontra este arquivo .jar, ou seja, demos o caminho. Mas imagine que você vai copiar seu projeto para outro computador e lá não tem a mesma estrutura de árvore que o seu computador tem. Dica: coloque seu arquivos ponto .jar dentro da pasta <strong>MeuProjetoWeb\WebRoot\WEB-INF\lib</strong>, quando você trocar de local, o projeto que você copiou, levará os .jar juntamente com ele. Veja a figura a seguir:</p>
<p><a href="http://horizontesdigitais.com/files/2008/06/imagem052.JPG" title="imagem052.JPG"><img src="http://horizontesdigitais.com/files/2008/06/imagem052.JPG" alt="imagem052.JPG" border="0" height="200" width="530" /></a></p>
<h4><font color="#4189bd">Conclusão</font></h4>
<p>Este tutorial fornece informações sobre como criar um projeto Web e configurar seu classpath. Muitas pessoas sentem dificuldade com relação a este assunto quando estão iniciando, mas como podemos ver, é bastante simples configurar um projeto.</p>
<p align="justify">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/06/16/criando-e-configurando-seu-primeiro-projeto-web-no-myeclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Assinatura de Applet</title>
		<link>http://horizontesdigitais.com/2008/05/24/assinatura-de-applet/</link>
		<comments>http://horizontesdigitais.com/2008/05/24/assinatura-de-applet/#comments</comments>
		<pubDate>Sat, 24 May 2008 03:54:57 +0000</pubDate>
		<dc:creator>Felipe Thomas</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Software Livre]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/05/24/assinatura-de-applet/</guid>
		<description><![CDATA[O modelo de segurança implementado pela plataforma Java, na sua proposição inicial, é centrada sobre o conceito de sandbox (caixa de areia). De acordo com o modelo sandbox, um código remoto (applet) não é confiável e pode acessar recursos limitados, fornecidos dentro do sandbox, uma área do Servidor Web dedicado àquele applet. A idéia de [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">O modelo de segurança implementado pela plataforma Java, na sua proposição inicial, é centrada sobre o conceito de <strong><em>sandbox</em></strong> (caixa de areia). De acordo com o modelo <em>sandbox,</em> um código remoto (<em>applet</em>) não é confiável e pode acessar recursos limitados, fornecidos dentro do <em>sandbox</em>, uma área do Servidor Web dedicado àquele <em>applet</em>. A idéia de sandbox foi desenvolvida no sentido de garantir que mesmo que um usuário carregue um <em>applet</em> malicioso, esse não pode danificar a máquina local, por exemplo, apagar um arquivo do seu disco local.Porém existem <em>applets</em> que são de confiança e necessitam sair do <em>sandbox</em> para fornecer um determinado serviço. Existem varias maneiras para resolver este problema, uma delas é a <strong>assinatura</strong><em> </em><strong>do <em>applet</em></strong>. O JDK 1.1.x introduziu o conceito de <strong><em>applet</em> assinado</strong>. Neste modelo estendido, um <em>applet </em>assinado digitalmente é tratado como código local confiável (aplicação <em>standalone</em>) se a assinatura é reconhecida como confiável pelo sistema que recebeu o <em>applet</em>. Entretanto no JDK 1.2.x, o <em>applet</em> assinado terá liberdades conforme especificado por um arquivo de política (<em>policy file</em>). Utilizou-se neste trabalho para o processo de assinatura e verificação do <strong><em>Applet</em> Cliente</strong> a versão JDK 1.2.1.</p>
<p align="justify"><span id="more-55"></span></p>
<p align="justify">Assinatura digital é utilizada quando se necessita da certeza da origem de uma mensagem como se fosse uma assinatura escrita no papel. Para assinar um applet, o desenvolvedor empacota todo o código Java e arquivos relacionados dentro de um arquivo JAR (<strong><em>J</em>ava ARchive</strong>), que é um formato de arquivo de compactação de propósito geral, usado para compactar os componentes de uma aplicação Java. A plataforma Java assina e verifica arquivos JAR usando um par de chaves (chave pública e chave privada). A <strong>chave privada</strong> funciona como uma &#8220;caneta&#8221; eletrônica que <strong>assina</strong> o arquivo (ver Figura 1). Como o próprio nome sugere, esta chave só é conhecida pelo assinante do <em>applet</em>. O processo de <strong>verificação</strong> da assinatura pode ser feito por qualquer pessoa que possua a <strong>chave pública</strong> correspondente a chave que assinou o arquivo.</p>
<p align="justify"><a href="http://horizontesdigitais.com/files/2008/05/postapplet1.jpg" title="postapplet1.jpg"><img src="http://horizontesdigitais.com/files/2008/05/postapplet1.jpg" alt="postapplet1.jpg" align="middle" border="0" height="200" width="530" /></a></p>
<p align="left"><strong>                                    Figura 1 – Processo de assinatura</strong></p>
<p align="justify">A chave pública é distribuída dentro de um <strong>certificado</strong> que é uma declaração assinada por uma entidade idônea, chamada <strong>Autoridade de Certificação</strong> (<em>Certification Authority</em>- <strong>CA</strong>), que confirma que a chave pública que está no mesmo é confiável. Existem várias Autoridades de Certificação, por exemplo, a <em>VeriSign</em>, <em>Thawte</em>, <em>Entrust</em> e <em>Certisign </em>(empresa brasileira). Toda CA requer um emissor para validar a sua identidade, até mesmo a de mais alto nível. Para estes casos, existem os certificados auto-assinados (<em>self-signed</em>), onde o emissor do certificado é o próprio sujeito.Os <em>browsers</em> <em>Netscape</em> e <em>Internet</em> <em>Explorer</em> (<em>IE</em>) não usam a codificação de assinatura do JDK. Existem basicamente três tipos diferentes de assinatura de <em>applets</em>, para o <em>IE</em>, para o <em>Netscape</em>, e para o <em>plug-in Java da Sun</em>. Este último fornece aos <em>browsers</em> citados acima a capacidade de utilizar applets assinados através da <em>Java Security API </em>do kit JDK.Algumas ferramentas necessárias para a assinatura, seguindo o padrão da <em>Sun</em>, encontram-se no <em>JDK 1.2</em>, são elas:</p>
<ul>
<li>
<p align="justify"><em>Jar (JAR Creation Tool)</em></p>
</li>
<li>
<p align="justify"><em>Keytool</em> (<em>Key and Certificate Management Tool</em>)</p>
</li>
<li>
<p align="justify"><em>Jarsigner </em>(<em>JAR Signing and Verification Tool</em>)</p>
</li>
<li>
<p align="justify"><em>PolicyTool</em> (<em>Policy File Creation and Management Tool</em>)</p>
</li>
</ul>
<p align="justify">Para uma melhor compreensão, encontra-se descritos a seguir os passos utilizados no processo de assinatura e verificação do AppletClient.</p>
<p><strong><font color="#4b73b4">Quais são os passos para assinar um Applet?</font></strong></p>
<p>Os passos para assinar um <em>Applet</em> estão representados na Figura 2:</p>
<p><img src="http://horizontesdigitais.com/files/2008/05/postapplet2.jpg" alt="postapplet2.jpg" border="0" height="220" width="530" /></p>
<p><strong>Figura 2 – Diagrama de blocos do processo de assinatura por parte                                    </strong><strong>               do desenvolvedor</strong></p>
<p><strong>1. </strong><strong>Criar o arquivo .jar</strong></p>
<p align="justify">Deve-se criar um arquivo JAR contendo o(s) arquivo(s) .class da Applet e todas as classes que serão utilizadas e que farão uso de recursos fora do s<em>andbox</em> conforme indicado no item 1 da Figura 2. É importante ressaltar que a ferramenta <strong>jarsigner</strong> somente assinará arquivos JAR criados pelo JDK, ou arquivos ZIP.Uma ferramenta utilizada para criação deste arquivo é o <em>jar</em> do JDK. Para criar um JAR contendo o arquivo MeuApplet.class, com o nome MeuJar.jar basta fazer:jar cvf MeuJar.jar MeuApplet.class</p>
<p align="justify">Você também pode utilizar o Eclipse ou MyEclipse para criar arquivos tipo .jar, onde o processo é bem simples: basta clicar com o botão direito do mouse sobre o arquivo que deseja empacotar em .jar e escolher a opção <strong>exportar</strong>.</p>
<p align="justify">2.  <strong>Gerar o par de chaves (pública e privada)</strong><strong> </strong>Este passo deve ser executado se ainda não houver um par de chaves a ser usado no processo de assinatura (ver item 2 da Figura 2). Para criar o par de chaves utiliza-se a ferramenta <em>keytool</em> do JDK. Simplificando, você pode fazer o seguinte:</p>
<p align="justify"><em>keytool -genkey -dname &#8220;cn=d377, ou=desenvolvimento, o=FelipeThomas, l=Fortaleza, c=BR&#8221; -alias key -keystore C:\Felipe -storepass 123456 -validity 180</em></p>
<p align="justify"><u>onde:</u><em> </em></p>
<p align="justify"><em>dname</em>: Nome da entidade que gerará o par de chaves. Siglas:</p>
<p><strong>CN = nome comum</strong></p>
<p><strong>OU = unidade organizacional (departamento, divisão)</strong></p>
<p><strong>O = nome da organização</strong></p>
<p><strong>L = nome da localidade (cidade)</strong></p>
<p><strong>S = estado, C = código do país.</strong></p>
<p><em>Keypass:</em> Senha utilizada para a proteção da chave no <em>keystore</em>.</p>
<p><em>Validity: </em>Número de dias que o certificado deve ser válido.</p>
<p><em>keystore</em>: local da sua máquina onde as chaves serão armazenadas.</p>
<p><em>Storepass: </em>Senha protetora do <em>keystore</em>.</p>
<p align="justify">Quando as chaves são geradas (comando –genkey) um certificado auto-assinado é criado. Caso deseje-se trocar este certificado por um certificado reconhecido por uma empresa confiável, deve-se fazer um pedido de certificado de assinatura (CSR <em>CerticateSigning Request</em>), e o resultado desta solicitação deve ser importado para o <em>keystore</em>.</p>
<p align="justify">3.  <strong>Assinar o arquivo JAR</strong></p>
<p align="justify">Deve-se assinar o arquivo JAR com a chave privada, para isto utiliza-se a ferramenta <em>jarsigner</em> do JDK, conforme esquematizado no item 3 da Figura 2. Antes de continuar certifique-se de que o arquivo que você assinará, esteja no mesmo diretório do arquivo que foi criado com as chaves. Isto facilitará seu trabalho. Para tal feito pode-se fazer o seguinte:</p>
<p align="justify"><em>jarsigner -keystore C:\Felipe -storepass 123456 –signedjar NomeDoJarDepoisDeAssinado.jar NomeDoJarAntesDeAssinar.jar key </em></p>
<p align="justify"><u>onde:</u></p>
<p align="justify"><em>keystore:</em> URL do <em>keystore</em> onde a chave está armazenada.</p>
<p align="justify"><em>storepass: </em>Senha protetora do <em>keystore</em>.</p>
<p align="justify"><em>signedjar:</em> Especifica o nome e o local de armazenamento do arquivo JAR assinado. Por <em>default,</em> o arquivo assinado irá sobrescrever o não assinado.</p>
<p align="justify">Estes passos são suficientes para que você consiga “liberar” teu applet para funcionar seguramente no seu browser. Alguns browsers não necessitam destas assinaturas, mas outras requerem. Sendo assim, é importante saber como proceder quando precisar assinar um applet.</p>
<p align="justify">Espero mais uma vez ter colaborado com seus conhecimento e auxiliado nas suas necessidades.</p>
<p>Obrigado e até o próximo.</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/05/24/assinatura-de-applet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configurando Banco de Dados Derby usando MyEclipse 5.5</title>
		<link>http://horizontesdigitais.com/2008/05/17/configurando-banco-de-dados-derby-usando-myeclipse-55/</link>
		<comments>http://horizontesdigitais.com/2008/05/17/configurando-banco-de-dados-derby-usando-myeclipse-55/#comments</comments>
		<pubDate>Sat, 17 May 2008 04:34:19 +0000</pubDate>
		<dc:creator>Felipe Thomas</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[Tutoriais]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/05/17/configurando-banco-de-dados-derby-usando-myeclipse-55/</guid>
		<description><![CDATA[Seja bem-vindo ao tutorial sobre Derby (banco de dados relacional desenvolvido em Java) utilizando MyEclipse 5.5. Este tutorial visa demonstrar que realizar a configuração do Derby utilizando MyEclipse 5.5 é bastante simples. Já usando Eclipse Europa não é tão trivial assim, pois ele precisará que você adicione alguns plugins nele. Caso haja necessidade, solicite um [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Seja bem-vindo ao tutorial sobre Derby (banco de dados relacional desenvolvido em Java) utilizando <a href="http://www.myeclipseide.com/module-htmlpages-display-pid-4.html" title="myeclipse">MyEclipse 5.5</a>.</p>
<p align="justify">Este tutorial visa demonstrar que realizar a configuração do Derby utilizando MyEclipse 5.5 é bastante simples. Já usando Eclipse Europa não é tão trivial assim, pois ele precisará que você adicione alguns plugins nele. Caso haja necessidade, solicite um tutorial sobre como configurar utilizando versões Eclipse, como por exemplo, Eclipse Europa. Neste, você aprenderá a iniciar o servidor Derby, conectá-lo ao banco de dados e configurá-lo de acordo com as suas necessidades. Posteriormente, exibiremos um tutorial que ensina como implementar um projeto web usando frameworks como struts, JSF e que utilizarão o Derby como banco de dados, ou seja, utilizaremos este tutorial.</p>
<p align="justify"><span id="more-49"></span></p>
<p align="justify">O Derby é uma parte do projeto Apache DB Project. Uma vantagem é que ele já vem dentro do MyEclipse, não necessitando fazer download de plugins e evitando que você faça configurações mais complicadas. Outras vantagem é que o mesmo pode ser encapsulado em qualquer projeto Java do tipo Dynamic Web (projeto Web Dinâmico), pelo fato de ser completamente desenvolvido utilizando-se a linguagem Java.</p>
<h3><font color="#4571ba">Iniciando o servidor Derby</font></h3>
<p align="justify">Para iniciar o servidor Derby, vá até a barra de botões e escolha o botão referente ao <strong>MyEclipse Server</strong>, em seguida selecione <strong>MyEclipse Derby</strong>, e então clique em <strong>Start</strong>, como na figura abaixo:</p>
<p><a href="http://horizontesdigitais.com/files/2008/05/imagem1.JPG" title="imagem1.JPG"></a><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-start-annot.gif" border="0" height="152" width="530" /></p>
<p>Você verá uma mensagem de status no console enviada pelo Derby confirmando que o servidor Derby foi iniciado com sucesso. Se você não estiver vendo o console vá no menu <strong>Window</strong> em seguida na opção <strong>Show View</strong> e em seguida escolha <strong>Console</strong>.</p>
<p><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-started-console.gif" border="0" height="100" width="530" /></p>
<h3><font color="#4571ba">Conectando ao Derby usando Database Explorer</font></h3>
<p align="justify">A primeira coisa a fazer é abrir a perspectiva <strong>MyEclipse Database Explorer</strong>. Para realizar tal tarefa, você pode ir até ao menu <strong>Window</strong> e escolher a opção <strong>Open Perspective</strong> e então escolher <strong>other&#8230;</strong> Será aberta uma janela com várias opções de perspectiva. Escolha a <strong>MyEclipse Database Explorer</strong>. Agora você pode conferir a visualização do <strong>DB Browser</strong> que está no lado esquerdo da sua tela(conforme a próxima figura). Agora vamos ao trabalho!</p>
<p align="justify">Esteja certo de que o servidor Derby está iniciado e executando antes de prosseguir.</p>
<p align="justify">No <strong>DB Browser</strong>, clique com o botão direito do mouse em <strong>MyEclipse Derby</strong> e escolha a opção <strong>Open connection</strong>&#8230; para conectar.</p>
<p align="justify">O MyEclipse Derby conecta-se a um simples banco de dados com o nome de <strong>myeclipse</strong>. Este banco inclui dois schemas denominados CLASSICCARS e MYBLOG. Os outros schemas são do sistema de Derby.</p>
<p><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-dbbrowser-opening.gif" border="0" height="500" width="230" /><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-dbbrowser-opening-" border="0" height="1" width="1" /><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-dbbrowser-opening-" border="0" height="1" width="1" /><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-dbbrowser-opening-" border="0" height="1" width="1" /><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-dbexplorer-open.gif" border="0" height="500" width="230" /></p>
<h3><font color="#4571ba">Configurando o servidor Derby</font></h3>
<p align="justify">Antes de abrir a janela de configuração do servidor Derby, <strong>pare o servidor</strong>. Você pode fazer isso através do seguinte caminho: vá até a barra de botões e escolha o botão referente ao <strong>MyEclipse Server</strong>, em seguida selecione <strong>MyEclipse Derby</strong>, e então clique em <strong>Configure</strong>, conforme a figura abaixo:</p>
<p><a href="http://horizontesdigitais.com/files/2008/05/derby-dbbrowser-opening-annot.gif" title="derby-dbbrowser-opening-annot.gif"></a><a href="http://horizontesdigitais.com/files/2008/05/derby-dbbrowser-opening-annot.gif" title="derby-dbbrowser-opening-annot.gif"></a><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-configure-annot.gif" border="0" height="155" width="530" /></p>
<p align="justify">Você também tem a opção de ir pelo seguinte caminho para abrir a mesma janela de configuração: menu <strong>Window &gt; Preferences &gt; MyEclipse &gt; Database Explorer &gt; MyEclipse Derby</strong></p>
<p><a href="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-preferences.gif"><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-preferences.gif" border="0" height="400" width="530" /></a></p>
<p align="justify">Nessa janela temos as seguintes informações:</p>
<p align="justify"><strong>Home Directory: </strong>É o local onde o Derby armazenará seus bancos de dados. Uma pasta com o nome do seu banco será criada no local antes especificado. Por default, o diretório base é &lt;user home&gt;/.myeclipse/derby</p>
<p align="justify"><strong>Port:</strong> Esta é a porta que é utilizada pelo servidor para fazer as conexões com o banco. Por default, essa porta é 1527.</p>
<p align="justify"><strong>Restore MyEclipse Derby Driver:</strong> No caso de você fazer alterações como mudar o número da porta, dentre outras, e arrepender-se, aperte esse botão que ele irá trazer as configurações default de volta.</p>
<p align="justify"><strong>Restore Sample Database:</strong> Este botão irá criar ou restaurar o myeclipse database no diretório Derby especificado.</p>
<h3><font color="#4571ba">Conclusão</font></h3>
<p align="justify">Espero que este tutorial possa ajudar você a configurar seu ambiente de desenvolvimento quando você quiser utilizar o Derby.  Esta ferramenta auxiliará bastante no seu trabalho, pois você não precisará configurar o servidor para acessar um banco de dados externo, embora seja possível e de certa facilidade.</p>
<p align="justify">Bons estudos e até nosso próximo tutorial!</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/05/17/configurando-banco-de-dados-derby-usando-myeclipse-55/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conhecendo o caminho das certificações Java(Sun)</title>
		<link>http://horizontesdigitais.com/2008/05/09/conhecendo-o-caminho-das-certificacoes-javasun/</link>
		<comments>http://horizontesdigitais.com/2008/05/09/conhecendo-o-caminho-das-certificacoes-javasun/#comments</comments>
		<pubDate>Fri, 09 May 2008 16:10:50 +0000</pubDate>
		<dc:creator>Felipe Thomas</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Software Livre]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/05/09/conhecendo-o-caminho-das-certificacoes-javasun/</guid>
		<description><![CDATA[Certificação&#8230; O grande objetivo de muitos profissionais que buscam reconhecimento no mercado de trabalho. Conseguir realizar este objetivo não é uma das tarefas mais fáceis, pois exige um grande preparo tanto do conhecimento técnico da prova de certificação, quanto da parte psicológica para se enfrentar uma prova que custa $300,00 (trezentos dólares). Esta preparação, muitas [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Certificação&#8230;</strong></p>
<p><img src="http://www.softcompass.com/images/scjp.jpg" alt="certificacao" /></p>
<p align="justify">O grande objetivo de muitos profissionais que buscam reconhecimento no mercado de trabalho.</p>
<p align="justify">Conseguir realizar este objetivo não é uma das tarefas mais fáceis, pois exige um grande preparo tanto do conhecimento técnico da prova de certificação, quanto da parte psicológica para se enfrentar uma prova que <strong>custa $300,00 (trezentos dólares)</strong>. Esta preparação, muitas vezes, envolve dias e meses, dependendo de cada pessoa. Já li sobre pessoas que conseguiram preparar-se em apenas 1 mês, mas eu, por exemplo, em minha preparação para SCJP 5.0, precisei de mais de 2 meses, pois tive que aprender “do zero” alguns dos assuntos abordados nas questões da prova. Acredito que “aprender do zero” seja comum entre os que estão começando a carreira das certificações devido à grande diversidade de assuntos, dentre os quais, muitos não são utilizados no dia-a-dia dos desenvolvedores da linguagem deixando assim de serem praticados com maior freqüência.</p>
<p align="justify">Para quem ainda não conhece a estrutura de certificações Java da Sun aqui vai um overview. Estes dados foram retirados do site da <a href="http://www.sun.com/training/certification/java/index.xml">Sun microsystems</a>.</p>
<p>Java Certification</p>
<p><a href="http://horizontesdigitais.com/files/2008/05/certpathjava.gif" title="Estrutura da certificação JAVA"><img border="0" width="480" src="http://horizontesdigitais.com/files/2008/05/certpathjava.gif" alt="Estrutura da certificação JAVA" height="153" /></a></p>
<p align="justify">A preparação para as certificações envolve além de uma boa leitura do conteúdo para revisão dos seus conhecimentos sobre os assuntos da prova, a realização de bastantes exercícios para praticar e até mesmo simular o momento da prova. Uma indicação muito boa para este tipo de prática é a realização do Whizlabs da mesma versão da prova que você fará. Outra boa idéia é fazer uns Test Killer ou Test King, que também fornecem uma boa preparação para as questões da prova, podendo ocorrer inclusive coincidência de questões com as da prova (acredite aconteceu comigo).</p>
<p align="justify">Por fim, “believe that you can”! Se você estudou e se dedicou durante dias e horas de estudo, não há o que temer. Antes da prova faça uma oração para que Deus lhe mostre os erros de compilação das questões e siga em frente.</p>
<p align="justify">Se você precisar de matérias para realizar a prova de SCJP tenho bastante material. Disponho-me a ajudar você no que for necessário. Se Deus me ajudou, por que não irei te ajudar?</p>
<p align="justify">Bons estudos e até mais&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/05/09/conhecendo-o-caminho-das-certificacoes-javasun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
