Série 1: Array em Java /Anniversary Blog

happybirthday44

olá Pessoal, Hoje vou apresentar alguns pontos importantes no uso de array em java. O objetivo aqui é ajudar aqueles estão iniciando/migrando para tecnologia. Não queira reinventar a roda. Isso é importante em qualquer área de desenvolvimento. Você pode até implementar usando a sua lógica em situações como as que serão apresentadas mas, fique atento aquilo que já está pronto e pode ajudar bastante no ambiente de produção, principalmente quando o processo de desenvolvimento é em equipe. Veja como é simples e fácil manipular os dados dentro de um array (em outras linguagens é conhecido como vetor). Analise as situações a seguir, e acredito que todos progamadores já se depararam com elas e gastaram e horas x horas programando para ordenar o array por exemplo.

Bem quero aproveitar e agradecer a todos por esse 1 ano de parceria com criticas, sugestões, participação. Se nao fosse por vocês leitores, nao estaria aqui hoje comemorando um ano de blog. E e espero que essa data venha se repetir. Agradeço a todos de coração e desejo sucesso muito sucesso na carreira profissional. E nao esqueça  que a persistência é a chave do sucesso.

Novo Arquivo em JFile:

Ética em TI

lets Go..

bem, to precisando ordenar meu array…”

  • Simples use o método sort da class Arrays. Não queira reinventar a roda 🙂

agora to precisando encontrar um elemento no Array…”

  • basta usar o método binarySeach

Algumas regras que você deve saber;

  • os objetos devem ser mutuamente comparáveis, ou seja, os objetos devem ser do mesmo tipo, não posso ter com tipos diferentes. Ex.: Integer com String.

  • As buscas retornam o índice int positivo do elemento que foi procurado se este for encontrado.

  • Quando realizar uma busca, o conjunto deve ser classificado antes da procura. (O inverso o resultado não serão previsíveis).

Em ação:

import java.util.*;

class ArrayBusca{

public static void main(String args[]){

String[] sa = {“ceu “, “lucas “, “camilo “};

Arrays.sort(sa);

for(String a : sa)

//imprimo o array ordenado – usando for aprimorado

System.out.print(a);

/*se o resultado for positivo o elemento foi encontrado no caso de negativo, não foi encontrado nenhum elemento, e o valor significa a posição que esse elemento estaria no seu array levando em conta que este está ordenado */

System.out.println(“\none = ” + Arrays.binarySearch(sa,”camilo “));

}}}

import java.util.*;

class ArrayOrdenado{

public static void main(String args[]){

String[] sa = {“ceu “, “lucas “, “camilo “};

Arrays.sort(sa);

for(String a : sa)

//imprimo o array ordenado

System.out.print(a);

} }

Um forte abraço, e até a série 2. Para os iniciantes ao mundo Java, sejam bem vindo! 🙂
Sei que receberei N e-mails e comentários falaado que é um post muito basico para está aqui, porém o objetivo é ajudar aqueles que estão tendo os primeiros contatos com a tecnologia e nao custa nada poder ajudar.

Livro para para Desenvolvedores

 Opa! Pessoal,

Resolvi colocar um post extra, antes do post principal da semana.

Como sabemos a internet é o mundo de informações, e nela encontramos tudo que precisar, porém depende de um pequeno detalhe “como procurar”. Sabemos também que a Internet é uma fonte de estudo valiosa, para aqueles que sabem usar a internet a favor pode aumentar seu network, estudar uma tecnologia X, trocar de emprego(meu caso), encontrar discussões sobre um assunto que você ainda não teve a oportunidade de discutir no trabalho, na faculdade etc. Bem em função disso estou compartilhando com vocês um link muito show da IBM. O http://www.redbooks.ibm.com

No site redbooks você vai encontrar livros sobre todas as tecnologias IBM e aquelas que a companhia apóia como SOA, JAVA etc.

Os livros são escritos por profissionais de alto padrão da IBM incluindo cientistas, pesquisadores, P.h.d, etc. Enfim um material de altissimo nível. O que é necessário é o inglês para a leitura desses materiais, observe que mais uma vez a importância de saber esse idioma, o profissional consegue agregar conhecimentos em outras áreas a partir de uma base: o inglês. E com o custo praticamente zero, a partir que já houve um investimento no idioma.

A seguir está o link do livro completo destinado para desenvolvedores. Em especifico para quem trabalha com a ferramenta Rational da IBM ou mas aqueles que pretende iniciar os estudos com a ferramenta. O livro indicado é um bom caminho, já que ele vem do basico ao nivel bem avançado. Para aqueles que são desenvolvedores, mas não na linha Rational o livro também é indicado pois há capítulos que não são especifico da ferramenta Rational, ou seja, há tópicos como: SOA, EJB, WEB 2.0, CVS etc.

Download do livro

Como esse há outros livros mais especifico a uma tecnologia e claro menores que há livro com o número de páginas menores do que o citado acima.Não posso deixar de concordar que o livro citado, é uma verdadeira biblia, sendo assim pode ser usado como consulta também. Uma perguntinha básica: “qual é o livro mais vendido/indicado para quem está começando com Java?”
R- Deitel

Quantas paginas tem o Deitel?” (R- bem proximo ao livro redbooks citado, então quem ler o deitel, ler o  redbook 😀  ).

Bem mais um detalhe, acho que hoje um profissional de TI por exemplo dizer que não sabe SOA, JAVA porque na cidade dele não tem um curso de Java/SOA, ai acho que é querer esperar para ver demais. Então vem aquela questão: “nao sou auto-didata.” ué ninguém nasce auto-didata é uma questão de prática, persistência e necessidade.

Eu por exemplo não era auto-didata, mas tive que me tornar um se eu tivesse realmente a fim de aprender a tecnologia Y, já que os bons cursos realmente são caros, porém esse obstáculo não foi maior que minha vontade.

Sou brasileiro não desisto nunca :)”

Espero que tenham gostado, eu já iniciei minha leitura e você? Abraco e até o próximo post.

CVS e sua importância

Salve!
Salve! Caros leitores, amigos, colegas enfim todos aqueles que acessam o blog! Fiquei um tempo off devido algumas mudanças que aconteceram na minha vida profissional. Uma delas é que hj trabalho na IBM :). Esse foi o motivo da ausência dos posts pois fiquei em treinamento durante esse tempo. Sendo assim peço desculpas a todos, porém foi por um bom motivo. Não querendo puxar o saco, mais sinceramente quero agradecer ao Juliano Martins pelo treinamento, para me é um prazer trabalhar do lado desse cara (muito fera). Bom vamos ao post!

O assunto de hoje será CVS. O post não será sobre a definição desse sistema e sim sua importância dentro do ambiente de desenvolvimento de Software. Até porque a definição não é algo muito dificil de encontrar basta ir no google ou no 4shared que encontramos apostilas, tutoriais etc.

A importância

Por que CVS pode ser importante para desenvolvimento de Software?

Bom pegando um pouco da definição: CVS é um sistema de controle de versões que permite gerenciar diferentes versões de um programa ou projeto. Outra vantagem, é que multiplos programadores podem trabalhar ao mesmo tempo no mesmo projeto.

Ah, Camilo mais isso eu ja li no wikipedia”, bom entao vamos ver uma situação na para pratica.

Imagine ai que vc está desenvolvendo um sistema para uma rede de hotel que funciona 24x7x365, e o sistema não pode parar nunca, pois é impossivel controlar uma entrada ou saida, despesas etc. dos hospedes manualmente. Até aqui nada de diferente. Mas em um belo dia o dono do hotel pediu para vc
desenvolvedor fazer um novo módulo, vc foi lá: desenvolveu e instalou, porém agora temos o sistema atualizado com uma nova versão então ele passou de 1.0 para 1.1 (por exemplo). Mas em um belo dia vc está na praia (de preferencia na Bahia) o cara do hotel liga:
o sistema parou aqui! está travando!Depois daquela mudança parou tudo aqui!. O que vc faz?

  1. Tenta descobrir o problema e depois TENTA resolver?

  2. Ou retornar o sistema na versao 1.0 e colocar o “hotel para funcionar”e vai buscar encontrar o problema mais sossegado?

