1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.struts2.dispatcher.ng.listener;
22
23 import org.apache.struts2.ServletActionContext;
24 import org.apache.struts2.dispatcher.Dispatcher;
25 import org.apache.struts2.dispatcher.ng.InitOperations;
26 import org.apache.struts2.dispatcher.ng.PrepareOperations;
27
28 import javax.servlet.ServletContextEvent;
29 import javax.servlet.ServletContextListener;
30
31 /***
32 * Servlet listener for Struts. The preferred way to use Struts is as a filter via the
33 * {@link org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter} and its variants. This servlet dispatcher
34 * is only for those that really know what they are doing as it may not support every feature of Struts, particularly
35 * static resource serving.
36 */
37 public class StrutsListener implements ServletContextListener {
38 private PrepareOperations prepare;
39
40 public void contextInitialized(ServletContextEvent sce) {
41 InitOperations init = new InitOperations();
42 try {
43 ListenerHostConfig config = new ListenerHostConfig(sce.getServletContext());
44 init.initLogging(config);
45 Dispatcher dispatcher = init.initDispatcher(config);
46 init.initStaticContentLoader(config, dispatcher);
47
48 prepare = new PrepareOperations(config.getServletContext(), dispatcher);
49 } finally {
50 init.cleanup();
51 }
52 }
53
54 public void contextDestroyed(ServletContextEvent sce) {
55 prepare.cleanupDispatcher();
56 }
57 }