npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

adejava

v1.0.0

Published

AdeJava es un proyecto para Java EE 7

Downloads

8

Readme

adejava

AdeJava es un proyecto para Java EE 7

La tecnología de servlet en Java EE 7 se ha actualizado para incluir características que ayudan a incorporar la tecnología para su uso con tecnologías más nuevas, como HTML 5. La versión anterior, Servlet 3.0, se centró en hacer que los servlets sean más fáciles de escribir y administrar. Tales actualizaciones como configuración web.xml opcional, el procesamiento de solicitudes asíncronas y la incorporación de la tecnología FileUpload hacen que la escritura de servlets sea mucho más fácil que antes.

La versión de Servlet 3.1 trae más mejoras para ayudar a poner la tecnología en línea con las tecnologías actuales, incluidas las siguientes:

  • Se basa en las nuevas características de Servlet 3.0, presentando la API de E / S sin bloqueo
  • La capacidad de trabajar con el protocolo WebSockets.
  • Incluye mejoras de seguridad
  • Ofrece otras actualizaciones diversas

E / S sin bloqueo

La tecnología de servlet ha permitido solo la entrada / salida tradicional (bloqueo) durante el procesamiento de solicitudes desde su inicio. En la versión Servlet 3.1, la nueva API de E / S sin bloqueo hace posible que los servlets lean o escriban sin ningún bloqueo. Esto significa que se pueden realizar otras tareas al mismo tiempo que se realiza una lectura o escritura, sin esperar. Esto, a su vez, significa que ahora puede realizar Ajax y actualizaciones de página parciales más fácilmente sin realizar llamadas separadas al servlet para cada actualización. Esta solución abre un nuevo campo de posibilidades para los servlets, haciéndolos mucho más flexibles para su uso junto con tecnologías modernas como el protocolo WebSockets.

Para implementar una solución de E / S sin bloqueo, se han agregado nuevas interfaces de programación a ServletInputStream y ServletOutputStream, así como dos detectores de eventos: ReadListener y WriteListener. Las interfaces ReadListener y WriteListener hacen que el procesamiento de E / S del servlet se produzca sin bloqueo a través de métodos de devolución de llamada que se invocan cuando el contenedor puede hacerlo sin bloquear otros procesos. Use el método ServletInputStream.setReadListener (ServletInputStream, AsyncContext) para registrar un ReadListener con un ServletInputStream, y use el método E / S de lectura ServletInputStream.setWriteListener (ServletOutputStream, AsyncContext) para registrar un WriteListener.

Las siguientes líneas de código demuestran cómo registrar una implementación de ReadListener con un ServletInputStream:

AsyncContext context = request.startAsync(); ServletInputStream input = request.getInputStream(); input.setReadListener (new ReadListenerImpl(entrada, contexto));

En Servlet 3.0, AsyncContext se introdujo para representar un contexto de ejecución para una operación asincrónica que se inicia en una solicitud de servlet. para usar el contexto asincrónico, un servlet debe anotarse como @WebServlet y el atributo asyncSupported de la anotación debe establecerse en verdadero. la anotación @WebFilter también contiene el atributo asyncSupported.

Veamos cómo realizar una lectura sin bloqueo. Después de que se haya registrado un oyente con un ServletInputStream, el estado de una lectura sin bloqueo se puede verificar llamando a los métodos ServletInputStream.isReady y ServletInputStream.isFinished. Por ejemplo, una lectura puede comenzar una vez que el método ServletInputStream.isReady devuelve un verdadero, como se muestra aquí:

while (is.isReady () && (b = input.read ())! = -1)) { len = is.read (b); String data = new String (b, 0, len); }

Para crear un ReadListener o WriteListener, se deben anular tres métodos: onDataAvailable, onAllDataRead y onError. El método onDataAvailable se invoca cuando los datos están disponibles para ser leídos o escrito, onAllDataRead se invoca una vez que se han leído o escrito todos los datos, y se invoca onError si se encuentra un error. El código demuestra una forma de implementar la interfaz ReadListener.