2010-11-14 25 views
10

Muszę wykonać kilka małych zadań z JSP; jest bardzo nowy JSP Zastanawiałem się, czy istnieje jakakolwiek możliwość aby dostać tylko GET lub tylko POST parametry z żądania HTTP.Parametry JSP, GET i POST

Widziałem ServletRequest.getParameter (i alikes), ale wydaje się, że te metody uzyskać zarówno GET i parametrów POST. Czy istnieje sposób na uzyskanie tylko jednego z nich, bez samodzielnego analizowania adresu URL lub treści żądania? A jeśli nie, czy istnieje jakakolwiek zasada pierwszeństwa, którą wartości nadpisują (jak parametry POST zawsze nadpisują parametry GET)?

+0

To jest właściwie zapach kodu. Jakie jest wymaganie funkcjonalne? Dlaczego po prostu nie dać GET i POST innym imieniem? – BalusC

+0

@BalusC: W rzeczywistości jest to problem związany z bezpieczeństwem. Wymaganie, aby określone parametry były wysyłane tylko jako parametry POST (lub odpowiednio GET), poprawia bezpieczeństwo użytkownika końcowego. I tak naprawdę nie chcę ślepo akceptować żadnego parametru po tym, jak nauczyłem się tego unikać w latach tworzenia aplikacji internetowych. – poke

+0

Następnie wystarczy określić metodę żądania lub zaimplementować serwlet, który umożliwia wykonanie kodu tylko dla określonej metody. Zobacz odpowiedź Bozho. – BalusC

Odpowiedz

13

Ogólnie, żądania powinny być lepiej obsługiwane w serwletach. Mają metody doGet(request, response) i doPost(request, response), aby odróżnić dwa.

Jeśli naprawdę nalegać na to robić w JSP, można zróżnicować metody korzystania request.getMethod(). To by zwróciło GET lub POST.

Ponieważ jest to praca domowa, myślę, że chodzi o to, aby nauczyć się używać serwletów i ich metod doX, więc rób to w ten sposób.

Aktualizacja: Ty może uzyskać ciąg kwerendy (request.getQueryString()), który jest tylko parametry GET, i analizować je, ale nie powiedziałbym, że jest to powszechne i dobrą praktyką.

+0

Tak, ale pamiętaj, że możesz dołączyć parametry URL do POST, więc pytanie o pierwszeństwo i pochodzenie wciąż obowiązuje, nawet w serwletach (co oczywiście jest tym, czym staje się JSP). –

+0

Jesteśmy zobowiązani do korzystania z JSP; i nie, nie sugeruj nic z powodu tego, ponieważ jest to praca domowa. Oczywiście losowo przywołuje nowe technologie i chce, abyśmy coś z nim zrobili, nie dając wcześniejszych instrukcji itp. I tak, jak T.J. Crowder powiedział, że nadal możesz ustawić parametry GET w żądaniu POST. – poke

+0

@Poke zobacz moją aktualizację. – Bozho

4

W JSP, można spojrzeć na obiekcie żądania w celu określenia, jakiego rodzaju było to żądanie (GET lub POST), ale jest tylko jeden parametr map.

-2

Spróbuj [Servlet + JSP]. W Servlet możesz wybrać pomiędzy doPost() lub doGet()