Devo eseguire un'azione struts2 all'avvio del server piuttosto che alla prima richiesta.Come si esegue un'azione all'avvio del server utilizzando Struts2?
risposta
Il caricamento dei dati all'avvio di un'applicazione è un'attività comune, troverete diversi esempi sul web. Come detto in altre risposte, dovresti implementare un ServletContextListener (che non è Struts2 specifico) ... puoi read a great example here.
La cosa importante è capire il concetto di azione:
In Struts2 MVC
quadro (Model View Controller), un Action
è il Controller
(e parte del Model
).
Action
s sono invocati dai Request
s provenienti dalle Client
s (e uno d'azione si crea a ogni richiesta, quindi sono thread-safe).
Ciò significa che è necessario un Cliente, che di solito corrisponde a significa un ragazzo davanti a un PC, facendo clic su un browser ... quindi, una chiamata client non è il trigger corretto per eseguire operazioni automatizzate, lato server su oggetti condivisi.
Naturalmente è possibile implementare qualche forma di lazy-initialitazion
(ad es.con l'aiuto di un Interceptor personalizzato) in modo che il primo utente configuri qualcosa nell'ambito dell'applicazione e gli altri utenti recuperino l'oggetto già popolato, ma questo non è il modo migliore per farlo (dovresti gestire la concorrenza sull'iniziale, e avresti un utente, il primo, in attesa di operazioni che il server avrebbe potuto fare nella notte all'avvio ...).
Scrivere un ServletContextListener, questo sarà disponibile solo per ogni applicazione Web e verrà instillato al momento della distribuzione dell'applicazione.
Qui è il carico post
su start-up nel servlet e JSP è presente come di seguito
Si può chiedere pagina da caricare all'avvio del server. Questo viene fatto attraverso il file web.xml
<servlet>
<servlet-name>login</servlet-name>
<jsp-file>/login.jsp</jsp-file>
<load-on-startup>1</load-on-startup>
</servlet>
lima Normalmente jsp è compila il primo colpo. Ora il codice dice precompilare un file jsp senza attendere il primo colpo.
For struts2 you can change programatically in web.xml
<listener>
<listener-class>your listener class</listener-class>
</listener>
riferiscono questo link potrebbe essere utile a voi
Dovresti dare spiegazioni E collegamenti (e eventualmente codice) :) I collegamenti da soli non sono raccomandati perché se il sito esterno non è attivo, i lettori non saranno in grado di capire la risposta –
Se si vuole un po 'di codice da eseguire quando il vostro applicazione web, alias Servlet Context, viene avviato per la prima volta, poi si dovrebbe sfruttare i ganci forniti dalla tecnologia. L'API Servlet fornisce hook di ciclo di vita da utilizzare per il codice di attivazione in varie fasi del ciclo di vita di un'applicazione Web. Dal momento che tutte le applicazioni di Struts 2 sono le applicazioni web dell'API servlet , è possibile sfruttarle da soli.
L'interfaccia ServletContextListener fornisce un metodo di hook di init. Implementa semplicemente questa interfaccia e registra la tua implementazione nel web.xml.
Nota, se ciò che devi fare è più specifico di Struts 2, puoi prendere in considerazione l'utilizzo di qualcosa dall'interno dell'API di Struts 2.
- 1. Come si esegue il mio server bower
- 2. Come si esegue un server Mercurial?
- 3. Internazionalizzazione Struts2 utilizzando un database
- 4. Come si esegue un file utilizzando Java?
- 5. Come si esegue uno script utilizzando un file BAT?
- 6. Come si esegue una query di SQL Server da PowerShell?
- 7. Come associare JSON all'oggetto Java in Struts2 utilizzando struts2-json-plugin
- 8. Struts2 utilizzando la mappa nel tag select
- 9. Come si esegue un server remoto Fast Scala Compiler?
- 10. Come si esegue una query ldap utilizzando R?
- 11. Come si esegue l'unittest su un'app Tkinter?
- 12. Come si esegue il debug correttamente utilizzando Eclipse e Pydev?
- 13. Come si esegue una funzione di segnale acustico utilizzando SDL?
- 14. Come si esegue un'azione all'avvio del server in Scala Play Framework?
- 15. Come si esegue il commit del codice come utente diverso?
- 16. API Web Microsoft: come si esegue Server.MapPath?
- 17. Come si esegue l'aggiunta del vettore in Ruby?
- 18. Come si esegue l'elaborazione del tempo di inattività nell'applicazione WPF?
- 19. Come si esegue il debug del codice typelevel?
- 20. Come si esegue il debug durante l'implementazione del messaggio handleOpenURL?
- 21. Come si esegue la conversione del tipo in Clojure?
- 22. Come si determina l'impostazione MAXDOP del server in SQL Server?
- 23. Come si esegue una query su DynamoDB?
- 24. Interceptor token Struts2: protezione CSRF
- 25. Come si esegue un programma Python?
- 26. Come si esegue il POST di un buffer di JSON utilizzando libcurl?
- 27. Come si eliminano gli avvisi T-SQL quando si esegue uno script SQL Server 2005?
- 28. Come si esegue un server pub privato mentre si fa ancora riferimento ai pacchetti da pub.dartlang.org?
- 29. Come si esegue uno script .lua?
- 30. Come si esegue il test del codice che esegue il file IO?
Perché si desidera chiamare un ACTION all'avvio del server? – DarkHorse
Ho bisogno di preinizializzare alcuni dati memorizzati nell'ambito dell'applicazione in modo che le richieste ajax di accedere a quei dati rispondano velocemente dalla prima richiesta dell'utente. – LNyarla