Eu ficaria com a 2. Com CVS
é possivel vc obter essa vantagem, onde o desenvolvedor pode retornar o sistema para ultima versão ou outra que desejar e futuramente analisar aquela nova que causou problema isoladamente isso através do comando
diff é possivel comparar o que há de diferente na versão 1.0 e 1.1 e buscar a resolução do problema mais rapidamente.

Mas se eu nao usar CVS?

Bom, ai acho que é entrar no caminho das trevas, ou seja, o risco é grande de vc perder as versões de software, onde vc teria que criar uma copia de cada arquivos no HD antes de atualizar e depois fazer as
modificações da versão 1.0 para 1.1. É facil gerenciar apenas uma versão (1.0 para 1.1). Porém se fosse 10 versões(da 1.0 para 1.10 )?

Um exemplo que pode ser visto todo dia, são os browsers(Chrome, Firefox etc.) concerteza é usado um sistema de controle de versão para saber os impactos de uma versão para outra e quem fez essas alterações (quem foi o desenvolvedor que fez essa besteira?). Observe quando você desinstalar o Chrome, o google
quer saber por que você desinstalou, e as opções para marcar nesse processo são bem próximas ao processo de controle de versões.

Um forte abraço e espero que tenham gostado do post. Na seção de Jfile coloquei uma apostila sobre CVS.

E até proximo post! Have a nice day!

Comunicando Servlet & JSP

Salve! Salve! Pessoal! Quero agradecer aos comentarios e emails que venho recebendo!

Em especial recebi  5 emails de alguns usuarios do javaranch, onde solicitaram a tradução de algumas colunas do blog para o ingles. Porém pela minha falta de tempo, nao foi possivel atender ao pedido, mas  foi sugerido por um dos usuarios (javaranch) a criação de um pequeno resumo em ingles sobre a coluna, onde segundo esse usuario isso facilitaria no momento de decisão “se valeria apena ele realizar tradução ou nao da coluna, levando em conta o summary”.  

obs.: Não estou usando tradutor para criação dos resumos. Agradeceria aos “experts no idioma” caso encontre algum erro, favor me comunicar. 🙂

Em uma das minhas colunas explique o que é JSP e sua funcionalidade. E se você não sabe o que é um Servlet e como configurar o XML para chamá-lo veja nessa coluna.  

Hoje vou mostrar como  Servlet & JSP “conversam”.  Veja abaixo  os pequenos exemplos, porém bastante funcionais para entendimento.

Aproveitando o momento Há uma matéria minha no imasters semelhante a essa, porém usando a ferramenta netbeans 6 para desenvolvimento e percebam que com o auxilio de uma IDE o processo é mais simples.

 É importante lembrar que muito não vai adiantar se você não sabe nada sobre o código gerado pela IDE (ex.: se você não souber por que o método é doPost/doGet?!), isso afetará diretamente no momento da manutenção do software por exemplo.

 Summary

The objective this article is presents the communication between Servlet e JSP without assist one of the IDE. If you don’t know that is one Servlet or JSP see this article (in Portuguese). I will go to present too as a class .java can “talk” with one application JSP.

 

Pré-Requisito:

– Ambiente JEE instalado e configurado

– Saber o que é  Servlet & JSP.

 Minhas Colunas Java no Imasters:  

Instalando TomCat em 10min

Mais um pouco sobre threads em Java

Criando Servlet Netbeans 6

Criando uma aplicação Servlet & JSP – Netbeans 6

 Livro recomendado

Servlet & JSP

 Let’s GO… 

