¿Qué aprender para crear aplicaciones web Java en Java EE 6? [cerrado]

103

¡Mi objetivo es hacer aplicaciones web!

Terminé de leer los libros "Headfirst - Java" y "Headfirst - Servlets y JSP".

Debido a que este tema (aplicaciones web) es tan grande y complicado, me gustaría preguntar qué debo aprender a continuación. Me siento sobrecargado cuando leo palabras clave como Java EE, EJB, JSF, JPA, Glassfish ... pero no me rendiré.

¿Alguien puede decirme cómo debo proceder con el aprendizaje? ¿Debería agarrar un libro como este? Comenzando la plataforma Java EE 6 con GlassFish 3: de principiante a profesional o debería simplemente hacer algunos tutoriales en línea?

¡Gracias!

creativz
fuente
1
He leído los dos hilos. Pero de nuevo: en los hilos solo dicen "aprende Tomcat, JBoss, Hibernate, aprende esto o aquello, etc ..." Simplemente tirando con palabras. Pero quiero saber qué libro o tutorial específico debería aprender. Tal vez no exista tal forma y tengo que aprenderlo "ineficientemente" buscando cada palabra. Solo esperaba recibir un consejo sobre cómo proceder.
creativz
1
Le recomendaría que comience con Head First Servlets y JSP siempre que tenga un buen conocimiento del núcleo de Java. Si no se siente cómodo con Java como lenguaje de programación, primero debe adquirir algunos conocimientos prácticos y luego continuar con el desarrollo de aplicaciones web.
Rachel
22
Excepto que todas estas preguntas están desactualizadas ya que Java EE 6 está fuera ...
Pascal Thivent
4
@Stephen Bueno, de hecho creo que hay una gran brecha, especialmente en el elemento web (con Servlet 3.0 o JSF 2.0 y beans administrados por CDI).
Pascal Thivent
1
Es curioso cuántas de las preguntas generales más votadas como esta se cierran como "no constructivas". Yo diría que son muy constructivos, pero no son fáciles de responder de manera constructiva. Ayudan a tener una visión más amplia de lo que uno está haciendo o debería estar haciendo. Pero es bueno que se les permita permanecer en SO.
jackthehipster

Respuestas:

174

Incluso si sé que esto será controvertido, mi consejo sería comenzar solo con Java EE 6. Entonces, tome GlassFish v3 y obtenga el libro Beginning Java EE 6 Platform with GlassFish 3: From Novice to Professional o siga el tutorial de Java EE 6 . En mi opinión, el libro (que comencé a leer, así que sé de lo que estoy hablando) brinda más orientación que podría ser preferible si "todo" es nuevo para usted (cubre tanto la plataforma Java EE como sus API y el entorno para construir, implementar sus aplicaciones).

Ahora, como dije, ya puedo escuchar voces que dicen cosas como "Java EE es pesado, use Spring en su lugar, aprenda Struts o Wicket o Stripes para la capa de presentación, aprenda Hibernate para la persistencia, o no porque no me gusta ORM, use iBatis o JDBC directo en su lugar (verá, está bien con Spring, Spring es tan genial), y use Tomcat (y por qué no Jetty) o JBoss, o simplemente olvídese de todo esto y elija Grails, y bla bla bla ... " .

Pero no creo que esto realmente te esté ayudando y, sin tutoría u orientación (y no encontrarás un recurso único no obsoleto que cubra todas las combinaciones), esto debe sonar muy confuso para un principiante.

Entonces, porque creo que Java EE 6 es una gran mejora con respecto a las versiones anteriores de Java EE, porque proporciona API estándar realmente agradables para todas sus necesidades (Servlet 3.0, JSF 2.0, JPA 2.0, EJB 3.1 lite, Bean Validation 1.0, CDI , etc.), porque estas API son más que decentes, porque no hay nada realmente malo en aprenderlas, porque esto ya es una gran tarea, porque tienes que empezar por algún lado , me concentraría en Java EE 6 solamente y me olvidaría de otros marcos por ahora. Más precisamente, comenzaría con el perfil web Java EE 6 (y luego agregaría cosas si desea ir más allá).

Al hacer esto, 1) comenzará y aprenderá cosas nuevas y 2) le dará algo de tiempo a todos los demás marcos y / o herramientas para adaptarse y demostrar que todavía son necesarios. Y si lo hay, todavía será el momento de experimentar con los supervivientes y podrá comprender mucho mejor por qué existen.

Pascal Thivent
fuente
3
Gracias. Con respecto al libro, no lo he leído por completo, pero definitivamente lo recomendaría tanto para desarrolladores novatos como experimentados que quieran obtener una buena descripción general de Java EE 6. El libro está bien construido, realmente cubre muchas API (no mucho faltan), tiene ejemplos de código que demuestran todo lo presentado, son realmente didácticos y permiten ir tan profundo como quieras. Puede que haya libros más enfocados en el futuro, pero este es uno bueno.
Pascal Thivent
23
+1, pero la primavera es tan genial :-)
ChssPly76
13
No me malinterpretes, Stripes, Spring, Hibernate, ... son geniales. Pero demasiadas opciones pueden ser confusas al descubrir algo nuevo y creo que Java EE 6 le permite comenzar sin ellas.
Pascal Thivent
9
Estoy de acuerdo con usted, es muy importante aprender la pila JEE incluso si no la usaría, después de todo, esa pila es la base para todos los marcos fabulosos que hacen que las cosas sean realmente geniales, por ejemplo, Wicket está construido sobre el concepto de Front Controller que en el mundo Java significa Servlets y Filtros - si no sabes cómo funcionan, ¡tampoco entenderás realmente lo que está haciendo Wicket! ¡A menos que aceptes "magia"! como respuesta, por supuesto.
Esko
13
Más de 4 años después ... ¿cambiarías algo en tu respuesta?
jlars62
28

Mi consejo 1 es dejar de leer libros y empezar a implementar cosas. En mi experiencia, el aprendizaje de libros es un pobre sustituto del conocimiento que se obtiene al hacer cosas.


1 - Contexto: este es un consejo para alguien que acaba de terminar de leer dos libros sobre el tema y está buscando más libros para leer. En la práctica, es necesario equilibrar la lectura y la actividad. Especialmente si tiene un problema específico que está tratando de resolver.

Stephen C
fuente
29
Pero podría ahorrarle días de búsqueda. También podría darte suficiente conocimiento para responder preguntas en lugar de hacerlas y, finalmente, tener una gran reputación aquí, ¿no estás de acuerdo?
Muhammad Gelbana
6
No, no estoy de acuerdo. El OP ya ha leído dos libros de Java / Java EE. Es hora de que haga algo de programación. FWIW, no obtuve la mayor parte de mi conocimiento leyendo libros. Más bien lo obtuve PRINCIPALmente implementando cosas y refiriéndome a la documentación cuando lo necesitaba. No aprendes a andar en bicicleta leyendo libros ... y tampoco aprendes habilidades de programación de esa manera.
Stephen C
3
Es importante equilibrar readingy practice.
smwikipedia
9

Java EE 6 es realmente sorprendente. El único problema es que tiene alrededor de 2 semanas y actualmente solo hay 1 contenedor que ofrece sus características: Glassfish.

No tengo nada en contra de Glassfish, lo uso por todos lados, varias instancias de producción, me encanta el producto y el proyecto.

Dicho esto, los detalles de Java EE 6 no se traducen a Java EE 5. Algunos lo hacen, muchos lo hacen, pero el Perfil Web, Servlet 3.0, los nuevos tipos de Bean, JPA 2, etc. Esos no están ahí.

Entonces, al aprender Java EE 6 primero, simplemente se limita a un solo contenedor. Vienen más, pero aún no están aquí.

Tomcat, JBoss, OpenEJB, Glassfish, Jetty, Resin, Geronimo, etc., funcionan bien con la especificación Java EE 5 (al menos aquellas partes de la especificación que admiten, Tomcat no tiene EJB, por ejemplo).

No puedo pensar en nada en Java EE 5 que no se haya trasladado a Java EE 6. Java EE 6 hizo que algunos aspectos muy antiguos fueran opcionales, y los que simplemente no aprenderías hoy de todos modos. Java EE 6 hizo que algunas cosas de Java EE 5 fueran aún más fáciles (empaquetado notablemente, EJB Lite, por ejemplo).

