2010-03-28 14 views
6

Tengo experiencia en la escritura de aplicaciones web en Java para proyectos de clase. Mi primer proyecto usó Servlets y mi segundo, el framework Stripes.Cómo aprender conceptos de desarrollo web Java de alto nivel

Sin embargo, siento que me falta la imagen más grande del desarrollo web de Java. Realmente no entiendo los archivos web.xml y context.xml. No estoy seguro de qué constituye una aplicación Java EE en comparación con una aplicación web Java genérica. No puedo entender cómo un bean es diferente de una clase Java ordinaria (POJO?) Y cómo eso difiere de una Enterprise Java Bean (EJB). Estas son solo las primeras preguntas que podría pensar, pero hay muchas más.

¿Cuál es una buena forma de aprender cómo funcionan las aplicaciones web Java de arriba hacia abajo en lugar de simplemente cómo desarrollar una aplicación con un marco específico? (¿Hay un libro para este tipo de cosas?) En última instancia, me gustaría entender las aplicaciones web de Java lo suficientemente bien como para escribir mi propio marco.

Actualización: Para ser claros, no estoy interesado en aprender a usar marcos específicos (por ejemplo, Spring o Java EE). Estoy buscando una explicación de los aspectos internos de una aplicación web Java genérica.

Respuesta

2

La mejor manera de explorar el mundo de Java y conectar todos los puntos es simplemente usar uno de los marcos, ya que todos usan los componentes web.xml, context.xml y Java EE (todos pueden persistir los beans de entidad Pojo) . Como ya sabe el marco rayas, puedo recomendar este libro (que es corta un maneja todos los aspectos que creó):

Stripes: ...and Java Web Development Is Fun Again, por Frederic Daoud, programadores pragmáticos, ISBN: 1934356212

un enfoque más a fondo para una comprensión más profunda de estas tecnologías Java EE sería la de obtener todos los conocimientos necesarios para la aprobación de estos dos exámenes de certificación de Java:

Certificado de Componentes Web Developer (SCWCD) ​​

Certificado de Componentes de Negocio desarrollador (SCBCD)

+0

Interesante, gracias. Acabo de recoger ese libro por $ 17 en una librería usada. También tengo acceso académico gratuito a los entrenamientos de Sun para esos dos exámenes, así que podría verlos. – titaniumdecoy

5

Recomiendo Head First Servlets and JSPs de Bates and Sierra. A algunos no les gusta el estilo caprichoso, pero es una introducción sólida a Java EE. Los EJB no están cubiertos, pero un libro no puede hacer todo.

+0

Estoy más interesado en una visión general de las diferentes tecnologías que existen que en cómo usar algunas de ellas. Y más específicamente, y la comprensión de las aplicaciones web Java básicas (es decir, WEB-INF, web.xml, etc.) que se basan en esos marcos. – titaniumdecoy

+0

Bueno, definitivamente llegué con el entendimiento del Deployment Descriptor (web.xml) y de WEB-INF. HF Servelts y JSP pueden ser lo que quieras. O no. –

2

Ver las respuestas al this question.

Además, construyo aplicaciones web con Java sin utilizar el enfoque tradicional basado en servlets. Generalmente utilizo Restlet para crear aplicaciones web RESTful que ejecuto como aplicaciones Java independientes con servidores HTTP integrados. This article detalla algunas de las ventajas de utilizar un servidor HTTP incorporado en lugar de crear una aplicación web Java tradicional y desplegarla en un contenedor/servidor de aplicaciones. Si está compilando una aplicación web "normal" en lugar de RESTful (no es necesario, en mi humilde opinión), consulte Play, un avanzado framework web MVC de alto nivel que permite un desarrollo rápido con mucha menos ceremonia.

¡Buena suerte!

0

La ironía es que la razón por la que desea saber todo sobre el desarrollo web de Java es la misma razón por la que tiene tantos problemas para manejarlo. ¿Por qué cada desarrollador de Java quiere escribir un marco web?

En serio, hay una historia extremadamente larga para el desarrollo web de Java. Desde el principio, ha habido una pelea entre el peso pesado y el peso ligero. Todo comenzó con EJB y que en su mayoría eran una mierda. La alternativa a todo lo que era puntales. Y ese tipo de mierda también. Todo salió en espiral a partir de ahí con Spring trayendo la ola de inyección de dependencia, entonces JSF fue más complicado que nunca. Finalmente, apareció Rails y simplemente corrió círculos alrededor de todo lo que Java tenía para ofrecer. La cosecha actual de frameworks Java muestra algunos de los legacy y battlescars de la generación anterior, pero ha mejorado. En general, hay menos configuración y un intento de ser más ágil, con menos dependencias y capas.

Para responder a su pregunta más directamente, simplemente observe la diferencia entre un contenedor de servlets como tomcat y un servidor de aplicaciones Java EE completo como Glassfish o JBoss. Básicamente se reduce a si desea o no utilizar EJB. Si planea escribir su propio marco, no lo hará. Básicamente, solo mira cómo funcionan los contenedores de servlets/servlets. Más allá de eso, mira el código fuente de otros marcos.

+0

No quiero escribir mi propio marco web, solo quiero entender cómo están escritos. – titaniumdecoy

