Java Filtre modèle d'URL spécifiques à la demande params
Nous avons une situation où nous voulons utiliser le filtre pour les URL contenant des paramètres de requête spécifiques, e.g:
http://mydomain.com/?id=78&formtype=simple_form&....... http://mydomain.com/?id=788&formtype=special_form&.......
et ainsi de suite, id
sont récupérés au moment de l'exécution, je veux configurer le filtre dans web.xml
seulement si formtype=special_form
. Comment doit parvenir à la solution? Pouvez Filtrer être configuré avec des modèles regex?
Pourquoi voulez-vous le faire dans le filtre de la cartographie? Il n'est pas possible d'utiliser autre chose que "*" et presque tout peut être vérifié dans le filtre de la méthode doFilter de toute façon. La seule condition où regexp filtre mappage serait utile, c'est quand vous n'avez pas accès au filtre de la source. Est-ce votre cas?
Vous devez voir certains vraiment mauvais code, mais il est là. J'ai un java web app j'ai hérité que je vais avoir à les réécrire. Il n'y a pas de servlets! Vous accédez à des pages jsp directement, en dehors du répertoire web-inf, donc j'ai dû écrire un filtre à intercepter et de bloquer certaines demandes d'url.
Vous devez voir certains vraiment mauvais code, mais il est là. J'ai un java web app j'ai hérité que je vais avoir à les réécrire. Il n'y a pas de servlets! Vous accédez à des pages jsp directement, en dehors du répertoire web-inf, donc j'ai dû écrire un filtre à intercepter et de bloquer certaines demandes d'url.
OriginalL'auteur Rohit Desai | 2010-03-26
Vous devez vous connecter pour publier un commentaire.
Autant que je sache, il n'y a pas de solution pour la mise en correspondance des demandes de filtres par chaîne de requête directement dans
web.xml
. Donc, vous pourriez enregistrer le filtre de votreweb.xml
à l'aide d'init-params pour rendre le filtre configurable et un modèle viavoid init(FilterConfig filterConfig)
dans votrejavax.servlet.Filter
mise en œuvre.La configuration devrait ressembler à ceci dans votre web.xml:
Autres lectures:
http://java.sun.com/javaee/5/docs/api/javax/servlet/Filter.html
Un filtre qui prend en charge les modèles de mod_rewrite d'Apache (le
RewriteRule
choses et ainsi de suite) est disponible ici: tuckey.org/urlrewriteOriginalL'auteur stefanglase
Vous devez analyser l'URL params dans le corps du filtre, pas dans web.xml;
J'ai fait une telle chose, mais j'ai utilisé une phase à l'écoute, d'une entrée de configuration (dans un fichier de configuration) qui ont cartographié URL params de FQN de classes que de gérer une "action" (action, je veux dire d'un param URL à partir d'un GET/POST); que, la phase de l'auditeur serait d'analyser toutes les URL params de chaque GET/POST et l'envoyer à chacun d'eux à un Répartiteur. Le Répartiteur est d'appeler le droit de gestionnaire (singleton objet correspondant à la FQN pour que les param URL). Le gestionnaire puis juste la chose spécifique avec l'URL de la valeur qu'il reçoit.
La même chose peut être faite à l'aide d'un filtre au lieu de la phase d'écoute.
OriginalL'auteur Paul Ianas