Aprenda Java EE 5 ahora para que pueda aplicar lo aprendido en una variedad de entornos, en lugar de aprender Java EE 6 ahora y descubrir que es posible que no pueda usar mucho de lo que aprende.

Ningún libro le enseñará lo que necesita saber. Los servlets, por ejemplo, son una buena base, pero para algo más grande que un par de páginas o un punto final, querrá usar uno de los muchos marcos de terceros, o JSF, y ningún libro cubre el núcleo y luego un marco en la parte superior. de eso.

El tutorial de Java EE 5 es bueno para establecer las bases, mi principal queja es que no te muestran el código fuente. Más bien esperan que lo descargues y ejecutes. No se trata en el tutorial. He descubierto que los libros de Head First son bastante buenos.

Para la programación web, los servlets sin procesar son lo suficientemente importantes solo para comprender el ciclo de solicitud / respuesta, pero no es necesario un conocimiento profundo para dar un salto a un marco de terceros.

Soy un gran admirador de Stripes para un marco de acción (frente a un marco de componentes), y el único libro de Stripes disponible es excelente (lo que hace que elegirlo sea una elección fácil).

No puedo sugerir un libro de marco de componentes, y en realidad no recomendaría uno de inmediato. Los marcos de componentes realmente entierran las estructuras centrales de solicitud / respuesta HTTP. Los entierran por una razón, y ganan valor al enterrarlos, pero creo que para ser efectivo es necesario tener una comprensión sólida de estos conceptos desde el principio. Es por eso que no sugiero aprender primero un marco de componentes.

El marco JAX-RS REST, incluido en Java EE 6, pero fácilmente instalable en Java EE 5 o cualquier contenedor de servlets, es excelente. Podría decirse que es lo que debería haber sido Servlet 3.0. Pero no conozco ningún libro para eso.

Will Hartung
fuente
2
La pregunta es cuál es el estado de los servidores de aplicaciones cuando está listo para la producción. Si un proyecto determinado toma 6 meses a partir de ahora, es muy probable que Oracle y JBoss tengan servidores compatibles con JEE6, y Resin probablemente tenga un servidor de perfil web JEE6.
Thorbjørn Ravn Andersen
Bueno, JBoss saldrá en diciembre. Oracle miente bajo. Resin se ha quedado en silencio con respecto a la implementación de su perfil web. Geronimo apuesta por Web Profile con 3.0 (beta). Glassfish está disponible en 3.0.1, lo cual es realmente bueno.
Thorbjørn Ravn Andersen
5

Para Tomcat, lea el manual en el sitio web. Es muy bueno. En particular, los primeros capítulos sobre organización e implementación de aplicaciones web, y los capítulos sobre la API de Servlets y JSP.

Para Spring, el libro de Manning Spring in Action es muy bueno. De manera similar para Hibernate (el libro de Manning), pero creo que Hibernate está mayormente fuera del alcance de las aplicaciones web. Sin embargo, es tu decisión.

Wicket - Libro de Manning también. Pero en realidad, solo escribe tu código front-end en Javascript. Será menos doloroso, en mi opinión.

danben
fuente
3

No comentaré sobre otras tecnologías, pero si quieres aprender Hibernate, obtén "Hibernate Made Easy" de Cameron McKenzie (www.hiberbook.com). Vale cada centavo. Puedes terminar de leer ese libro en 2 días (literalmente). es como una novela y al final te encuentras tratando con Hibernate como un Semi-Pro.

motivador
fuente
3

Jpassion proporciona buenos videos y material para aprender Java EE 6 y otras cosas.

También debería ver ejemplos de aplicaciones:

  1. Petstore . Requiere Maven, se recomienda Glassfish. Escrito por Antonio Goncalves quien escribió el libro mencionado .
  2. Ticketmonster de JBoss . Requiere Maven y Jboss Forge . Implementar en Jboss.
jacktrades
fuente
2

Si solo desea crear aplicaciones web en Java, consulte Play Framework . Es similar a "Ruby on Rails"

Apeirogon Prime
fuente