Cómo crear una aplicación web en Java

¡Eso realmente depende de lo que intentes lograr!
Las aplicaciones ” Toy ” probablemente pueden escribirse más fácilmente usando JSP y servlets que se ejecutan en Tomcat o Jetty.
En mi opinión no tan humilde, la mantenibilidad es un problema real con estas tecnologías.

Las aplicaciones ” reales ” tienden a alejarse de JSP y los servlets debido a la inevitable combinación de código UI con lógica empresarial. Aquí es donde es mejor usar un marco probado. Si realmente quieres un MVC estricto, entonces Spring hará el truco. Si está más interesado en un marco de componentes sólidos, entonces JSF con PrimeFaces es probablemente el camino a seguir. Existen muchos otros marcos que cubren estas dos metodologías (MVC y Componente). ¡Por favor no comience una guerra de llamas!

En general, es una buena idea elegir un marco que dificulte:

  • abrir agujeros de seguridad
  • escribir SQL

Para evitar ataques de scripts o formularios, elija un marco que realice la validación automatizada del lado del servidor y genere los detalles de Javascript para usted.
Para evitar que se inyecte SQL, la solución más simple es usar un ORM como JPA (EclipseLink, Hibernate, etc.)

Además, elija un marco que tenga una separación muy clara y limpia de presentación (HTML) y lógica de negocios (Java). Esto permite una división del trabajo mucho más fácil entre las personas de UI / UX y los programadores de back-end.

Algunas opciones:

  • Play Framework está inspirado en Rails. Un inconveniente es que no es idiomático cuando se usa Java, ya que fue escrito en Scala y ese es su idioma nativo. No es compatible con Servlets Framework, por lo que no se puede usar con Tomcat o para implementaciones “empresariales” donde se necesita un servidor de aplicaciones.
  • Spring Framework MVC es popular y es compatible con Servlets Framework. JHipster lo combina con AngularJS y su pila de línea de comandos de Bower, etc. O puede usarse con el JSP tradicional (que se está volviendo menos popular y no funciona bien con los servidores web integrados), o con la nueva recomendación de Spring Thymeleaf.
  • Dropwizard se ve bien para una solución de backend API REST pura. No tiene ninguna tecnología de página en absoluto.

Apache HTTP Server no es útil por sí solo para aplicaciones Java. Solía ​​ser más popular y tiene un protocolo dedicado para conectarse a Tomcat – Connectors How To. Pero recientemente, parece que nginx es más popular como servidor web front-end. ¿Alguien podría explicar este código de servidor proxy nginx y Tomcat?

Para saber cuándo y dónde usar JSP, Servlets y Core Java, comprenda la arquitectura de la aplicación web básica. En general, las aplicaciones web siguen una arquitectura de 3 capas.
1. Capa de presentación:
Esto incluye todas las páginas web (GUI), diseñadas con HTML, Javascript, CSS.
2. Lógica empresarial:
En esta capa, utilizamos Servlets para recibir la entrada del usuario desde la GUI y ejecutar la lógica empresarial (escrita en el núcleo de Java).
3. Capa de base de datos:
Esta capa se utiliza para almacenar la información necesaria en la base de datos.
Los controladores JDBC se utilizan para cumplir este propósito.

Espero que esto ayude !!
Siéntase libre de comentar para saber más 🙂

