Cookie进行自动登录

login.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



  
    
    
    My JSP 'login.jsp' starting page
    
	
	
	    
	
	
	

  
  
  
    
用户名:
main.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



  
    
    
    My JSP 'index.jsp' starting page
    
	
	
	    
	
	
	

  
  
  
    <%String username=request.getParameter("username");
      if(username!=null &&!username.trim().equals("")){
    	  Cookie userCookie=new Cookie("username",username);
    	  userCookie.setMaxAge(30);
    	  response.addCookie(userCookie);
      }else{
    	  Cookie[] cookies=request.getCookies();
    	  if(cookies!=null && cookies.length>0){
    		  for(Cookie c:cookies){
    			  if(c.getName().equals("username")){
    				  username= c.getValue();
    			  }
    		  }
    	  }   	  
      }
	  if(username !=null && !username.trim().equals("")){
		  System.out.print(1);
		  out.print("hello:"+username);
	  }else{
		  response.sendRedirect("login.jsp");
	  }
    %>
  

测试:

如果不输入用户名的话,main.jsp里的逻辑判断会使页面重定向到登录页面:

Cookie进行自动登录_第1张图片

输入用户名,进入main.jsp:

Cookie进行自动登录_第2张图片

此时查看login.jsp页面的cookie

再次重新在login.jsp登录,但是不输入内容,查看main.jsp中从login.jsp传过来的请求头:Cookie进行自动登录_第3张图片


因为该cookie被设置为有效期30秒,所以30秒后,再重新登录的话,如果不输入内容,无法进入main.jsp.





你可能感兴趣的:(cookie)