Servlet – FilterConfig

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *