Muszę wykonać działanie struts2 przy starcie serwera, a nie przy pierwszym żądaniu.Jak uruchomić akcję podczas uruchamiania serwera przy użyciu Struts2?
Odpowiedz
Ładowanie danych po uruchomieniu aplikacji jest częstym zadaniem, znajdziesz kilka przykładów w Internecie. Jak powiedzieliśmy w innych odpowiedziach, powinieneś zaimplementować ServletContextListener (który nie jest specyficzny dla Struts2) ... możesz read a great example here.
Ważną rzeczą jest zrozumienie Action Concept:
W Struts2 MVC
(Model-View-Controller) ram, Action
jest Controller
(i część Model
).
Action
s są wywoływane przez Request
s pochodzących z Client
s (i jedna akcja jest tworzony na każde żądanie, więc są thread-safe).
Oznacza to, że potrzebny jest Klient, który zwykle jest jednym z następujących: oznacza faceta przed komputerem, klikając na przeglądarce ... wtedy połączenie klienta nie jest właściwym wyzwalaczem do wykonania automatycznej operacji po stronie serwera na wspólnych obiektach.
Oczywiście można wdrożyć pewną formę lazy-initialitazion
(np.za pomocą niestandardowego Interceptora), aby pierwszy użytkownik skonfigurował coś w zakresie Zakresu aplikacji, a pozostali użytkownicy mogliby pobrać obiekt już zapełniony, ale nie jest to najlepszy sposób na to (należy obsłużyć współbieżność na początku, a ty masz jednego użytkownika, pierwszego, czekającego na operacje, które serwer mógł wykonać w nocy przy starcie ...).
Napisz ServletContextListener, będzie dostępny tylko jeden na aplikację internetową i otrzyma instatiated po wdrożeniu aplikacji.
Oto post
Obciążenie rozruchu w serwletu i JSP jest obecny jako poniżej
Można poprosić stronę, aby być ładowane przy starcie serwera. Odbywa się to za pomocą pliku web.xml
<servlet>
<servlet-name>login</servlet-name>
<jsp-file>/login.jsp</jsp-file>
<load-on-startup>1</load-on-startup>
</servlet>
plik JSP jest normalnie kompiluje się na pierwszym trafieniu. Teraz kod mówi, że prekompiluj plik jsp, nie czekając na pierwsze trafienie.
For struts2 you can change programatically in web.xml
<listener>
<listener-class>your listener class</listener-class>
</listener>
patrz link, może to być pomocne dla Ciebie
Powinieneś podać wyjaśnienia I linki (I ewentualnie kod) :) Linki same nie są zalecane, ponieważ jeśli zewnętrzna strona jest wyłączona, czytelnicy nie będą w stanie zrozumieć odpowiedzi –
Jeśli chcesz jakiegoś kodu do uruchomienia gdy aplikacji internetowych, aka Servlet Kontekst, zaczyna się po raz pierwszy, to należy wykorzystać haki dostarczane przez technologię. Interfejs API Servlet umożliwia przechwytywanie cyklu życia w celu użycia go do odpalenia kodu na różnych etapach cyklu życia aplikacji internetowej. Ponieważ wszystkie aplikacje Struts 2 są aplikacjami internetowymi Servlet API, możesz sam to wykorzystać.
Interfejs ServletContextListener zapewnia metodę inicjowania init. Po prostu zaimplementuj ten interfejs i zarejestruj swoją implementację w web.xml.
Uwaga, jeśli potrzebujesz więcej Struts 2, możesz rozważyć wykorzystanie czegoś z samego API Struts 2.
- 1. Jenkins - Jak uruchomić akcję po instalacji bez ponownego uruchamiania zadania?
- 2. jak zainicjować serwlet podczas uruchamiania serwera
- 3. Struts2 przy użyciu mapy w znaczniku wyboru
- 4. Wyjątek podczas uruchamiania serwera Tomcat org.apache.catalina.deploy.WebXml addServlet
- 5. Jak powiązać JSON z obiektem Java w Struts2 przy użyciu polecenia struts2-json-plugin
- 6. Błąd uruchamiania serwera wampirów
- 7. Jak uruchomić XAMPP podczas uruchamiania w systemie Windows?
- 8. Jak uruchomić program abc.exe przy użyciu php
- 9. Jak uruchomić pojedynczy test przy użyciu Jest?
- 10. PHP: Wewnętrzny błąd serwera przy użyciu WAMP (przy uruchomieniu)
- 11. Nie można uruchomić serwera rabbitmq w centów 7 przy użyciu systemctl
- 12. Błąd 2896 przy użyciu WiX C#/.NET 4 niestandardową akcję
- 13. Nie można uruchomić serwera Zookeepera - Kafka Setup
- 14. Jak wyświetlić zawartość katalogu serwera przy użyciu strony JSP?
- 15. Jak uruchomić usługę automatycznego uruchamiania okna?
- 16. Jak uruchomić Eclipse bez uruchamiania instalacji JRE?
- 17. wyszukiwanie pełnotekstowe przy użyciu serwera sql 2008
- 18. Błąd PHP napotkany podczas uruchamiania wiersza poleceń przy użyciu CodeIgniter 2.xx
- 19. Jak mogę zmaksymalizować okno przeglądarki podczas uruchamiania skryptów testowych w casperjs przy użyciu slimerjs
- 20. UILabel wewnątrz paska UIToolbar przy użyciu IB jest niewidoczny podczas uruchamiania, jak naprawić?
- 21. Paginacja po stronie serwera przy użyciu datatables
- 22. Błąd uruchamiania serwera Rails Ubuntu
- 23. BlockUI przy użyciu popup z serwera
- 24. Jak uruchomić funkcję po uruchomieniu serwera Express?
- 25. błąd podczas uruchamiania hprof-conv.exe
- 26. Jak zdefiniować nazwę wyjściową StreamResult w Struts2?
- 27. Jak uruchomić akcję w kontrolerze Ember po Render
- 28. Jak przechwycić wiadomość zatwierdzenia git i uruchomić akcję
- 29. Błąd podczas uruchamiania HTTPS na Node.js na Mac OSX przy użyciu certyfikatu StartSSL
- 30. Zaktualizuj pakiet OSGi podczas uruchamiania
Dlaczego chcesz wywołać ACTION na starcie serwera? – DarkHorse
Muszę wstępnie zainicjować niektóre dane przechowywane w zakresie aplikacji, aby żądania ajax dostępu do tych danych szybko odpowiadały od pierwszego żądania od użytkownika. – LNyarla