Debe conocer algunos conceptos básicos para crear una aplicación web en Java.

  1. Java Development Kit (JDK) es un entorno de desarrollo para crear aplicaciones, applets y componentes utilizando el lenguaje de programación Java.
    El JDK incluye herramientas útiles para desarrollar y probar programas escritos en el lenguaje de programación Java y que se ejecutan en la plataforma Java.
  2. El contenedor de servlets (contenedor web) es responsable de administrar el ciclo de vida de los servlets, mapear una URL a un servlet en particular y garantizar que el solicitante de la URL tenga los derechos de acceso correctos. Los contenedores web no comerciales incluyen Apache Tomcat (anteriormente Jakarta Tomcat), Apache Geronimo, GlassFish, JBoss, Jetty …
  3. Integrated Development Environment (IDE) es una aplicación de software que proporciona instalaciones integrales a los programadores informáticos para el desarrollo de software. Un IDE normalmente consta de un editor de código fuente, herramientas de automatización de compilación y un depurador. Algunos IDE gratuitos contienen un compilador, un intérprete o ambos, como NetBeans y Eclipse. Los conocidos y comerciales incluyen IBM websphere, MyEclipse, …
  4. Database Management System (DBMS) es una aplicación de software que interactúa con el usuario, otras aplicaciones y la base de datos para capturar y analizar datos. Un DBMS de propósito general está diseñado para permitir la definición, creación, consulta, actualización y administración de bases de datos. Los DBMS conocidos incluyen MySQL, PostgreSQL, Microsoft SQL Server, Oracle, Sybase e IBM DB2 …
  5. La API de Java Database Connectivity (JDBC) es el estándar de la industria para la conectividad independiente de la base de datos entre el lenguaje de programación Java y una amplia gama de bases de datos: bases de datos SQL y otras fuentes de datos tabulares, como hojas de cálculo o archivos planos. La API JDBC proporciona una API de nivel de llamada para el acceso a la base de datos basada en SQL.
    La tecnología JDBC le permite utilizar el lenguaje de programación Java para explotar las capacidades de “Escribir una vez, ejecutar en cualquier lugar” para aplicaciones que requieren acceso a datos empresariales. Con un controlador con tecnología JDBC, puede conectar todos los datos corporativos incluso en un entorno heterogéneo.

Practicamente :

  1. Kit de desarrollo de Java (JDK): descargue el último JDK e instálelo. Java SE – Descargas
  2. Contenedor de servlet (contenedor web) : descarga el servidor Tomcat Tomcat 7 Descargas
  3. Integrated Development Environment (IDE) descarga Eclipse IDE para desarrolladores JavaEE, descomprime y ejecuta. Eclipse IDE para desarrolladores Java EE
  4. Sistema de gestión de bases de datos (DBMS) descarga MySql server esencial instalador. Instalación y configuración. Descargue una herramienta de navegador mysql como MySql Browser. http://downloads.mysql.com/archi
  5. Descargue el archivo jar del conector mysql o la dependencia de Maven y agréguelo a la ruta de compilación de su proyecto. http://dev.mysql.com/doc/connect

Si aún no sabes cómo hacerlo. Ve a youtube para encontrar algún ejemplo. Te encuentro algunos:
JDK:
Eclipse, Tomcat, primera aplicación web:
Mysql y JDBC

Eche un vistazo al framework java de código abierto, centrado en el rápido desarrollo de aplicaciones empresariales: la plataforma CUBA. Trae muchas cosas listas para usar, comunes para la mayoría de las aplicaciones empresariales, como seguridad, auditoría, tareas programadas, gestión de permisos en tiempo de ejecución, informes, atributos dinámicos (EAV), etc.

Usando CUBA Studio, una herramienta de desarrollo especializada, puede construir infraestructura en pocos minutos, crear o realizar ingeniería inversa del modelo de datos, andamio de pantallas CRUD, servicios, pantallas de diseño visual (vea la imagen a continuación), etc. De hecho, no necesita poner ninguna línea de código para desarrollar una aplicación CRUD estándar; Studio lo hará si usted (vea los videos de inicio rápido ).

Aún así, la plataforma le brinda acceso completo para agregar nuevos y modificar mecanismos existentes. Por lo tanto, todo el ecosistema de Java se puede utilizar en aplicaciones CUBA.

En resumen, tiene muchos componentes empresariales de alto nivel listos para usar y una herramienta especializada para un inicio rápido y un desarrollo fácil y rápido.

Java tiene un marco de aplicación web, que es más como un estándar. El famoso estándar (¿infame?) J2EE (Enterprise Edition). La mayoría de los sistemas bancarios del mundo, ERP del gobierno, etc. todavía están escritos en Java. Algunos dicen que es por razones heredadas.

