beste Möglichkeit, einen HttpServletRequest-Parameter in einem Controller / einer Klasse zu entfernen?

8

Ich habe einen Fall, in dem ich mein HTTP-Anfrageobjekt zur weiteren Verarbeitung an andere Controller / Klassen umleiten muss. Das Problem ist, dass ich bei einigen Controllern eine bessere Kontrolle über die Parameter haben möchte, die ich an die nächste Klasse weiterleite: modifiziere, editiere, entferne sie. Also würde ich gerne wissen, ob es eine gute Übung / Muster gibt, um diese grundlegende Kontrolle über die HTTP-Anfrageparameter zu erreichen.

    
work.paul 15.10.2010, 07:53
quelle

2 Antworten

17

Es empfiehlt sich, das Anforderungsobjekt mithilfe eines Servlet-Filters in ein anderes Objekt einzubinden. Da HttpServletRequest eine Schnittstelle ist, können Sie Ihre eigene Implementierung davon schreiben. Ihre Implementierung kann die empfangene Anforderung speichern und alle eigenen Methoden an das ursprüngliche Anforderungsobjekt delegieren, aber auch die Rückgabewerte ändern, wie Sie es für richtig halten. Also können Ihre Methoden getParameter () usw. dieselbe Methode für das ursprüngliche Anforderungsobjekt aufrufen und das Ergebnis nach eigenem Ermessen ändern, bevor Sie es zurückgeben.

%Vor%

Ihr Servlet-Filter:

%Vor%

Sie können auch javax.servlet.request.HttpServletRequestWrapper ableiten, wodurch Sie eine Menge Arbeit sparen.

Siehe posten für mehr.

    
Ladlestein 15.10.2010, 08:10
quelle
2

Wenn Sie nach einem einfachen Einzeiler suchen, hat diese Technik regex für mich funktioniert:

%Vor%

Wenn Sie es in Javascript brauchen, ist es in der Tat sehr ähnlich - was schön ist!

%Vor%

clear ist der Name des zu entfernenden Parameters.

    
Dave 23.07.2014 11:33
quelle

Tags und Links