Este artículo describe la función de implementación web de Java que salta automáticamente a la página de inicio de sesión después de que expira la sesión. Compártelo para su referencia, como sigue:
A través de los filtros, la sesión saltará automáticamente a la página de inicio de sesión después de que expire.
Los filtros solo son útiles en servidores compatibles con la especificación de servlet versión 2.3. Si su aplicación web necesita admitir servidores heredados, no puede usar filtros.
1. Establecer filtros básicos
Establecer un filtro implica los siguientes cinco pasos:
1) Establezca una clase SessionFilter que implique la interfaz de filtro . Esta clase requiere tres métodos, a saber: dofilter, init y destruir. El método Dofilter contiene el código de filtrado principal, el método Init establece la operación de configuración y el método Destroy se limpia.
2) Ponga el comportamiento de filtrado en el método Dofilter . El primer parámetro del método Dofilter es el objeto ServLetRequest. Este objeto proporciona al filtro acceso completo a la información entrante, incluidos los datos del formulario, las cookies y los encabezados de solicitud HTTP. El segundo parámetro es servletResponse, que generalmente se ignora en filtros simples. El último parámetro es FilterChain, como se describe en el siguiente paso, que se utiliza para llamar a una página Servlet o JSP.
3) Llame al método Dofilter del objeto SessionFilter . El método Dofilter de la interfaz de filtro toma un objeto FilterChain como su parámetro. Al llamar al método Dofilter de este objeto, se activa el siguiente filtro relacionado. Si ningún otro filtro está asociado con la página Servlet o JSP, se activa la página Servlet o JSP.
4) Registre los filtros para las páginas de servlet y JSP correspondientes . Use elementos de filtro y mapeo de filtros en el archivo de descriptor de implementación (Web.xml).
5) Desactivar el servlet activador . Evite que los usuarios pasen por alto la configuración del filtro utilizando la URL de servlet predeterminada.
El código fuente es el siguiente:
paquete com.base.filter; import java.io.ioException; import javax.servlet.filter; import javax.servlet.filterchain; import javax.servlet.filterConfig; import javax.servlet.servletexception; import javax.servlet.servletRet; import javex.servlet.servlet; importación; importar javax.servlet.servletRet; javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; import javax.servlet.http.httpsession; import com.base.constants.sessionKeyConstants; import com.mvc.entity.User; Public Class Sessionfilterfilterfilter destruir, generalmente liberando recursos} / ** * Algunas URL deben iniciar sesión para acceder (filtro de verificación de sesión) * / public void dofilter (ServletRequest arg0, servletResponse arg1, filtreChain arg2) lanza ioexception, servletException {htttpservletRequest solicitud = (httpservletRequest) arg0; HttpservletResponse respuesta = (httpservletResponse) arg1; Httpsession session = request.getSession (); // juzga si la sesión expira si ((usuario) session.getAttribute (sessionKeyConstants.login) == null) {String errores = "aún no ha iniciado sesión, o la sesión ha expirado. ¡Inicie sesión primero!"; request.setAttribute ("Mensaje", errores); // omita la solicitud de la página de inicio de sesión.getRequestDisPatcher ("/login.jsp"). Forward (solicitud, respuesta); } else {arg2.dofilter (solicitud, respuesta); }} public void init (FilterConfig Arg0) lanza ServletException {// Inicializa la operación, lee los parámetros de inicialización de la configuración de filtro en Web.xml y cumple con los requisitos que no hace uso de este método}}2. Configurar en el archivo de configuración web.xml
< <Url-Pattern>/Contract/*</url-Pattern> <URL-Pattern>/User/*</ url-Pattern> <Sapante> Reenviar </spates> <!-En este caso, si la solicitud comienza con/Contract/... o/user/... y se pasa a través del método de solicitud del despachador o se aprueba directamente del cliente, debe pasar por este filtro. -> <Sapante> Solicitud </spatcher> </filter-mapping>
Para obtener más información sobre el contenido relacionado con Java, consulte los temas de este sitio: "Estructura de datos de Java y tutorial de algoritmo", "Resumen de habilidades de operación de archivos y directorio de Java", "Resumen de las habilidades de nodo DOM de Operación Java" y "Resumen de habilidades de operación de caché de Java"
Espero que este artículo sea útil para la programación Java de todos.