j2ee 获取上下文环境

j2ee 获取上下文环境

问题:1.不访问服务,如何获取上下文环境?

解答:1.通过在web里面配置servlet来解决。

1.1 web.xml

1     <servlet>
2         <servlet-name>GetContext</servlet-name>
3         <servlet-class>com.ge.context.GetContext</servlet-class>
4         <load-on-startup>1</load-on-startup>
5     </servlet>

1.2GetContext.java

 1 package com.ge.context;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.ServletException;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 
10 import org.springframework.web.context.WebApplicationContext;
11 import org.springframework.web.context.support.WebApplicationContextUtils;
12 
13 public class GetContext extends HttpServlet {
14     private static final long serialVersionUID = 1L;
15 
16     public GetContext() {
17         super();
18     }
19 
20     public void init() {
21         WebApplicationContext context = WebApplicationContextUtils
22                 .getWebApplicationContext(this.getServletContext());
23         ContextHolder.getInstance().setApplicationContext(context);
24         ContextHolder.getInstance().setServletContext(this.getServletContext());
25     };
26 
27     protected void doGet(HttpServletRequest request,
28             HttpServletResponse response) throws ServletException, IOException {
29         init();
30     }
31 
32     protected void doPost(HttpServletRequest request,
33             HttpServletResponse response) throws ServletException, IOException {
34         init();
35     }
36 }

1.3ContextHolder.java

 1 package com.ge.context;
 2 
 3 import javax.servlet.ServletContext;
 4 
 5 import org.springframework.context.ApplicationContext;
 6 
 7 public class ContextHolder {
 8     private final static ContextHolder instance = new ContextHolder();
 9     private ApplicationContext ac;
10     // added by cobble.ge 20130415
11     private ServletContext servletContext;
12 
13     private ContextHolder() {
14     }
15 
16     public static ContextHolder getInstance() {
17         return instance;
18     }
19 
20     public synchronized void setApplicationContext(ApplicationContext ac) {
21         this.ac = ac;
22     }
23 
24     public ApplicationContext getApplicationContext() {
25         return ac;
26     }
27 
28     public ServletContext getServletContext() {
29         return servletContext;
30     }
31 
32     public synchronized void setServletContext(ServletContext servletContext) {
33         this.servletContext = servletContext;
34     }
35 }

------------

@cobble HF.AH.CHN 2013-04-18

资料1:互联网,忘了从哪位仁兄的文章看的了。

原文地址:https://www.cnblogs.com/cobble19/p/3029288.html