2008-10-28 16 views
6

Pracuję nad projektem w Javie przy użyciu ramy sprężyny, hibernacji i tomcat.Co powoduje powielanie żądań przy użyciu wiosny, tomcat i hibernacji

Tło: Mam stronę formularza, która pobiera dane, zatwierdza je, przetwarza i ostatecznie utrzymuje dane za pomocą hibernacji. Podczas przetwarzania danych wykonuję pewne specjalne polecenia (model) przed kontynuowaniem używania hibernacji.

Problem: Z jakiegoś powodu moja metoda onSubmit jest wywoływana dwa razy, pierwszy raz przez rzeczy są przetwarzane poprawnie. Jednak po raz drugi nie są; i niepoprawna informacja jest zachowywana.

Zauważyłem także, że na innych stronach, które po prostu wyciągają informacje z bazy danych i są wyświetlane na ekranie; Zdarza się tam również podwójne żądanie.

Czy jest coś źle skonfigurowanego, czy nie używam sprężyny prawidłowo .. żadna pomoc na ten temat nie byłaby wspaniała!

Dodatkowe informacje:

Aplikacja jest ciągle rozwijany. Podczas testowania aplikacji napotykam ten problem. Używam aplikacji tak, jak oczekiwałbym jej użycia (pojedyncze kliknięcia, poprawne dane, itp.)

Odpowiedz

0

Może być tak proste, jak kliknięcie łącza dwukrotnie przez użytkowników, ponowne przesłanie formularza, gdy serwer nadal przetwarza pierwsze żądanie lub uderza w stronę POST.

Czy robisz coś po stronie serwera, aby uwzględnić duplikaty takich żądań od użytkowników?

1

Jeśli testujesz w IE, zwróć uwagę, że w niektórych wersjach IE czasem przesyła dwie prośby. W jakich przeglądarkach testujesz aplikację?

Istnieje problem z javascript, jeśli funkcja obsługi kliknięcia jest powiązana z przyciskiem przesyłania i wywołuje funkcję submit() i nie zwraca wartości false, aby anulować dymek zdarzenia.