创建一个名为LoginServlet的servlet
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 LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public LoginServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String cookieName = "userName";
String cookiePwd = "pwd";
//获取所有cookie
Cookie[] cookies = request.getCookies();
String userName ="";
String pwd = "";
String isChecked="";
//如果cookie不为空,那么取出用户名和密码
if(cookies!=null&&cookies.length>0){
//如果曾经设置过cookie则复选框的状态应该是checked
isChecked="checked";
//遍历cookies
for(int i=0;i<cookies.length;i++){
//取出用户名
if(cookies[i].getName().equals(cookieName)){
userName=cookies[i].getValue();
}
//取出密码
if(cookies[i].getName().equals(cookiePwd)){
pwd=cookies[i].getValue();
}
}
}
response.setContentType("text/html;charest=GBK");
PrintWriter out =response.getWriter();
out.print("<html>\n");
out.print("<head><title>登录</title></head>\n");
out.print("<body>\n");
out.print("<center>\n");
out.print("<form action='CookieTest'"+"method='post'>\n");
out.print("姓名:<input type='text'"+"name='UserName' value=''"+userName+"></br>\n");
out.print("密码:<input type='password'"+"name='Pwd' value=''"+pwd+"></br>\n");
out.print("保存用户名和密码<input type='checkbox'"+"name='SaveCookie' value='Yes'"+isChecked+">\n");
out.print("<br/>\n");
out.print("<input type='submit'>\n");
out.print("</form>\n");
out.print("</center>\n");
out.print("</body>\n");
out.print("</html>\n");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
再创建一个名为CookieTest的servlet
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 CookieTest extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//创建两个cookie对象
Cookie userCookie = new Cookie("userName",request.getParameter("UserName"));
Cookie pwdCookie = new Cookie("pwd",request.getParameter("Pwd"));
//若复选按钮被选中,则设置cookie过期时间为一周
if(request.getParameter("SaveCookie")!=null&&request.getParameter("SaveCookie").equals("Yes")){
userCookie.setMaxAge(7*24*60*60);
pwdCookie.setMaxAge(7*24*60*60);
}else{
//删除对应的cookie
userCookie.setMaxAge(0);
pwdCookie.setMaxAge(0);
}
//将cookie返回到客户端
response.addCookie(userCookie);
response.addCookie(pwdCookie);
PrintWriter out =response.getWriter();
out.println("Welcome!"+request.getParameter("UserName"));
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
最后启动web服务器,run LoginServlet