El contenedor web crea un objeto de FilterConfig para cada filtro. Se puede utilizar para leer los parámetros de inicio del filtro. Colocado en el archivo web.xml. Si la información de configuración se modifica desde el archivo web.xml, no necesitamos cambiar el filtro. Por lo tanto, es más fácil administrar la aplicación web si algún contenido específico se modifica de vez en cuando.
Métodos de la interfaz FilterConfig
Hay cuatro métodos en la interfaz FilterConfig.
1. String getFilterName(): devuelve el nombre de filtro de este filtro tal como se define en el descriptor de implementación.
Sintaxis: public String getFilterName()
2. String getInitParameter(String name): devuelve una string que contiene el valor del parámetro de inicialización nombrado, o nulo si el parámetro no existe.
Sintaxis: string pública getInitParameter (nombre de la string)
3. Enumeración getInitParameterNames(): Devuelve los nombres del parámetro de inicialización del filtro como una Enumeración del objeto String o una Enumeración vacía si el filtro no tiene parámetros de inicialización.
Sintaxis: Enumeración pública getInitParameterNames()
4. ServletContext getServletContext(): devuelve una referencia al ServletContext en el que se está ejecutando la persona que llama
Sintaxis: ServletContext público getServletContext()
Ejemplo
índice.html
HTML
<html> <head> <title>TODO supply a title</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <h2>FilterConfig Demo</h2> <form action="abc" method="post"> User name <input type="text" name="un"><br> Password <input type="password" name="up"><br> <input type="submit" value="Login"><input type="reset" value="Clear"> </form> </body> </html>
abc.java
Java
import static java.lang.System.out; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class abc extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter p = response.getWriter(); p.println( "<font color='red'><h2>Welcome User</h2></font>"); } // <editor-fold defaultstate="collapsed" // desc="HttpServlet methods. Click on the + sign on the // left to edit the code."> @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override public String getServletInfo() { return "Short description"; } }
filter_config_demo.java
Java
package demo; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class filter_config_demo implements Filter { FilterConfig fc; @Override public void init(FilterConfig filterConfig) throws ServletException { this.fc = filterConfig; } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { String un, up; un = request.getParameter("un"); up = request.getParameter("up"); PrintWriter p = response.getWriter(); System.out.println("My filter Name is " + fc.getFilterName()); if (un.equals(fc.getInitParameter("username")) && up.equals( fc.getInitParameter("userpassword"))) { chain.doFilter(request, response); } else { RequestDispatcher rd = request.getRequestDispatcher( "/index.html"); rd.include(request, response); p.println("incorrect user name and password"); } } @Override public void destroy() { this.fc = null; } }
web.xml
XML
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"> <filter> <filter-name>filter1</filter-name> <filter-class>demo.filter_config_demo</filter-class> <init-param> <param-name>username</param-name> <param-value>sumit</param-value> </init-param> <init-param> <param-name>userpassword</param-name> <param-value>sumit@123</param-value> </init-param> </filter> <filter-mapping> <filter-name>filter1</filter-name> <servlet-name>abc</servlet-name> </filter-mapping> <servlet> <servlet-name>abc</servlet-name> <servlet-class>abc</servlet-class> </servlet> <servlet-mapping> <servlet-name>abc</servlet-name> <url-pattern>/abc</url-pattern> </servlet-mapping> <session-config> <session-timeout>30</session-timeout> </session-config> </web-app>
Producción
Primero, ingresamos la identificación de usuario y la contraseña incorrectas:
- identificación de usuario – administrador
- contraseña – 12345
Ahora ingresamos el ID de usuario y contraseña correctos:
- id de usuario – suma
- contraseña – sum@123
Publicación traducida automáticamente
Artículo escrito por absolute99 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA