1
package lesson3_2.cookie;
2
/**
3
* 使用Cookie技术实现淘宝网效果,
4
* 用户第一访问显示显示用户登录(输入姓名)界面
5
* 当用户登陆一次,以后不需要在登陆并在页面显示“XXX,欢迎您“
6
*
7
*/
8
import javax.servlet.*;
9
import javax.servlet.http.*;
10
import java.io.*;
11
import java.util.*;
12
13
public class CookieLoginServlet extends HttpServlet {
14
private static final String CONTENT_TYPE = "text/html; charset=GBK";
15
16
//Initialize global variables
17
public void init() throws ServletException {
18
}
19
20
//Process the HTTP Get request
21
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
22
ServletException, IOException {
23
24
request.setCharacterEncoding("gbk");
25
response.setContentType(CONTENT_TYPE);
26
27
PrintWriter out = response.getWriter();
28
// 获得输入的用户名
29
String userName =request.getParameter("userName");
30
// 从客户端读取Cookie
31
Cookie cookie[] = request.getCookies();
32
33
// 声明一个引用来存放找到的Cookie
34
Cookie myCookie = null;
35
36
// 如果客户端有Cookie,则查找有没有与userName值相同的Cookie
37
if (cookie != null) {
38
for (int i = 0; i < cookie.length; i++) {
39
if (cookie[i].getName().equals("userName")) {
40
myCookie = cookie[i];
41
break;
42
}
43
}
44
}
45
// 没有找到与当前输入的名称相同的Cookie时,则把当前的用户写到Cookie
46
if(userName!=null&&!userName.equals(""))
47
{
48
Cookie newCookie = new Cookie("userName",userName);
49
newCookie.setMaxAge(60*60*24);
50
response.addCookie(newCookie);
51
myCookie=newCookie;
52
}
53
54
// 客户端有Cookie时,则读取Cookie,并显示欢迎,否则显示登录页面
55
if (myCookie!=null) {
56
out.println(myCookie.getValue() + ":欢迎您登录");
57
} else {
58
59
out.println("<html>");
60
out.println("<head><title>SendServlet</title></head>");
61
out.println("<body bgcolor=\"#ffffff\">");
62
out.println(
63
"<form action = '/WebModule/cookieloginservlet' method = 'post'>");
64
out.println("<input type='text' name='userName'/>");
65
out.println("<input type = 'submit' value = '登录'/>");
66
out.print("</form>");
67
out.println("</body>");
68
out.println("</html>");
69
}
70
}
71
72
//Process the HTTP Post request
73
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
74
ServletException, IOException {
75
doGet(request, response);
76
}
77
78
//Clean up resources
79
public void destroy() {
80
}
81
}
82
83
package lesson3_2.cookie;2
/**3
* 使用Cookie技术实现淘宝网效果,4
* 用户第一访问显示显示用户登录(输入姓名)界面5
* 当用户登陆一次,以后不需要在登陆并在页面显示“XXX,欢迎您“6
* 7
*/8
import javax.servlet.*;9
import javax.servlet.http.*;10
import java.io.*;11
import java.util.*;12

13
public class CookieLoginServlet extends HttpServlet {14
private static final String CONTENT_TYPE = "text/html; charset=GBK";15

16
//Initialize global variables17
public void init() throws ServletException {18
}19

20
//Process the HTTP Get request21
public void doGet(HttpServletRequest request, HttpServletResponse response) throws22
ServletException, IOException {23
24
request.setCharacterEncoding("gbk");25
response.setContentType(CONTENT_TYPE);26
27
PrintWriter out = response.getWriter();28
// 获得输入的用户名29
String userName =request.getParameter("userName");30
// 从客户端读取Cookie31
Cookie cookie[] = request.getCookies();32
33
// 声明一个引用来存放找到的Cookie34
Cookie myCookie = null;35
36
// 如果客户端有Cookie,则查找有没有与userName值相同的Cookie37
if (cookie != null) {38
for (int i = 0; i < cookie.length; i++) {39
if (cookie[i].getName().equals("userName")) {40
myCookie = cookie[i];41
break;42
}43
}44
}45
// 没有找到与当前输入的名称相同的Cookie时,则把当前的用户写到Cookie46
if(userName!=null&&!userName.equals(""))47
{48
Cookie newCookie = new Cookie("userName",userName);49
newCookie.setMaxAge(60*60*24);50
response.addCookie(newCookie);51
myCookie=newCookie;52
}53

54
// 客户端有Cookie时,则读取Cookie,并显示欢迎,否则显示登录页面55
if (myCookie!=null) {56
out.println(myCookie.getValue() + ":欢迎您登录");57
} else {58

59
out.println("<html>");60
out.println("<head><title>SendServlet</title></head>");61
out.println("<body bgcolor=\"#ffffff\">");62
out.println(63
"<form action = '/WebModule/cookieloginservlet' method = 'post'>");64
out.println("<input type='text' name='userName'/>");65
out.println("<input type = 'submit' value = '登录'/>");66
out.print("</form>");67
out.println("</body>");68
out.println("</html>");69
}70
}71

72
//Process the HTTP Post request73
public void doPost(HttpServletRequest request, HttpServletResponse response) throws74
ServletException, IOException {75
doGet(request, response);76
}77

78
//Clean up resources79
public void destroy() {80
}81
}82

83




浙公网安备 33010602011771号