¿Cuál es la mejor manera de capturar información sobre cada acción en Java?

Suponga que desea capturar la fuente de la página de una aplicación web en cada acción, p. Ej.

public void click() {
    getPageSource();
}

public void type() {
    getPageSource();
}

public void select() {
    getPageSource();
}

Tengo que llamar a getPageSource () en cada función, pero ¿hay una forma más ordenada de lograr esto?

Respuesta 1

Si está trabajando en una aplicación web Java, debe crear un filtro para interceptar cada solicitud realizada en la aplicación. Aquí hay una muestra:

Clase Java

package edu.home;

import javax.servlet.*;

public class MyFilter implements Filter {

    public void init(FilterConfig filterConfig) throws ServletException {
    }

    public void destroy() {
    }

    public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain filterChain) throws IOException, ServletException {
        System.out.println("New request in the application!");
        //here you can add getPageSource() and send request/response
    }
}

Configure el filtro en web.xml

<!--declare the filter -->
<filter>
    <filter-name>MyFilter</filter-name>
    <filter-class>edu.home.FISesionExpirada</filter-class>
</filter>
<!-- declare where the filter should be used -->
<filter-mapping>
    <filter-name>MyFilter</filter-name>
    <url-pattern>*.jsp</url-pattern>
</filter-mapping>
Respuesta: 2

Cosas como estas generalmente se llaman preocupaciones transversales y no encajan bien en el marco orientado a objetos. La respuesta simple es que, en el viejo y simple Java, realmente no hay una mejor manera de hacer esto.

Hay soluciones, pero en mi experiencia no son muy utilizadas, véase, por ejemplo, http://www.eclipse.org/aspectj/

Respuesta: 3

No estoy seguro de mi problema. No obtengo dicha tabla cuando consulta la segunda tabla ... ambos están dentro del método onCreate db.execSQL ("CREATE TABLE" + DATABASE_TABLE + "(" + KEY_CBID ...

Estoy ejecutando un archivo jar simple usando el generador de procesos. El archivo jar simplemente calcula el cuadrado de un número pidiéndole al usuario que ingrese un número. Puedo ingresar un número en la consola pero el programa ...

Extraigo datos de un archivo línea por línea en una base de datos y no puedo encontrar una manera adecuada de marcar las líneas que ya he leído en mi base de datos. Tengo el siguiente código que uso para iterar ...

Tengo una lista agregada a mi applet con foco. En handleEvent, proceso todas las pulsaciones de teclas. Realizo acciones en las teclas. Cuando las teclas son teclas de flecha, la lista también salta por todas partes. Esta ...