Preciso conhecer servlets e JSP para aprender o Spring ou o Hibernate ou qualquer outra estrutura da Web Java? [fechadas]

17

Eu tenho perguntado a muitas pessoas por onde começar a aprender desenvolvimento web em java, eu já conheço java principal (Threading, Genéricos, Coleções, uma pequena experiência com (JDBC)), mas não conheço JSPs e servlets. Fiz o meu quinhão de desenvolvimento com vários aplicativos baseados na Web usando PHP para servidor e HTML, CSS, Javascript, HTML5 para cliente.

A maioria das pessoas que eu pedi me disse para ir direto ao Hibernate, enquanto outras me disseram que eu não precisava aprender servlets e jsps, e eu deveria estudar imediatamente a estrutura do Spring. Isso é verdade? não preciso aprender servlets e JSPs para aprender hibernação ou Spring?

Todas as respostas deles me confundiram e agora estou completamente perdido o que aprender ou estudar. Sinto que, se eu deixasse de aprender JSP e servlets, perderia muitos conceitos importantes que certamente me ajudarão no futuro.

Portanto, a pergunta, eu preciso ter servlets de base / conhecimento e JSP para aprender o Spring ou o Hibernate ou qualquer outra estrutura da Web Java.

KyelJmD
fonte
3
Observe que o hibernate é apenas uma camada de abstração de banco de dados, nada mais, e pode ser usado para conectar uma fonte de dados a qualquer tipo de aplicativo java, não apenas a um aplicativo da web.
Ed Griebel
1
Saber sobre servlets e JSP não faria mal, dê uma olhada em "Head First - Servlets e JSP". Uma leitura fácil de entender, mas também abrange muito.
21412 Jaydee
@ Jaydee Atualmente, estou liderando os Servlets Principais e JSP por servlets e JSP de Marty Hall + Murach.
precisa saber é o seguinte
Não acho que essa pergunta tenha sido respondida adequadamente. Bear Bibeault, um desenvolvedor e autores conhecidos insiste que se aprenda JSP e Servlets antes de aprender QUALQUER estrutura. Alguém quer mostrar por que isso pode ou não ser aplicável hoje? Aqui está o post dele - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev
Ok, eu tenho algumas respostas Bear Bibeault. Veja estes dois links - coderanch.com/t/633527/Spring/… e coderanch.com/t/633526/JSP/java/…
Borat Sagdiyev

Respostas:

17

Se você tem uma boa noção de HTML, CSS e JavaScript, tem muitas pessoas que acabam desenvolvendo a Web. Os conceitos por trás do JSP são muito semelhantes ao PHP. As peculiaridades são diferentes. Um servlet é o nome de um pedaço de código Java que atende a uma solicitação. É isso mesmo. Toda a estrutura original do Struts era um único servlet.

Eu adicionaria Tomcat ou Jetty à sua lista de tecnologias para aprender. O Tomcat é a implementação original do Java Servlet Container e também é um servidor da Web completo e bastante popular. O GlassFish é construído sobre ele. Eu tenho usado o Jetty em vez do Tomcat em meus projetos mais recentes porque é mais simples, mais flexível e mais rápido. O Jetty foi projetado para criar serviços da Web em vez de aplicativos da Web. Mas um aplicativo da Web é apenas um serviço da Web que serve HTML em resposta a solicitações HTTP brutas; portanto, se você entende o HTTP (com o qual pode aprender as partes importantes em poucas horas a um dia), é muito fácil trabalhar com ele.

Você pode criar um pequeno site com Tomcat e JSP ( tutorial aqui ou JSF), sabendo exatamente o que você sabe e passando algumas horas passando por tutoriais. Dessa forma, você pode começar onde se sentir confortável antes de se alongar. Em seguida, crie um javax.servlet.http.HttpServlet que escreva "<html> <head> <title> Olá </title> </head> <body> <h1> Olá, mundo </h1> </body> </ html > "para o objeto de resposta, liste-o no seu Tomcat web.xml e envie uma solicitação HTTP a partir de um navegador da web. Não é ciência de foguetes. Todas as estruturas da web Java são variações nessas duas atividades básicas.

Se você seguir a rota Jetty, é ainda menos estruturada. Confira este exemplo do Hello Jetty .

Se você quiser criar um blog ou site de comércio eletrônico padrão, eu começaria com o SquareSpace ou Wordpress ou algo assim. Você obtém tanto da prateleira que não há mais como justificar a codificação personalizada.

A força do Java para aplicativos da web é sua confiabilidade, manutenção e desempenho. PHP ou Ruby / Rails é mais simples, mas o Java será escalado o quanto você quiser. Não sou atropelado por nenhuma das estruturas da web Java. Quando você tem uma equipe trabalhando em um aplicativo Web grande ou precisa usar o Hibernate, uma estrutura como o Spring realmente brilha. A primavera é a mais popular. Quando você tiver alguma familiaridade com servlets e JSP / JSF, aprenda como o Spring vincula esses usuários a um modelo de dados.

Se você está criando um blog ou um sistema de gerenciamento de conteúdo, talvez possa se safar de um banco de dados NoSQL. Mas eu argumentaria que os bancos de dados NoSQL são basicamente apenas uma camada de cache em um sistema de arquivos, em vez de substituir os bancos de dados relacionais. Eu acho que é raro que um projeto que seja adequado para um banco de dados NoSQL seja apropriado para desenvolver em Java.

As coisas que ainda exigem código personalizado de alto desempenho (em Java, PHP, qualquer que seja) provavelmente terão um banco de dados relacional / SQL para alimentá-las. Eu recomendo que você tenha uma familiaridade básica com SQL e JDBC (Java Database Connectivity) primeiro. Depois de se sentir confortável com o mundo dos objetos Java e o mundo dos bancos de dados relacionais e SQL, você poderá aprender o Ebean / JPA (Java Persistence API) / ORM (Objeto para Mapeamento Relacional) que conecta o mundo dos objetos ao mundo relacional.

ORM são complicados e estranhos. A maioria acaba valendo a luta. Ebean é o mais simples que eu conheço. Estou mais confortável com ele após 8 meses do que com o Hibernate após 12 anos. Conheço muitas pessoas que usam o Spring com o Hibernate e elas não parecem ter nenhum problema, ou mesmo estão particularmente conscientes do que o Hibernate é ou faz, então eu diria que, se você for usar o Hibernate, faça-o através da primavera. Talvez apenas porque trabalhei com ele por mais tempo, eu consegui esboçar completamente o Hibernate com alguns mapas de hash para teste, o que é incrível (visão geral disponível mediante solicitação).

Você já possui algumas das habilidades mais importantes. Pegue os outros um de cada vez e tente não ficar sobrecarregado.

GlenPeterson
fonte
você tem algum link ou tutorial onde eu possa começar a aprender as tecnologias mencionadas? ou talvez uma boa sugestão para um livro. A maioria dos aplicativos que eu fiz usa um RDBMS, do SQL Server para um simples MySQl.
precisa saber é o seguinte
Limpei minha resposta e adicionei links conforme solicitado. O Hibernate / JPA e as várias estruturas da Web levam tempo para aprender e dominar. Na maioria das outras tecnologias, você já sabe o suficiente para poder trabalhar em algumas horas ou um dia. Não conheço o Spring, mas verifique a documentação em seu site ou obtenha um livro altamente cotado na Amazon.
precisa saber é o seguinte
Não vejo como isso responde à pergunta. Bear Bibeault, um desenvolvedor e autores conhecidos insiste que se aprenda JSP e Servlets antes de aprender QUALQUER estrutura. Gostaria de mostrar por que isso pode ou não ser aplicável hoje? Aqui está o post dele - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev
@GlenPeterson, "Toda a estrutura original do Struts era um único servlet". significado? Não tornaria cada chamada http lenta?
Pacerier
@Pacerier Costumávamos carregar o Struts 1 no Tomcat como um servlet. O servlet do Struts Controller enviava solicitações diferentes para threads diferentes da mesma maneira que um servidor da Web, apenas no nível do servlet, em vez do nível do contêiner. Eu imagino que a sobrecarga foi mínima. O que tende a ser mais lento são as chamadas do banco de dados. 2º mais lento, construindo o HTML e retornando-o ao cliente. Naquela época, era popular o uso de um servidor separado para conteúdo estático e velocidade, por isso funcionou.
GlenPeterson
4

