我必须在服务器启动时执行struts2操作,而不是第一次请求。如何在使用Struts2的服务器启动时运行一个操作?
回答
在启动应用程序时加载数据是一项常见任务,您可以在网上找到几个示例。正如在其他答案中所说的,你应该实现一个ServletContextListener(这不是Struts2特有的)......你可以read a great example here。
这里最重要的是理解概念的行动:
在(模型 - 视图 - 控制器)框架,一个Action
是Controller
(和Model
的一部分)。
Action
s被来自Client
的Request
s调用(并且每个请求都创建一个Action,因此它们是线程安全的)。
这意味着你需要一个客户端,通常是意味着一个人在PC前,点击浏览器......然后,客户端调用不是执行自动的服务器端操作的正确触发器在共享对象上。
当然,你可以实现某种形式的lazy-initialitazion
(例如。在一个自定义的拦截器的帮助下),以便第一个用户在Application范围内设置一些东西,其他用户将检索已经填充的对象,但这不是最好的方法(你应该处理并发在初始阶段,你将有一个用户,第一个等待服务器在启动当晚可能完成的操作......)。
编写一个ServletContextListener,这将只在每个Web应用程序中可用,并且在应用程序部署时将被安装。
这里是在Servlet和JSP启动时post
负载存在如下
你可以问问网页服务器启动时加载。这是通过web.xml
文件完成的
<servlet>
<servlet-name>login</servlet-name>
<jsp-file>/login.jsp</jsp-file>
<load-on-startup>1</load-on-startup>
</servlet>
正常情况下,jsp文件在第一次打击时编译。 现在的代码说预编译一个jsp文件,而不用等待第一个命中。
For struts2 you can change programatically in web.xml
<listener>
<listener-class>your listener class</listener-class>
</listener>
参考此链接可能会对你有所帮助
你应该给解释和链接(并最终编码):)不建议单独使用链接,因为如果外部网站停工,读者将无法理解答案 –
如果你想一些代码来运行,当你Web应用程序,又名Servlet上下文,开始的第一次,那么你应该利用由技术提供的钩子。 Servlet API提供了生命周期钩子,用于在Web应用程序的不同生命周期阶段触发代码。由于所有的Struts 2应用程序都是Servlet API Web应用程序,那么你可以自己利用这个。
ServletContextListener接口提供了一个init钩子方法。您只需实现此接口并在web.xml中注册您的实现。请注意,如果您需要做的是更多Struts 2的特定功能,那么您可以考虑从Struts 2 API本身内部使用某些东西。
- 1. 如何在Express服务器启动时运行某个功能?
- 2. 如何在服务器启动时运行capistrano任务?
- 3. 如何在服务器启动时自动运行node-inspector?
- 4. 如何在glassfish服务器启动时自动运行程序?
- 5. 如何在JBOSS AS启动时运行/启动特定服务?
- 6. MATLAB互操作服务器(自动化服务器)可用于运行时库?
- 7. 如何运行使用npm启动服务器的网站
- 8. jekyll作为一个.exe运行,它也启动rails服务器?
- 9. 如何在mysql服务器启动时运行mysql命令?
- 10. 如何在Docker容器中启动时运行服务
- 11. 如何在启动时运行django开发服务器?
- 12. 如何在启动时运行TeamSpeak3服务器?
- 13. 在Spring启动时运行服务器时在启动模式下启动GWT
- 14. 运行应用程序时服务未启动 - 如何显式启动服务?
- 15. 如何在asp.net服务器启动时首先执行某些操作
- 16. 在Eclipse中的Tomcat服务器上运行jsp网站 - 如何在服务器启动时运行Main方法?
- 17. 如何使用构建服务器启动并运行?
- 18. 如何使用Bluepill启动并运行ruby服务器脚本?
- 19. 如何在运行或启动时在Spring中禁用服务?
- 20. 在四台服务器上运行一个操作系统
- 21. 如何在启动tomcat服务器时运行一个长时间的批处理作业?
- 22. Ruby on rails:如何在服务器启动时自动运行后台任务?
- 23. 如何在特定时间运行一个动作 - Rails Heroku服务器?
- 24. 在服务器启动时使用aotimport
- 25. 我如何在电脑启动时自动运行服务
- 26. 如何运行一个shell启动linux操作系统?
- 27. 启动IIS服务器,如果IIS服务器没有运行
- 28. BlackBerry Ripple模拟器启动服务不执行任何操作
- 29. 在服务器启动时运行应用程序
- 30. 启动服务器时使用Pycharm启动后台作业
为什么要在服务器启动时调用ACTION? – DarkHorse
我需要预先初始化存储在应用程序范围中的一些数据,以便自从来自用户的第一个请求以来,访问这些数据的ajax请求就会快速响应。 – LNyarla