如何用cookie保存用户的登录的密码和用户名

时间:2022-10-01 00:07:23

思路:绘制一个简单的登录界面的Servlet并要在此页面中读取保存密码和用户名的cookie---》在登录处理界面的servlet中把用户名和密码保存到cookie中

//登录界面的Servlet的代码如下:

package com.qls.view;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Login extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
/**
* 读取cookie
* 只有cookie首先不为null才可进行读取。
*
*/
String password="";
String username="";
if(request.getCookies()!=null){
for(Cookie cookie:request.getCookies()){
if(cookie.getName().equals("sixi")){
password=cookie.getValue();
}
if(cookie.getName().equals("river")){
username=cookie.getValue();
}
}
}
/**
* 登录页面
* LogicOperation
*/
out.println("<form action='/cookie/LogicOperation' method='post'>");
out.println("用户名:<input type='text' name='username' value='"+username+"'/>");
out.println("密码:<input type='password' name='password' value='"+password+"'/>");
out.println("是否保存cookie:<input type='checkbox' name='ouyangfeng' value='villageChief'/>");
out.println("<input type='submit' value='登录'/>");
out.println("</form>");
}


public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
this.doGet(request, response);
}

}

//登录处理界面的servlet如下:

package com.qls.controller;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LogicOperation extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String username = request.getParameter("username");
String password = request.getParameter("password");
/**
* 验证用户到底有没有保存cookie
*/
String value = request.getParameter("ouyangfeng");
if(value!=null&&value.equals("villageChief")){
//把密码保存在一个cookie中。
Cookie cookie=new Cookie("sixi", password);
//设置cookie的生命周期
cookie.setMaxAge(3600);//cookie的保存时间为1个小时
//回写(就是把cookie保存到浏览器中的Temporary file文件)
response.addCookie(cookie);
/**
* 同理把用户名保存到cookie中的代码如下:
*/
//把密码保存在一个cookie中。
Cookie cookie2=new Cookie("river", username);
//设置cookie的生命周期
cookie2.setMaxAge(3600);//cookie2的保存时间为1个小时
//回写(就是把cookie2保存到浏览器中的Temporary file文件)
response.addCookie(cookie2);
// request.getRequestDispatcher("/Ok").forward(request, response);
response.sendRedirect("http://www.sohu.com/");//重定向到搜狐网站
}else{
response.sendRedirect("http://www.baidu.com");//重定向到百度首页。
}
}


public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
this.doGet(request, response);
}

}