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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83