Exemplo 1: Criando uma pagina JSP que será acessada via Servlet 

Configurando o arquivo XML

Web.xml

[…]

<!– chamando um jsp via servlet –>

                <servlet>

                               <servlet-name>comjava</servlet-name>

                               <jsp-file>/serv.jsp</jsp-file>   

                </servlet>

               

                <servlet-mapping>

                               <servlet-name>comjava</servlet-name>

                               <url-pattern>/compra</url-pattern>

                </servlet-mapping>

<!– fim –>

[…]

Criando o arquivo .jsp

Nome do arquivo= serv.jsp

<html>

<body>

<% out.println(“Usando servlet”);

%>

</body>

</html>

Para o exemplo acima digite no browser: HTTP://localhost/sua_aplicacao/compra

Você receberá a mensagem: “Usando Servlet” e observe que na barra de endereço está o arquivo serv.jsp

Exemplo 2 : Criando um redirecionamento em Servlet.

lista.jsp

<html>

<body>

Sua Lista de compra:

<%  //usei o redirecionamento em um Servlet para chegar aqui

out.println(foo.Midia.getItem());

 %>

</body></html>

 Midia.java

package foo;

import java.util.*;

public class Midia{

               

                public static ArrayList getItem(){

                ArrayList<String> lista = new ArrayList<String>();

                                               lista.add(“Caneta”);

                                               lista.add(“CD”);

                                               lista.add(“Pen”);

                               return lista;

                }} 

web.xml

[…]

<!–chamando um Servlet e o Servlet  redireciona a pagina para o jsp –>

                <servlet>

                               <servlet-name>listacomp</servlet-name>

                               <servlet-class>servM</servlet-class>

                </servlet>

               

                <servlet-mapping>

                               <servlet-name>listacomp</servlet-name>

                               <url-pattern>/compras.do</url-pattern>

                </servlet-mapping>

[…]

 servM.java

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

public class servM extends HttpServlet{

public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{

                response.setContentType(“text/html”);                           

response.sendRedirect(“/sua_aplicacao/lista.jsp”);                                              

}}

/* aqui acontece um redirecionamento quando o xml chamar essa class, onde ele vai executar a pagina lista.jsp*/ 

Conclusão

Bom, espero que tenham gostado do artigo, e percebam a comunicação entre Servlet, JSP e.java.

O seu arquivo .java  é uma classe Java normal semelhante aquela quando você começa estudar Java porém sem o método main. Vejo sempre iniciantes com essa dúvida como fazer que  “Hello World” apareça no browser.  Claro que o exposto aqui é um ponto de motivação para continuação dos estudos na plataforma JEE. Mas busquei nas três colunas (Servlet,  JSP e Hoje) apresentar um pouco de cada e sua utilidade. 

Você pode ouvir/ler que Servlet/JSP  não são mais  usados para desenvolvimento de sistema, mas acredito que isso varia de projeto para projeto. Realmente há projetos que solicitam tecnologias mais robustas e outros que tanto faz se a tecnologia é recente ou uma mais antiga (até hoje vejo software sendo desenvolvido em Clipper e vagas de emprego a procura de programadores).

Claro  que você (bom programador )deve dar preferência para aquela(s) tecnologia  que você tem o maior domínio técnico  e que  possibilite “boas práticas de programação” e  siga todas as recomendações da engenharia de software.

Um abraço a todos e até a próxima!

Entendendo JSP

Para quem estar iniciando no mundo JEE, sempre tema uma duvida o que é um JSP? E qual sua real utilidade? Neste post tentarei explicar esse “bicho” JSP.

Lembrando que há muitos detalhes técnicos sobre JSP que não vou abordar nesse post, já que o objetivo aqui é dar uma introdução generalizada sobre JSP.

Let’s GO..

Pré-Requisito para rodar páginas JSP

– Instalação e configuração

JavaServer Pages (JSP) são páginas Java embebidas( cheio do corote) em HTML. Uma página dinâmica é gerada pelo código JSP.