Sugiro aprender sobre JSP e Servlets básicos, pois ele ajudará você a entender os conceitos simplificados no Spring. Como você tem experiência com CGIs baseados em PHP, a maioria dos JSP / Servlets oferece maneiras diferentes de fazer as coisas que você conhece, portanto, deve ser executado rapidamente. A coisa mais difícil que você pode encontrar será escolher os idiomas únicos no mundo java.

No que diz respeito ao Hibernate, eu concordo com o MebAlone e digo: aprenda-o se for necessário, mas se já estiver configurado, você poderá fazer 90% do que precisará, apenas utilizando o que os outros fizeram.

Ed Griebel
fonte
2

Parece que você deseja aprender o desenvolvimento web do lado do servidor com java. Existem várias estruturas. O Spring MVC é de fato o mais popular, é maduro, possui muitos recursos e é uma boa estrutura para conhecer. O Spring MVC e outras estruturas da web java abstraem a API do servlet java do programador - portanto, tecnicamente, você não precisa saber disso. Mas eu sugeriria aprender o básico - principalmente as principais classes. Um dia de estudo deve levá-lo até lá.

Quanto ao JSP, se você conhece PHP, já entende o essencial. JSP é a versão java do script do lado do servidor.

O Hibernate é uma implementação (a mais popular) do JPA, que é a especificação java para objetos persistentes no RDBMS. Com a explosão da popularidade dos bancos de dados NOSQL (Hadoop, Mongo, etc), o Hibernate é muito menos necessário do que era há 18 meses. Pessoalmente, aprendo tecnologias de armazenamento com base na necessidade de conhecimento, porque existem muitas delas e você perde o que não usa.

MebAlone
fonte
Que livro você poderia sugerir para o Spring MVC? Qual é a diferença entre Spring e Spring MVC?
precisa
Spring é uma pilha de tecnologia java que inclui uma grande variedade de projetos. Spring MVC é a estrutura da web do lado do servidor. A documentação on-line e os aplicativos de amostra do Spring são a melhor maneira de aprender o Spring MVC.
MebAlone
2

Resposta curta: não, você não precisa aprender Servlets e JSPs como um pré-requisito para o Spring MVC e muitos outros frameworks da Web Java.

Vamos tirar o Hibernate da cena primeiro. É uma estrutura de camada de persistência e não tem nada a ver com Servlets e JSPs.

A API do servlet é o nível mais baixo para quase todas as estruturas da web Java. Até JSPs são compilados em servlets.

O Spring MVC é uma camada no topo da API do Servlet com muitas extensões úteis e integração com o Spring Core. Você pode usar JSPs como um mecanismo de renderização para o Spring MVC. O tutorial do Spring MVC o levará desde o início até a criação de aplicativos da web. À medida que for avançando, você aprenderá sobre JSPs e estará bem equipado para entender a API do Servlet.

Yuriy Zubarev
fonte
que livro ou vídeo tutorial você sugeriria para aprender o Spring MVC?
precisa saber é o seguinte
1
@YuriyZubarev - Não vejo como isso responde à pergunta. Bear Bibeault, um desenvolvedor e autores conhecidos insiste que se aprenda JSP e Servlets antes de aprender QUALQUER estrutura. Gostaria de mostrar por que isso pode ou não ser aplicável hoje? Aqui está o post dele - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev
-1

parece que você está preso em um problema que eu enfrentei recentemente. Meu objetivo era aprender o desenvolvimento do lado do servidor com Java. Então, comecei com servlets, entendi o funcionamento deles e escrevi alguns programas simples para rodar no servidor TomCat. TomCat, é um pré-requisito. Você definitivamente deve estar familiarizado com o TomCat, se quiser prosseguir. No que diz respeito ao struts2 ou Spring, struts2 e spring são estruturas criadas em servlets, o que torna essencial um profundo entendimento dos servlets se você deseja ser forte no básico. Comecei com os tutoriais do Java Brains. Para um iniciante, esses tutoriais são incríveis. Alguns trabalhos de Jakob Jenkov em seu blog também são realmente incríveis. Struts2 e Spring se tornam mais simples quando você conhece servlets. No que diz respeito ao hibernate, sugiro que você comece a se familiarizar com o JDBC. Vá passo a passo, servlets, struts, JDBC, Spring, Hibernate. Espero que minha resposta ajude :).

Chan_k
fonte
é difícil ler este post (parede de texto). Você se importaria de editá -lo em uma forma melhor?
Gd: