日期:2014-05-18  浏览次数:20784 次

[高手请进!]在没有上下文的情况下,请问如何得到一个指定WEB应用的ServletContext引用?
我现在希望在一个和WEB容器处在同一虚拟机中的普通类中得到一个指定WEB应用的ServletContext对象的引用,仅仅已知contextPath,有没有可能得到ServletContext对象的引用?
        这个类是用来实现一个SOAP接口的具体操作,供远程调用用,也就是一个WEB应用的登录接口,该类的一个具体方法在被远程调用后要在WEB容器中创建一个HttpSession,没有类似HttpServletRequest这样的上下文。


------解决方案--------------------
ServletContext对象获得几种方式:
javax.servlet.http.HttpSession.getServletContext()
javax.servlet.jsp.PageContext.getServletContext()
javax.servlet.ServletConfig.getServletContext()
servlet中:
this。getServletContext()
jsp中:
application(隐含对象)
------解决方案--------------------
吼吼,很特有涌出的小技巧!
------解决方案--------------------
没办法,不过看你意思你是想使用session的功能。如果这样的话。完全可以自己实现。
写一个类其中包含一个static的map,这样这个map就不会被回收。你的客户端访问的时候提交一个类似于sessionId的东西,然后在以sessionId为key向刚才那个map里存另一个map。第二个map就和session类似了,你就可以向里面存内容了。当然你还可以向复杂的地方做,加上session过期什么的
------解决方案--------------------
够狠