JSP第一次作业:使用Cookie记录用户上次访问时间

JSP第一次作业。

思想:

先做一个form表单,采集用户名。然后将用户名对照服务器cookie(不存在则加入,存在则修改),以用户名作为cookie的键,以当前服务器时间作为cookie的值。

使用Calendar类获取当前服务器各个时间数据,组成一个不带空格字符串。(带空格无法作为cookie值)

如果cookie列表为空,则必定无用户访问过,直接新建。提示首次访问。

如果cookie列表不为空,则使用当前获取用户名同cookie列表的键一一比对。

      如果存在则提示再次访问,并更新cookie值。

      如果不存在则新建,提示首次访问。

第一个JSP文件:(form表单)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<!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>
<form action="ShowTime.jsp" method="post">
请输入您的用户名:<input type="text" name="use" >
                 <input type="submit" value="确定"/>
<br><br>
<%
    Date date = new Date();
    out.print("服务器当前时间:"+date.toString());
%>
</form>
</body>
</html>

  

第二个JSP文件ShowTime.jsp:(时间字符串处理上由于方法笨拙固不求圆满)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<!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>
<%
        boolean flag=true;
        String use=request.getParameter("use");
		String a=null;
		int year,month,day,hour,minute,second;
		Calendar now = Calendar.getInstance();
		year = now.get(Calendar.YEAR);
	 	month = now.get(Calendar.MONTH) + 1;
	  	day = now.get(Calendar.DAY_OF_MONTH);
	  	hour = now.get(Calendar.HOUR_OF_DAY);
	    minute = now.get(Calendar.MINUTE);
	    second = now.get(Calendar.SECOND);
	    if(second<10)
	        a=year+"年"+month+"月"+day+"日"+hour+":"+minute+":0"+second;
	    else if(minute<10)
		    a=year+"年"+month+"月"+day+"日"+hour+":0"+minute+":"+second;
	    else if(second<10&&minute<10)
	    	a=year+"年"+month+"月"+day+"日"+hour+":0"+minute+":0"+second;
	    else a=year+"年"+month+"月"+day+"日"+hour+":"+minute+":"+second;
	    Cookie c1 = null;
	    Cookie[] cookie = request.getCookies();
		if (cookie == null) {
			out.print("尊敬的用户:"+use+" <br><br>您好!欢迎首次访问!");
			c1 = new Cookie(use,a);
			response.addCookie(c1);
		} else {
			for (int i = 0; i < cookie.length; i++) {
				c1 = cookie[i];
				if ((c1.getName()).compareTo(use) == 0) {
					out.print("尊敬的用户:"+use+" 欢迎再次访问!<br><br>您上次的访问时间为" + c1.getValue());
					c1.setValue(a);
				    response.addCookie(c1);
					flag=false;
					break;
				}
			}
			if(flag){
				out.print("尊敬的用户:"+use+" <br><br>欢迎首次访问!");
				c1 = new Cookie(use,a);
				response.addCookie(c1);
			}
		}
	%>
</body>
</html>

  

原文地址:https://www.cnblogs.com/thx2199/p/14674439.html