// Método propio del filtro. Extrae el tipo de vehículo y su matrícula de la StringQuery y // emula un acceso a la base de datos obteniendo el vehículo en cuestión. @SuppressWarnings("unchecked") public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { String tipo, matricula; List<Vehiculo> listaVehiculos; Iterator<Vehiculo> it; Vehiculo vehiculo = null; Usuario vendedor = null; // Extracción de los parámetros de la StringQuery. tipo = request.getParameter("tipo"); matricula = request.getParameter("matricula"); // Verificación de los parámetros. if ((tipo == null) || (matricula == null) || (!tipo.equals("moto") && !tipo.equals("coche"))) { request.getRequestDispatcher("./default.jsp").forward(request, response); } // Obtención de la lista de vehículos pertinente. if (tipo.equals("moto")) { listaVehiculos = (List<Vehiculo>) request.getServletContext().getAttribute("listaMotos"); } else { listaVehiculos = (List<Vehiculo>) request.getServletContext().getAttribute("listaCoches"); } // Obtención del vehículo de la lista. it = listaVehiculos.iterator(); while (it.hasNext()) { vehiculo = it.next(); if (vehiculo.getMatricula().equals(matricula)) { request.setAttribute("vehiculo", vehiculo); vendedor = vehiculo.getUsuario(); request.setAttribute("vendedor", vendedor); break; } } chain.doFilter(request, response); }