Como programar em Java para Web?

Andei passeando pelo GUJ e me surgiu uma dúvida, para ser mais sicero uma enorme dúvida… :?
Como deve ser o desenvolvimento web em java?

Muitas pessoas criticam a programação script pura (asp, php, etc…), ou seja, fazer tudo com JSP.

:?: Mas qual o caminho seria o “correto”?

:!: Um applet e outro fazendo umas rotinas, um trechinho aqui e outro lá em JSP, consultas em Java Beans, uma conexão com o banco no servlet, paginas estáticas html, etc, etc… :!:

Quando eu desenvolvo web em Java, eu posso fazer com que todas as páginas sejam .jsp ou isso pessa muito?
Tenho que usar páginas .html com Java Beans?

Estou com um projeto para desenvolver em JSP, mas vi que na realidade, se é que eu entendi direto, “não posso” usar simplesmente o JSP senão vou estar tipo programando em ASP com Java.

Realmente minha cabeça deu um nó e agora entrou mais um tal de JBoss que interpreta um tal de Enterprise Java Beans, mas qual a diferença em JB e EJB? O que um faz e o outro não.

Sei que cada um programa da forma que mais de adapta, um usa o JSP puro, outro usar servlets.

:?: Mas qual é o conceito Java? Qual é a forma para se dizer “Este sistema web foi REALMENTE desenvolvido em Ja va.”?

Deu um nó… :!: :?: :roll: :shock:

:arrow: :arrow: Há algum projeto que vocês conheçam, de qualquer sistema seja ele qual for, que seja opensource. Para falar assim: “Tá vendo este código? Assim que é um sistema Web desenvolvido em Java. Simplesmente siga os mesmo conceitos!”

:smilecolros:
Um grande abraço para todos e agradeço a atenção que tive até hoje… 8)

Fazer tudo no .jsp eh insano, voce nao reaproveita nada, o sistema fica dificil de manter, da zica entre programador e designer etc etc…
Claro que isso falando da programacao jsp da fomra como eh feita em asp e php… Eh perfeitamente possivel fazer jsp usando boas tecnicas de programacao ( usando taglibs e afins ).

Pessoalmente ( e “pessoalmente” nesse caso vale para muita gente aqui ), nao gosto de jsp, por motivos que muitas vezes podem paracer bobos, mas sao motivos. O maior deles eh que, com jsp, voce sempre podera fazer mais do que o devido, ou seja, mesmo que a regra seja “nao facam tratamento de erro no .jsp”, o cara vai la e faz, porque tem preguica de fazer direito.

Em razao disso, uso sistemas de templates, como o Freemarker, Velocity e Webwork, pois as funcionalidades que voce tem disponiveis sao puramente para montar layout, nada mais.

De uma maneira geral, aplicacoes web bem desenvolvidas fazem uso de alguns design patterns ( padros de projeto; boas maneiras de programar ), sendo que o mais comum eh o MVC, o qual sugere uma separacao clara entre a camada de negocias - ou seja, as classes que fazem acesso a dados, tratamento de erro, validacoes etc - e a camada de apresentacao, que seria o layout propriamente dito.

Applet nao sao usados para o desenvolvimento web em java… em outras palavras, voce nao faz paginas web usando as classes para applet, sao conceitos bem diferentes.
Voce programa para web com java como se programasse um programa normal, usando apenas algumas classes especificas para web ( pegar dados da url, mandar conteudo para o browser, cookies etc )… eh tudo conteudo .java mesmo.

Voltando ao MVC, voce nunca deve colocar o teu conteudo HTML dentro dos .java, isso fica no arquivo de template, que eh processado pelo engine correspondente… No caso do jsp, voce apenas disponibilza para o contexto do jsp ( ou seja, o lugar de onde ele ira tirar as informacoes ) o que voce quer que ele veja…

JavaBean, de uma maneira simples, eh apenas uma determinada classe java, com os getters e setters ( getXxxx, setXxx e assim por diante ). EJB eh algo bem diferente, usado para aplicacoes distribuidas, remotas e afins.
Mas, de qualquer maneira, nem perca seu tempo com EJB. Pelo menos nao agora no inicio.

Rafael

Muito bom esse tópico.

Caiu como uma luva. Faz pouco que comecei a trabalhar com JAVA e o objetivo é realmente desenvolver aplicações WEB. Mas como são muitas as extensões do Java fica difícil de se pensar em Webappl, porque estamos atrelados as scripts PHP e ASP.

Estou pesquisando bastante sobre aplicação WEB com JAVA, baixei o ECLIPSE com o Lomboz, também instalei o Tomcat em casa.
Mas o que me deixa mais perdido é esta história de MVC. Não seipor onde começar: é o tão falado Struts pra cá JSF pra lá, daí vem este tal de Velocity.

Rafael, se tiver como, por favor diga por onde devo começar.
O que devo baixar para poder começar a mexer e entender tudo isso.

OBRIGADO.

E parabéns ao black_fire pelo tópico.

Esqueca struts, esqueca velocity por enquanto. Comecem vendo as classes HttpServlet, HttpServletRequest, HttpServletResponse, HttpSession, Cookie. Leiam o tutorial basico de servlets que tem aqui no GUJ, baixem o Core Java Servlets no site da sun, e o mais importante: facam codigo sem medo.

Depois, quando estiverem mais acostumados, deem uma olhada em jsp, facam mais uns codigos, e entao passem para o proximo nivel, que seria se preocupar com a separacao de conteudo ( mvc ), velcoity, struts ou qualquer otro framework do genero.

Um bom inicio pra codigos de exemplo eh ir no Google e digitar coisas como “java servlet example”, “java servlets tutorial”, “jsp tutorial”… voces vao achar mta informacao a respeito.

Depois, eh soh ir pergutnando pra galera aqui do GUJ :slight_smile:

Rafael

Uma etapa intermediaria entre o Google e soltar a pergunta aqui no forum pode ser: garimpar no historico do forum. Eu pessoalmente ja encontrei varias coisas legais e tive duvidas esclarecidas apenas fazendo uma pesquisa com a palavra-chave certa no forum.

E eh muito mais rapido que postar a questao e esperar a resposta. Sem contar que enche o saco as questoes repetidas. :smiley:

Eh isso ai. Como ja diria o Oziel: bons estudos.

Marcio Kuchma

Concordo, eu também já encontrei MUITA coisa interessante nas threads mais antigas. A melhor coisa é deixar a pregiuça de lado e pesquisar. :wink:

[]'s

Valeu pela a ajuda galera!!!

Deu para ter idéia por onde começar os estudos e pesquisas.

O problema é que estava tudo muito obscuro e precisava de uma explicação melhor de como entender o processo de desenvolvimento.

Com relação a “garimpar” informações no fórum também concordo com o pessoal, já que é aqui que se encontram os assuntos dos quais pesquisamos.

Pessoal,

MVC é um padrão de DESIGN ou um padrão de Arquitetura ?

Spiff

Tudo que é sólido desmancha no ar

E aí Spiff, pelo que eu entendi o MVC é um padrão de desenvolvimento.

O objetivo é deixar as camadas do sistemas mais distintas umas das outras, dando uma maior portabilidade e tornando a manutenção do mesmo o mais prático possível.

Acho que era isso.

Falou.

nossa… mto bom o topico, estou iniciando agora com programação web com java… e clareou totalmente minha cabeça …
vlw pelo topico …

Alô turma do GUJ…!

Uma dúvida bem básica:

O conceito MVC só se aplica em projetos Web?

E quais são as extensões de arquivos relacionadas a cada camada?

Obrigado!

[quote=SuperTom]Alô turma do GUJ…!

Uma dúvida bem básica:

O conceito MVC só se aplica em projetos Web?

E quais são as extensões de arquivos relacionadas a cada camada?

Obrigado![/quote]

o conceito de MVC abrange qualquer tipo de desenvolvimento, tu separa cada arquivo conforme sua utilidade, eu mesmo ja programei pra desk com o conceito de MVC, só nao consegui fazer isso com delphi bem ao certo ainda, mas estou quase conseguindo isso,
espero que tenha ajudado.

Beleza Ruteski !

Ajudou sim!

Vou começar aqui… veremos o que vai sair!

[quote=SuperTom]Alô turma do GUJ…!

Uma dúvida bem básica:

O conceito MVC só se aplica em projetos Web?

E quais são as extensões de arquivos relacionadas a cada camada?

Obrigado![/quote]

Cara um dos Objetivos do MVC é justamente deixar o Back de sua aplicação desacoplado do Front… Hoje fazes teu Sistema MVC com uma interface WEB… só que amanhã o Projeto muda e precisas entregá-lo como um módulo Mobile, basta mudar o V do MVC que corresponde a sua camada View…

Logo, como o amigo já lhe respondeu, o MVC é justamente pra poder programar em qualquer lugar.

Att.

Pessoal boa noite.

Li os textos acima e da metade para o final, no meu entendimento, se afastou um pouco do assunto e por isso gostaria de perguntar: Como eu ligo uma aplicação (desenvolvimento em html com javascript) em um código java?

O que quero dizer é: tenho intenção de separar a camada de aplicação (front end do usuário) da camada de processo (em java).

Estou correto na minha separação?

[quote=nterra]Pessoal boa noite.

Li os textos acima e da metade para o final, no meu entendimento, se afastou um pouco do assunto e por isso gostaria de perguntar: Como eu ligo uma aplicação (desenvolvimento em html com javascript) em um código java?

O que quero dizer é: tenho intenção de separar a camada de aplicação (front end do usuário) da camada de processo (em java).

Estou correto na minha separação? [/quote]
A página HTML e JavaScript e CSS são view, a parte que o usuário se relaciona. Aí não temos código Java.

Mas quando o usuário faz algo a view não conhece regra de negócio nem que atitude tomar, por isso, as ações de usuário são direcionadas para um servidor. No servidor alguém vai ouvir as suas requisições, trata-las de acordo com o que deve ser feito e responder para o cliente. Para tratar o que o usuário quer e fazer acontecer a regra de negócio usamos linguagens server side, como Java, ruby, etc…

No caso de Java, temos uma especificação chama JEE que cuida de toda a parte de infraestrutura, logo você só cuida de tratar a requisição do usuário EM JAVA. Aí é que entra Java.

Como aqui no GUJ, quando você está vendo os tópicos você está vendo o que foi renderizado de um código HTML com JS e CSS dados pela lógica executada no servidor através de um código Java. Quando você clicar em alguma cosia, como eu vou fazer com o botão “Enviar”, o navegador forma uma requisição HTTP e manda pra o servidor. Até aqui nada de Java, quando bater no servidor algum código Java vai ser executado ( provavelemente salvar essa mensagem no banco de dados).

É mais ou menos isso :S

Muito obrigado pelas explicações.

Preciso aprofundar um pouco mais: como eu ligo a visão (html, css, js) com a inteligencia (java)? Onde eu encontro material para isto? Faço isto dentro do Aptana? Eclipse?

Agradeço mais uma vez a atenção.

Procure por servlets e JSP.

A IDE você escolhe :slight_smile: Eu uso Eclipse e JBoss Developer Studio, que é um Eclipse preparado para desenvolvimento para a WEB com JBoss AS e outras ferramentas JBoss