J2EE学习笔记——Cookie操作(2周内免登陆)

前台登陆页面:

/**
 * AWT Sample application
 *
 * @author 
 * @version 1.00 12/10/21
 */
/**
 * AWT Sample application
 *
 * @author 
 * @version 1.00 12/10/21
 */
 
 package com.xuyan;
 import  javax.servlet.http.*;
 import   java.io.*;
public class Hello extends HttpServlet{
    
    
    public void  doGet(HttpServletRequest req,HttpServletResponse res){
    	
    	try
    	{
    		res.setCharacterEncoding("GBK");
    		
    		PrintWriter pw=res.getWriter();
    		
    		pw.println("<html>");
    		pw.println("<head>");
    		pw.println("<title>test</title>");
    		pw.println("</head>");
    		pw.println("<body>");
    		pw.println("<form action=logincookie method=post>");
    		pw.println("<h1>user+password</h1>");
    		pw.println("<input type=text name=username /><br>");
    		pw.println("<input type=text name=password />");
    			pw.println("<br>");
    		
    			pw.println("<input type=checkbox name=keep  value=2/>2周内不再重复登陆<br>");
    			
    		pw.println("<input type=submit value=登录 />");
    		pw.println("</form>");
    		pw.println("</body>");
    		pw.println("</html>");
    		
    		
    	}
    	
    	catch(Exception ex)
    	{
    		ex.printStackTrace();
    	}
    }
    
    
    
     public void  doPost(HttpServletRequest req,HttpServletResponse res){
     	
     	
     	this.doGet(req,res);
     	
     	
     	
     	}
    
}


 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

中间处理页面:

 

/**
 * AWT Sample application
 *
 * @author   徐研
 * @version 1.00 12/10/21
 */
 
 package com.xuyan;
 import  javax.servlet.http.*;
 import   java.io.*;
 import   java.sql.*;
public class Logincookie extends HttpServlet{
    //req用于向浏览器请求信息
    //res用于向浏览器返回信息
    
    public void  doGet(HttpServletRequest req,HttpServletResponse res) {
    	
      res.setCharacterEncoding("gbk");
    		
    	
    	try
    	{
    		
    		String username=req.getParameter("username");
    		String mima=req.getParameter("password");
    		

    	    
    			String keep=req.getParameter("keep");//获取checkbox是否被选中
    		
    			
    			if(username.equals("admin")&&mima.equals("admin"))   //密码相符
    		    	{
    		    		
    		    		
    		    		
    		    		if(keep!=null){
    		    		
    		    		
    		    		Cookie name=new Cookie("name",username);
    		    		Cookie pswd=new Cookie("pswd",mima);
    		    		name.setMaxAge(7*24*3600);
    		    		res.addCookie(name); //回写到客户端
    		    		
    		    		pswd.setMaxAge(7*24*3600);
    		    		res.addCookie(pswd);
    		    		

    			       res.sendRedirect("show?posturl="+username);
    			       
    			       }
    			    
    			    }
    		
    		
    		else
    		
    		{
    			res.sendRedirect("xuyan");  //用户名不存在
    		}
         
    		
    	}
    	
    	catch(Exception ex)
    	{
    		ex.printStackTrace();
    		
   			
    	}
    	
    
    	
    
    }
    
    
    
     public void  doPost(HttpServletRequest req,HttpServletResponse res) {
     	
     	
     	this.doGet(req,res);
     	
     	
     	
     	}
    
}

上面代码为  服务器端制造Cookie  然后 回写带客户端。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Cookie读取页面:

/**
 * AWT Sample application
 *
 * @author   徐研
 * @version 1.00 12/10/21
 */
 
 package com.xuyan;
 import  javax.servlet.http.*;
 import   java.io.*;
 import   java.sql.*;
public class Cookieread extends HttpServlet{
    //req用于向浏览器请求信息
    //res用于向浏览器返回信息
    
    String username;//登陆框用户名
    String password;//登陆框密码
    
    public void  doGet(HttpServletRequest req,HttpServletResponse res) {
    	
    
    	
    	try
    	{
    		
    		res.setCharacterEncoding("gbk");
    		
    		PrintWriter pw=res.getWriter();
    		
    		//从客户端得到所有cookie
    		Cookie []  allcookies=req.getCookies();
    		
    		int i=0;//定义标识
    		if(allcookies!=null)
    		{
    			
    			for(i=0;i<allcookies.length;i++)
    			{
    				//依次遍历
    				Cookie  temp=allcookies[i];
    				
    			if(temp.getName().equals("name"))
    				
    				{
    					username=temp.getValue();//得到cookie的值  用户名
    				}
    				
    				else if(temp.getName().equals("pswd"))
    				{
    					
    					password=temp.getValue();
    				}
    				
    				
    			
    			}
    			
    			if(username!=null&&password!=null)
    			{
    				
    				res.sendRedirect("Logincookie?username="+username+"&mima="+password);
    				return;
    			}
    			
    			
    		}else 
    		{
    				res.sendRedirect("xuyan");  //cookie不存在
    		}
    		
    		
    	}
    	
    	catch(Exception ex)
    	{
    		ex.printStackTrace();
    		
   			
    	}
    	
    
    	
    
    }
    
    
    
