一种登入和登出的实现

要实现一个登入和登出的功能,需要下面的预备知识。
session 一次连接的对象 主要用于客户端和服务器保持状态,从浏览器和客户端建立连接时开始 到客户端关闭时自动失效 无法再客户端保存状态。
cookie 客户端缓存的对象 主要用户在客户端保存登陆状态,可以设置过期时间保存在客户端。

login.JSP主要代码
<form action="login.action">
    name:<input type="text" name="username">
    <br>
    password:<input type="password" name="password" >
    <br>
    <input type="button" onclick="javascript:this,form.submit()" >
    
    </form>

loginAction.java
 public class loginAction extends ActionSupport  
    
{
    HttpServletResponse response; 
 	private String username;
	private String password;
	private String tips;
    HttpServletRequest request;
	public String getUsername()
	{
		return username;
	}

	public void setUsername(String username)
	{
		this.username = username;
	}

	public String getPassword()
	{
		return password;
	}

	public void setPassword(String password)
	{
		this.password = password;
	}

	public String getTips()
	{
		return tips;
	}

	public void setTips(String tips)
	{
		this.tips = tips;
	}
 	public String execute()
	{
 		response=ServletActionContext.getResponse(); 
 		
		if ("zhangjin".equalsIgnoreCase(username)
				&& "password".equalsIgnoreCase(password))
		{
			ActionContext ctx=ActionContext.getContext();
  			ctx.getSession().put("username", "zhangjin");
  			Cookie cookie=new Cookie("username", "zhangjin"); 
  			cookie.setMaxAge(24*60*60);
  			response.addCookie(cookie);
			return "success";
		} 
		else
		{
            setTips("用户名/密码错误");
			return "input";
		}

	}
 	public String logOut()
 	{
 		response=ServletActionContext.getResponse(); 
 		request=ServletActionContext.getRequest();
 		request.getSession().invalidate();
 		Cookie[] cookies=request.getCookies();
 		if(cookies!=null)
 		{
 			for (int i=0;i<cookies.length;i++)
			{
 				Cookie cook=cookies[i];
 				if("username".equals(cook.getName()))
 				{
 					cook.setValue(null);
 					cook.setMaxAge(0);
 					response.addCookie(cook);
 				}
			}
 			
 		}
 		return "session";
 	}

	 
}

你可能感兴趣的:(jsp,浏览器)