3

Realmente no entiendo los archivos web.xml y context.xml.

El archivo web.xml es simplemente un archivo de configuración que indica al servidor de aplicaciones bajo cada cual Filtros/servlets para cargar e instanciar y sobre el cual url-patterns esos deben ser invocados.

El context.xml es simplemente otro archivo de configuración que indica a la aplicación debajo de cada una dónde se encuentra la aplicación web en el sistema de almacenamiento local y en qué contexto de dominio/URL debe escuchar.

El servidor de aplicaciones analiza ambos archivos al iniciarse y realiza las acciones correspondientes.

No estoy seguro de qué constituye una aplicación Java EE en lugar de una aplicación web Java genérica.

No está claro qué sus propios definiciones de "aplicación Java EE" y "aplicación Java Web genérico" son. Para responder a esa pregunta (incluso a ti mismo), necesitarás buscar y/o redefinir las definiciones. Pero, en general, hay dos tipos de aplicaciones Java EE: aplicaciones web (que generalmente se implementarán con el sabor de WAR) y aplicaciones empresariales (que generalmente se implementarán con sabor de EAR). La principal diferencia es que el segundo implica EJB y, por lo tanto, requiere que se ejecute en una aplicación que admita EJB (por ejemplo, Tomcat no).

No puedo entender cómo un bean es diferente de una clase de Java ordinaria (POJO?) Y cómo eso difiere de una Enterprise Java Bean (EJB). Estas son solo las primeras preguntas que podría pensar, pero hay muchas más.

Esos son solo términos que se han aplicado dependiendo del propósito (y el historial) de la clase en cuestión. El término "POJO" es un término (generalmente negativo) que representa un Javabean que es solo un objeto de valor (totalmente sin lógica comercial, pure Bean con solo métodos getter/setter) y generalmente es un objeto modelo que es parte de un "legado" programa que usa EJB/Hibernate. Algunos lo llaman VO (Value Object), otros lo llaman DTO (Objeto de transferencia de datos), de nuevo, otros simplemente se adhieren a "javabeans".

¿Cuál es una buena forma de aprender cómo funcionan las aplicaciones web Java de arriba hacia abajo en lugar de simplemente cómo desarrollar una aplicación con un marco específico? (¿Hay un libro para este tipo de cosas?) En última instancia, me gustaría entender las aplicaciones web de Java lo suficientemente bien como para escribir mi propio marco.

Comience con Head First Servlets & JSP. Lea el Servlet API y trate de implementar uno usted mismo. El conocimiento de HTTP es sin embargo obligatorio también. Lea/depure/juegue/piratee la fuente de las implementaciones API de Servlet de fuente abierta existentes (por ejemplo, Tomcat). Lea/depure/juegue/piratee el origen de los marcos de código abierto existentes (MVC) (por ejemplo, JSF). Intenta comprender cómo funcionan y luego intenta hacerlo mejor. Para la ruta de aprendizaje ("¿Qué habilidades necesito?") Publiqué una respuesta similar antes del here.

0

Si está tratando de obtener una buena idea de para qué sirven todos los bits en la especificación Java EE y cuál de ellos puede usar para aplicaciones web, le sugiero que consulte el Java EE Tutorial. Probablemente pueda omitir las descripciones detalladas de las capacidades, ya que en su mayoría desea obtener una descripción general de alto nivel de cada tecnología, sus capacidades y cómo se adapta a todo lo demás. Sin embargo, lea algunos de los ejemplos que relacionan el nivel web, los EJB y la persistencia.

0

Obtener "Heads First Servlets and JSP" - es un libro semi-aspecto extraño, pero el contenido es excelente y la gente lo utiliza como una guía de preparación para el Examen de desarrollo de componentes web certificados de Sun (SCWCD) ​​para el cual el examen SCJP (Programador Java certificado por Sun) es un requisito previo.

Debería considerar seriamente obtener el SCJP y el SCWD, al menos porque se obliga a atravesar el material. No garantizarán que usted sea un programador mejor de lo que es ahora, pero lo expondrán a material Java/Java EE que (por lo general) solo está disponible en el lugar de trabajo.

También he utilizado algunos cursos en línea a su propio ritmo con webucator.com, y yo le sugeriría comprobar sus SCJP 5.0 y Web Services cursos (la posterior similar pero distinta de desarrollo de componentes Web.)

Hay marcos que hacen que el desarrollo web Java EE sea menos doloroso, pero cuanto más conozcas las agallas de ellos, mayor será tu comprensión (y estarás mucho mejor equipado para usarlo o sus alternativas).

Otro libro que tal vez quiera verificar (tal vez debería consultar primero) es Downey's Web Development with Java: Using Hibernate, Jsp and Servlets. Está agotado ahora, pero hay copias usadas disponibles para la venta. El Prof. Downey usó este libro para conducir un curso de Java EE en Florida Int. Universidad que cubre el inicio y el final del desarrollo de aplicaciones web basadas en bases de datos. *

  • Debe tener algunos conocimientos de SQL y la teoría de bases de datos relacionales, incluso si termina utilizando OR mapeadores. Este tipo de conocimiento va de la mano con el desarrollo de aplicaciones web no triviales.
Cuestiones relacionadas