思路:繪制一個簡單的登錄界面的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);
}
}