Em outras palavras JSP é uma página bem parecida com uma página HTML, com a diferença de que podemos inserir Java dentro da página.

Estrutura JSP:

<% %> tag para adicionar o comando Java desejado, conhecido como scriptlet

<%– –%> comentário

<%! %> declaração de atributos ou métodos

<%= %> expressão de resultado

Diretivas

São usadas para fornecer informações especiais ditas ao Container sobre a página JSP.

Diretiva page: permite a importação de classes <%@ page %>

Pontos chaves sobre JSP:

– você vai usar quando não quer colocar seu código Servlet com HTML (PrintWriter)

– e quando quer escrever código Java em jsp

– em uma expressão (<%= %>), você não pode usar o método com o tipo de retorno void como uma expressão. O Container vai descobrir que não há nada para exibir pra esse método e o que verá será apenas erro.

Exemplo 1 : ola.jsp

<html>

<body>

<% out.println(“olá Mundo!”);

%>

</body>

</html>

É o mesmo: Ola.java

public class Ola{

public static void main(String args[]){

System.out.println(“ola Mundo”);

}}

Exemplo 2: com importação de classes Java:

<html>

<body>

<%– importando a class java –%>

<%@ page import=”java.util.Date,java.text.DateFormat”%>

<%– declarando um metodo –%>

<%! String exibir(){

Date d = new Date();

DateFormat df = DateFormat.getDateInstance(1);

String resultado = df.format(d);

return resultado;

}

%>

<%– Exibindo o resultado –%>

<%= “Seja bem vindo: ” + exibir() %>

</body>

</html>

Exemplo 3: Criando um contador de acesso.

<html>

<body>

<%! int cont=0;

//declarei como static

%>

Essa página ja foi acessada

<%=

//usando expressores para imprimir

++cont %>

</body>

</html>

Distribuindo JSP:

– para distribuir e testar seu JSP é simples coloque no caminho /webapps/sua_aplicacao

abra o browser e digite HTTP://localhost/sua_aplicacao/nomedoarquivo.jsp

Há desvantagem em usar Java em JSP?

Bom se você for daqueles programadores que quer colocar todo Java em JSP terá problemas no futuro.

Imagine que você tenha uma monte de arquivos JSP abarrotado de código Java enfiadas em cada pedaço da página acomodadas entre scriplets, expressões. Daí como o seguinte: você tem que saber ler e entender estes elementos e como manter páginas escritas com eles, caso contrario o seu sistema chega naquela situação: “não consigo mais mexer”.

Não estou dizendo que não é para usar JSP, pelo contrario, “use mais com moderação”. Até por que a finalidade do JSP é executar códigos Java, mais isso não quer dizer que você programador deve fazer seu .jsp toda lógica do negócio, ou que venha fazer tudo que seu Servlet faz. Isso é colocar o “pé na cova”.

Posso comunicar meu JSP com meu Servlet ?

Sim, e deve. Normalmente é assim que acontece o Servlet recebe a solicitação, entregará a solicitação para o JSP.

Aguardem… Assunto do próximo do post.

Conclusão

Sempre que você quiser exibir aquele seu programa (Hello World) que fez quando iniciava com Java, porém agora quer exibi-lo no browser, use JSP & Servlet 🙂

Lembrando que JSP não é para colocar toda sua aplicação Java. Você pode usar para exibir no browser aquele ArrayList que está na class Lista.java mais você não que colocar a lógica do .java dentro do seu JSP, então essa é uma alternativa. Lembre-se que páginas JSP não precisam ser compiladas.

Incentivo

Para aprendizado, pegue seus arquivos .java (incluindo o “Hello World!”) e execute ele via JSP, depois via Servlet + JSP.

“não há aprendizado sem prática, sem ver exceções, erros de: compilação, declarações etc. Isso faz parte de qualquer nível de aprendizado se quiser ser um bom programador veja cada, erro, exceção como a velha coke”.

Um abraço a todos e até o próximo post!