现在想实现的功能就是类似与51logon软件。不知道有没有这样的java程序。当在某个网站上输入用户名密码以后,点击登陆,此时提示要不要保存,当保存以后,下次再访问这个网页时,自动将用户名,密码输入,自动登陆。 
请不吝赐教,万分感激。

解决方案 »

  1.   

    用cookie,
    当用户需要保存时,
    将一些登录需要的信息保存到cookie里,
    这样用户再次打开登录页时先判断cookie,
    如果有合法的登录信息,
    那么就直接登录而不需要再次输入用户名和密码,
      

  2.   

    写个FILETER判断有没有COKIE。package com.demo.gyl.filter;import java.io.IOException;import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;import com.demo.gyl.CookieUtil;
    import com.demo.gyl.User;
    public class AutoLogonFilter implements Filter {public void destroy() {}//保存cookie时的cookieName,与CookieUtil.java中的设置相同private final static String cookieDomainName = "cn.itcast";  public void doFilter(ServletRequest req, ServletResponse resp,
    FilterChain chain) throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest)req; 
    HttpServletResponse response = (HttpServletResponse)resp; 
    HttpSession session = request.getSession(true); 
    User user = (User)session.getAttribute("user"); 
    //如果封装的user不为空,说明已经登陆,则继续执行用户的请求.下面的就不处理了if(user!=null){
    chain.doFilter(request,response); 
    return; 
    }//user为空,说明用户还没有登陆,就尝试得到浏览器传送过来的Cookie
    Cookie cookies[] = request.getCookies(); 
    String cookieValue = null; 
    if(cookies!=null){
    for(int i=0; i<cookies.length; i++){
    if (cookieDomainName.equals(cookies[i].getName())) {
    cookieValue = cookies[i].getValue(); 
    break; 
    }
    }
    }
    //如果cookieValue为空,也继续执行用户请求
    if(cookieValue==null){
    chain.doFilter(request,response); 
    return; 
    }//cookieValue不为空执行下面的方法,调用CookieUtil.java中的readCookieAndLogon方法
    try{
    CookieUtil.readCookieAndLogon(cookieValue, request, response, chain); 
    }catch(Exception e){
    e.printStackTrace(); 
    }
    }public void init(FilterConfig arg0) throws ServletException {
    }
    }