我用axis2做了一个webservice,主要是给其他平台登录用的接口,我想登录后记录cookie,具体方法如下
webservice类:
public int userLogin(String userName,String password,int cookieTime){
password = MD5.md5s(password);
user = userManager.getUserByName(userName);
if(user==null){//用户名错误
return 0;
}
if(!user.getPassword().equals(password)){//用户密码错误
return -1;
}
if(user.getStatus()==0){//用户被禁用
return -2;
}
MessageContext mc = MessageContext.getCurrentMessageContext(); 
HttpServletRequest request = (HttpServletRequest) mc.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);
HttpServletResponse response = (HttpServletResponse)mc.getProperty(HTTPConstants.MC_HTTP_SERVLETRESPONSE);
HttpSession session = request.getSession();
System.out.println("调用前的="+session.getId());
CookieUtil.saveCookie(response,request, "user", session.getId(), 7);
System.out.print("调用获取前request=");
System.out.println(request!=null);
String cookie = CookieUtil.getCookie(request,"use");
System.out.print("调用获取cookie后=");
System.out.println(cookie);
return 1;
}cookie类
public static void saveCookie(HttpServletResponse response,HttpServletRequest request,String cookieName,String cookieValue,int cookieTime){     
Cookie[] cookies = request.getCookies();
Cookie cookie = new Cookie(cookieName,cookieValue);    
System.out.println("保存前获取的cookie值="+cookie.getValue());
cookie.setPath("/");  
if(cookieTime>0){
cookieTime = cookieTime*60*60*24;
cookie.setMaxAge(cookieTime);     
}
System.out.print("保存前的response=");
System.out.println(response!=null);
response.addCookie(cookie); 
System.out.print("保cun后的cookie=");
System.out.println(cookie!=null);
System.out.print("保存后的cookies=");
System.out.println(cookies!=null);

public static String getCookie(HttpServletRequest request,String cookieName){ 
System.out.print("获取cookie时的request=");
System.out.println(request!=null);
Cookie[] cookies = request.getCookies();
System.out.print("获取cookies时的cookies=");
System.out.println(cookies!=null);
if(cookies != null){
for(Cookie c:cookies){
if(cookieName.equals(c.getName())){
String cookieValue = c.getValue();
if(cookieValue != null){
return cookieValue;
}
}
}
}
return null;

运行结果:
session被创建
调用前的=49FD8C69AB5B5A8BE1DD57E52CCCEE78
保存前获取的cookie值=49FD8C69AB5B5A8BE1DD57E52CCCEE78
保存前的response=true
保cun后的cookie=true
保存后的cookies=false
调用获取前request=true
获取cookie时的request=true
获取cookies时的cookies=false
调用获取cookie后=null
主要是实现用户统一登录认证,请大家帮忙看下上面的代码是否有什么问题?或者其他效率更好的方法(尽量不用SSO,除非有更简洁的SSO方法)。