Si está interesado en J2EE, pruebe con el desarrollo de Servlets. E implementarlos en el servidor Glassfish. O Apache Tomcat, tu eliges.

Sin embargo, si realmente desea enfocarse en la productividad y la lógica de la aplicación, no tanto en cómo las partes se unen para funcionar a través del protocolo de Internet como una aplicación estable y escalable, su mejor opción es ir con ADF (Marco de desarrollo de aplicaciones) ) JDeveloper es un buen IDE para eso, con cientos de bibliotecas y componentes. Es comparable a Microsoft .NET en su riqueza. ADF es el siguiente paso, después de Servlet, JSP y JSF.

Con ADF, se trata principalmente de manipulación XML en lugares, y escribir algunos Java Beans para manejar o anular algunos oyentes. Puede crear aplicaciones complicadas en poco tiempo. Y puede implementar eso en el servidor WebLogic.


Referencias para ADF:

  • Blog de Andrejus Baranovskis
  • Biblioteca de documentación en línea de Oracle Fusion Middleware11g versión 1 (11.1.1.7)

En aras de la divulgación completa, trabajo en Oracle. Mis escritos aquí son solo mi opinión, y no reflejan necesariamente las opiniones de mi empleador.

Gracias por el A2A. Creo que Hai Nguyen proporcionó una excelente respuesta sobre las respuestas combinadas, mejor de lo que podría haberlo hecho, así que por favor, siga con la suya. También hay una serie de otras respuestas aquí, que a menudo muestran un enfoque más específico utilizando ciertas herramientas. Si esas eran las herramientas con las que ya estaba familiarizado o quería aprender, entonces también puede consultar esas respuestas para obtener consejos.

Aunque existen algunas herramientas sofisticadas y sofisticadas para crear sitios web, siempre existe una compensación. Entonces, si desea la forma más aceptada y generalizada de buscar una solución de este tipo, una donde pueda encontrar código de muestra y mucha ayuda en StackOverflow u otros foros, y que le ofrezca la máxima flexibilidad, entonces la respuesta de Hai debería serle útil.

Hay muchas maneras:

  1. Use Applet o Java Web Start: este es el clásico
  2. Usar como un servlet
  1. Algunos componentes de servlet y el marco MVC además de la tecnología de Servlet como Struts, Spring ya se analizan en las respuestas anteriores que básicamente usan el descriptor de la aplicación web y el uso de un contenedor web como Tomcat.
  • Usar como aplicación web incorporada
    1. El uso de un contenedor web integrado como el embarcadero en su aplicación web
  • Usar como JSF
    1. Algunos marcos JSF ya se analizan en respuestas anteriores
  • Usar como en la aplicación empresarial
    1. Incorporación de J2EE y otros marcos como paquete EAR
  • Hay otras formas, pero no es la forma estándar de Java como se discutió en las respuestas anteriores.
  • Hay muchas formas dependiendo de su arquitectura y solo estoy considerando aquí el lado del servidor (desde recibir los datos de solicitud HTTP hasta su control solamente) excluyendo la capa posterior (conectores al sistema de almacenamiento como JDBC, API XML, etc.).

    El lado del cliente de las cosas (lado del navegador) se discute también en respuestas anteriores que pueden incluir JavaScript, HTML, CSS, etc.

    Java tiene un sistema de aplicación web, que es más similar a un estándar. El conocido estándar J2EE (Enterprise Edition) (¿escandaloso?).

    En cualquier caso, en el caso de que realmente necesite concentrarse en la rentabilidad y el fundamento de la aplicación, no realmente como las probabilidades y los extremos se encuentran para funcionar en la convención web como una aplicación estable y adaptable, su opción más lógica es correr con ADF (Marco de desarrollo de aplicaciones). J2EE Developers es un IDE decente para eso, con muchas bibliotecas y partes. Es prácticamente idéntico a Microsoft .NET en su generosidad. ADF es el siguiente paso, después de Servlet, JSP y JSF.

    Para hacer una aplicación web, necesitamos un servidor. Servlets, JSP, etc., son solo proyectos que supervisan las demandas del cliente. Fabricar un servidor puede parecer un trabajo importante, pero en realidad es un par de líneas de código en Java, por así decirlo. Puedo decir solo en lo que respecta a los servlets, ya que los he utilizado comúnmente. En primer lugar, necesita una aplicación de servidor como Apache Tomcat,

    En general, el navegador no lee el código Java excepto los applets (para esto también debe agregar el complemento Java al navegador).

    Java es compilado por JVM que está instalado en su máquina servidor y la respuesta se enviará al navegador en HTML que se mostrará por el navegador.

    Para ser precisos para las aplicaciones web, tenemos el marco MVC (Model-View-Controller). Donde Ver es algo que ves en el navegador. Ahora, para el controlador y el modelo, puede usar Java. Para eso, debe enviar una solicitud desde su front-end (página HTML) al controlador (Servlet). Ahora el controlador manejará su solicitud y realizará la tarea utilizando el modelo (lógica empresarial escrita en Java). Después de completar el controlador de tareas, envíe la respuesta al navegador en HTML.

    Para que los applets se ejecuten en el navegador, debe instalar el tiempo de ejecución de Java en el navegador. Que puede instalar desde el siguiente enlace:

    java.com: Java + You

    Hay 3 formas de lograr esto.

    1. Applet Java: un applet es un programa que se ejecuta en un navegador web. Esta tecnología ahora está desactualizada.
    2. Inicio web Java: con la ayuda de esto, podemos ejecutar las aplicaciones Java de escritorio a través del navegador web. En realidad, estos no se ejecutan dentro de un navegador web, sino que se descarga un archivo .jnlp que ejecuta la aplicación.
    3. JavaScript: con JavaScript puede crear aplicaciones web integradas que se ejecutan en la ventana del navegador. Este es el mejor método.

    Supongo que solo eres nuevo en las aplicaciones web y no en Java en sí.

    Puede comenzar a trabajar con Java Server Pages (JSP), y definitivamente también debe incluir Java Server Faces (JSF) que hace que trabajar con JSP sea mucho más fácil. Hay varios libros que puedes leer para aprender esto.

    Pero si no sabe mucho sobre Java, primero le sugiero que regrese y que su base en Java sea fuerte primero porque después de que todos los JSP son código Java incrustado dentro de HTML, luego continúe aprendiendo sobre los servlets y luego continúe con los JSP.

    Mediante el uso de servlets y jsp, puede crear proyectos web dinámicos. Java proporciona soporte para aplicaciones web a través de Servlets y JSP .

    Debe usar “Eclipse IDE para desarrolladores Java EE” para crear su servlet o aplicación jsp. Como el servlet es una tecnología del lado del servidor, necesitará un contenedor web que admita la tecnología Servlet, por lo que puede usar el servidor Apache Tomcat.

    De esta manera, puede crear aplicaciones web en Java a través de servlet o jsp y se visualiza en el navegador.

    Pregunta graciosa …

    Primero, la etiqueta de script no está reservada para JavaScript. Aunque hoy apenas se usa para otra cosa …

    En segundo lugar, solía haber una manera de ejecutar código Java en los navegadores (a través de las etiquetas de applet o de objeto, desde la memoria). Estos se llamaron applets, y fueron bastante populares a la vez. Ahora son obsoletos tanto por Oracle como por los proveedores de navegadores, en parte por razones de seguridad. Todavía puede encontrar mucha literatura en la Red sobre esto, pero en mi humilde opinión, no vale la pena perder tiempo en ello.

    A continuación, una forma de ejecutar código Java en el navegador es … ¡convertirlo a JavaScript! Una forma de hacerlo, bastante potente y eficiente, es usar GWT, el kit de herramientas web de Google.

    Otra forma, bastante nueva AFAIK, es utilizar JavaPoly. Soy un poco escéptico sobre esto. Al menos para el rendimiento. Pero no he explorado eso, sinceramente.

    Hoy usa Java en aplicaciones web principalmente para generar y servir dinámicamente al navegador web todo el HTML + CSS + JavaScript + cualquier otra cosa que su navegador web muestre y ejecute, y eso tiene que venir de alguna parte (ya sea contenido estático de archivos) o, más bien, contenido dinámico generado sobre la marcha).

    Por otro lado, en el pasado, muchos applets de Java usados ​​se ejecutaban en el lado del cliente a través del complemento de Java, que se utiliza para ejecutar programas compilados de Java que se obtuvieron de la web, al igual que el complemento Flash o el complemento Unity 3D. El complemento de Java viene con el Java Runtime Environment (JRE), y debe ser instalado por aquellos que quieran usar applets de Java.

    La popularidad del applet de Java se ha desvanecido durante mucho tiempo, y el soporte para el complemento de Java se eliminará por completo algún día en un futuro próximo.

    Otra opción es Java Web Start, que es principalmente una forma de iniciar desde su navegador un iniciador de Java que descarga (y almacena en caché localmente) una aplicación Java compilada de la red. El navegador web aquí actúa solo como una forma conveniente de elegir una aplicación Java para iniciar, y después de iniciar las dos, continúe por separado.

    Entonces, para responder a su pregunta: el uso adecuado actual de Java para aplicaciones web está en el lado del servidor, generando y sirviendo el contenido a su navegador web.

    Para crear una aplicación web, necesitamos un servidor. Servlets, JSP, etc. son solo programas que ayudan a gestionar las solicitudes del usuario. Construir un servidor puede parecer un gran trabajo, pero en realidad son solo unas pocas líneas de código en Java. Solo puedo decir sobre los servlets, ya que los he usado muchas veces. Primero necesitas una aplicación de servidor como Apache Tomcat, Weblogics. Prefiero Tomcat ya que es gratis. Entonces descargue tomcat en su sistema, establezca classpaths para hacer referencia a su API (Tomcat’s). Crea un programa. Tan sencillo como eso. Ahora tiene que crear páginas web y escribir código en ellas para interactuar con el servidor, es decir El programa que creó como servidor. El programa del servidor recibe una solicitud y la procesa en consecuencia. También puede usar JDBC en su programa de servidor para la conexión de la base de datos. ¡Espero que esto haya sido informativo para ti! 🙂

    La respuesta de Miguel Paraz es genial, pero creo que definitivamente deberías probar Grails Framework. Utiliza el Groovy de tipo dinámico y es muy similar a Ruby on Rails. Ver sitios web con Grails.

    Mejor obtenga algunos conocimientos de Java, especialmente el adaptador JSP y MySQL. Cómo construir un programa sin saber básico me parece tarea escolar.

    Aunque puedes buscar tutoriales de JSP. Netbeans es una buena idea y lo ayudará a escribir un mejor código una vez que sepa lo que necesita escribir.

    Realmente depende de lo que intentes hacer. Con las aplicaciones de interfaz de usuario enriquecidas, puede utilizar docenas de marcos con aún más funcionalidades. (como Vaadin, gwt, zkframework, spring, struts, hay muchos de ellos realmente).

    Si se trata de algo que no es ui, también hay muchas cosas escritas que puedes usar. Entonces, si aclaras tu pregunta, obtendrás consejos más valiosos.

    Otra opción que puede ver es la aplicación 10Duke SDK para redes sociales. En realidad, se puede usar para prácticamente cualquier tipo de desarrollo de aplicaciones Java. El código está bien probado y se ha utilizado en una gran cantidad de implementaciones de producción. http://developer.10duke.com

    Si desea aprovechar los Java Servelets básicos, puede comenzar con este agradable tutorial: Comience con la programación de Java Servlet
    También recomiendo usar el gran Play Framework.