<%@page import="java.util.Arrays"%>
<%@page import="com.leo.model.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--查找本地有没有对应 “用户和密码”的cookie --%>
<%
Cookie [] cos = request.getCookies();
if(cos!=null){
for(Cookie co :cos){
if(co.getName().equals("cookie_usermsg")){
String[] values =co.getValue().split("&");
System.out.println(Arrays.toString(values));
String username = values[0];
String password = values[1];
if(username.equals("leo")&&password.equals("123")){
User user = new User(username,password);
session.setAttribute("user", user);
request.getRequestDispatcher("main.jsp").forward(request, response);
}else{
request.setAttribute("errormsg", "用户名密码错误");
}
}
}
}
%>
<%--登陆表单 --%>
<form action="cookieservlet" method="post">
用户名:<input type="text" name="username" /><br/>
密码:<input type="password" name="password" /><br/>
<input type="checkbox" name="time" />1天内免登录<br/>
<%
String errormsg = (String)request.getAttribute("errormsg");
if(errormsg!=null){
%>
<span style="color: red"><%=errormsg %></span><br>
<%
}
%>
<input type="submit" value="提交" />
</form>
</body>
</html>
——————————————————————————————————————————————————————————————————
表单提交到servlet服务器
package com.leo.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.leo.model.User;
public class CookieServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
if(username.equals("leo")&&password.equals("123")){
User user = new User(username, password);
HttpSession session = request.getSession();
session.setAttribute("user", user);
String time = request.getParameter("time");
if(time!=null){
Cookie co = new Cookie("cookie_usermsg", username+"&"+password);
co.setMaxAge(86400);
response.addCookie(co);
}
//这里跳转要使用客户端跳转,因为要到客户端取cookie,服务器跳转的话中间就不会经过客户端
response.sendRedirect("main.jsp");
}else{
request.setAttribute("errormsg", "用户名或密码错误");
request.getRequestDispatcher("login.jsp").forward(request, response);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
————————————————————————————————————————————————————————
<span style="color:#990000;">登录成功后的页面</span>
<pre name="code" class="html"><%@page import="com.leo.model.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
User user = (User)session.getAttribute("user");
%>
用户名:<%=user.getUsername() %>
</body>
</html>