     public void  doPost(HttpServletRequest req,HttpServletResponse res) {
     	
     	
     	this.doGet(req,res);
     	
     	
     	
     	}
    
}

代码主要意思:  依次遍历Cookie    找到所选Cookie    读取用户名  密码     并发送给  登陆页面

其中

//发送页面用户名密码
        res.sendRedirect("Logincookie?username="+username+"&mima="+password);

相当于点击登录按钮事件


//发送页面用户名密码
        res.sendRedirect("Logincookie?username="+username+"&mima="+password);//发送页面用户名密码
        

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

登陆成功后跳转页面:

package com.xuyan;
 import  javax.servlet.http.*;
 import   java.io.*;
 import   java.sql.*;
public class Datashow extends HttpServlet{
    
    
  public void  doGet(HttpServletRequest req,HttpServletResponse res) {
    	
    	
    	String username=req.getParameter("posturl");
    	
    	Connection  con=null;
    	
    	Statement   sm=null;
    	ResultSet   rs=null;
    	
    	int  pageSize=3;//每页显示多少记录
    	int  pageNow=1;//当前显示第几页
    	int  pageCount=0;//共有多少页
    	int  rowCount=0;//共有多少条记录
    	
    		//设置中文字体
    	res.setCharacterEncoding("gbk");
    	
    	String getPageNow=req.getParameter("spageNow");
    	
    	
    	if(getPageNow!=null)
    	{
    		pageNow=Integer.parseInt(getPageNow);
    	}
    	
    	try
    	{
    		
    		
    		PrintWriter pw=res.getWriter();
    	
    		

    	     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加载驱动
        	 con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=StudentInfo","sa","1234");
    	     sm=con.createStatement();
    	     rs=sm.executeQuery("select  count(*) from student");//查询共有多少记录
    	     
    	     
    	     
    	     
    	     
    	     
    	   
    	    
         	if(rs.next())  //此处说明有记录
    		
    		{
    			 rowCount=rs.getInt(1);
    			
    			if(rowCount%pageSize==0)
    			{
    					pageCount=rowCount/pageSize;
    			}
    			
    			else  
    			{
    					pageCount=rowCount/pageSize+1;  //int类型  会转化为整数
    			}
    			
    		
    			
    		
    			
    				pw.println("<body><center>");
    				
    				
    				pw.println("欢迎   :"+username+"   进入");
    				pw.println("<br>");
    				pw.println("<br>");
    				
    			pw.println("共有记录数 :" + rowCount);
    	     	pw.println("共有页码数:" +pageCount);
    		
    		//查询
    		  rs=sm.executeQuery("select top "+pageSize+"*  from student  where ID not in(select top "+pageSize*(pageNow-1)+" ID from student)");
    		
    		
    			
    			
    				pw.println("<table border=2>");
    				
    				pw.println("<tr><th>Id</th><th>Name</th><th>Genger</th><th>Age</th><th>Grade</th></tr>");
    				
    			
    		while(rs.next())
    		{	
    				pw.println("<tr>");
    					
    				pw.println("<td>"+rs.getInt(1)+"</td>");
    				pw.println("<td>"+rs.getString(2)+"</td>");
    				pw.println("<td>"+rs.getString(3)+"</td>");
    				pw.println("<td>"+rs.getString(4)+"</td>");
    				pw.println("<td>"+rs.getString(5)+"</td>");
    				
    					
    				pw.println("</tr>");
    			
    		
    	     
    			
    		}	
    			
    		}
    		
    		else
    		
    		{
    	     	pw.println("NotFoundSQL");
    		}
         
    		pw.println("</table >");
    		
    		
    		
    		
    		
    		for(int i=1;i<=pageCount;i++){
    			
    		pw.println("<a href=show?spageNow="+i+">"+i+"</a>");
    		}
    		
    		if((pageNow-1)>0)
    			{
    				pw.println("<a href=show?spageNow="+(pageNow-1)+">上一页</a>");
    			
    			}
    			
    			
    				if((pageNow)<pageCount)
    			{
    				pw.println("<a href=show?spageNow="+(pageNow+1)+">下一页</a>");
    			
    			}
    			
    			
    			}
    	
    	catch(Exception ex)
    	{
    		ex.printStackTrace();
    		
   			
    	}
    	
    	finally
    	{
    		
    		
    		try{
    	
    		
    		if(rs!=null)
    		{  rs.close();
    		
    		}
    		
    		if(sm!=null){
    			sm.close();
    		}
    		
    		if(con!=null){
    			
    			con.close();
    		}
    		
    			}
    			
    			catch(SQLException eexx)
    			{
    				eexx.printStackTrace();
    			}
    	}
    	
    
    }
    
    
    
     public void  doPost(HttpServletRequest req,HttpServletResponse res) {
     	
     	
     	this.doGet(req,res);
     	
     	
     	
     	}
    
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值