zoukankan      html  css  js  c++  java
  • 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>
    

      

  • 相关阅读:
    IOS-Storyboard全解析-第一部分
    IOS-Socket
    IOS-XMPP
    IOS-源代码管理工具(Git)
    IOS-源代码管理工具(SVN)
    python环境配置
    【移动开发】Android中WIFI开发总结(二)
    【移动开发】Android中WIFI开发总结(一)
    Android 连接Wifi和创建Wifi热点 demo
    Android 判断用户2G/3G/4G移动数据网络
  • 原文地址:https://www.cnblogs.com/thx2199/p/14674439.html
Copyright © 2011-2022 走看看