spring中得到servletContext對象方法


1.spring得到servletContext,這個和session沒有什么關系,上下文可以說是一個session容器,一個上下文可以有多個會話session

在web.xml中有以下配置后。加入spring對上下文的監聽,

    <listener>
       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

在后台用一下代碼就可以得到javax.servlet.ServletContext

ContextLoader.getCurrentWebApplicationContext().getServletContext()

2.cxf得到session的方法,這個僅僅是為了測試每次webservice請求session不一樣

package com.gaeainfo.tclgb.ws;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionContext;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;

import org.apache.cxf.transport.http.AbstractHTTPDestination;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.springframework.stereotype.Component;
import org.springframework.web.context.ContextLoader;

@Component(value="loginManagerWs")
public class UserManagerWebServiceImpl implements UserManagerWebService {

//會自動注入,配置了cxf監聽之后
    @Resource
      private WebServiceContext context; 
    @Override
    public String showUserInfo() {
        /*String userName = (String) session.getAttribute("userName");
        String depName = (String) session.getAttribute("depName");
        
        Document doc = DocumentHelper.createDocument();
        Element elt = doc.addElement("root").addElement("userName").addText(userName).addElement("depName").addText(depName);
        String result = doc.asXML();*/
        MessageContext ctx = context.getMessageContext();
           HttpServletRequest request = (HttpServletRequest)
            ctx.get(AbstractHTTPDestination.HTTP_REQUEST);
           System.out.println(request.getSession().getId());
        
        return "";
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM