cookie案例用JSP改造(记住上次访问时间)

优点:

1.JSP代码跨平台, 即一次编写,处处运行

  众所周知,由于微软的垄断性,它的产品可移植性做得十分差,ASP也不例外,

 

  2.JSP组件跨平台

 

  JSP组件(企业JavaBeans,JavaBeans或定制的JSP标签)都是跨平台可重用的.企业JavaBeans组件可以访问传统的数据库,并能以分布式系统模式工作于Solaris,Linux,UNIX和Windows平台.

 

  3.支持多种网页格式

 

  目前, JSP技术支持的网页格式还没有一个明确的标准.一般来说,JSP技术既可以支持HTML/DHTML的传统浏览器文件格式,又可以支持应用于无线通信设备如移动电话,PDA等设备进行网页预览的WML文件格式,还可以支持其他一些B2B电子商务网站应用的XML格式.

 

  4.JSP标签可扩充性

 

  尽管ASP和JSP都使用标签与脚本技术来制作动态Web网页,JSP技术允许开发者扩展JSP标签,定制JSP标签库,所以网页制作者充分利用与XML兼容的标签技术强大的功能,大大减少对脚本语言的依赖.由于定制标签技术,使网页制作者降低了制作网页的复杂度.

 

  5.健壮性与安全性

 

  由于JSP页面使用的脚本语言是java语言, 因此,它就具有java技术的所有好处, 包括健壮的存储管理和安全性.

缺点:

 1. JSP技术极大的增加了产品的复杂性.为了获得 系统的跨平台功能和产品伸缩能力,java系统开发了多种产品,如,JRE,JDK,J2EE,EJB,JSWDK,JavaBeans ,只有有效地将它们组合在一起,才能产生强大的功能.(部署有难度)

 

  2. java的高效率运行需要占用大量的内存和硬盘空间. 一方面,java的高速运行是通过 .class文件常驻内存来实现的.另一方面,还需要硬盘空间来存储一系列的.java 文件和.class文件以及对应的版本文件.(硬件要求高)

 

  3. JSP程序调试困难.

 

  JSP页面执行时, 首先被转换为 .java文件(Servlet), 然后将.java文件编译为字节码文件. 这样,出错信息实际上指向的是转换后的那个.java文件(Servlet), 而不是JSP本身. (调试有难度)

注意:

response.getWriter().write()全部换成out.write()

setTime.jsp动态资源

<%@ page import="java.net.URLDecoder" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.net.URLEncoder" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>展示时间</title>
</head>
<body>
<%
    /*
               第一次访问
               不是第一次访问
            */
    // 设置消息体的数据格式及编码
    response.setContentType("text/html;charset=utf-8");

Cookie[] cookies = request.getCookies();
// 标记是否有lastTime
boolean flag = false;

// 如果为null或者长度为0则没必要遍历数组消耗性能
if (cookies != null && cookies.length > 0) {
    for (Cookie cookie : cookies) {
        String name = cookie.getName();
        if ("lastTime".equals(name)) {

            flag = true;

            String lastTimeValue = cookie.getValue();
            lastTimeValue = URLDecoder.decode(lastTimeValue, "utf-8");

            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
            String strNewTime = sdf.format(new Date());
            strNewTime = URLEncoder.encode(strNewTime, "utf-8");

            cookie.setValue(strNewTime);
            cookie.setMaxAge(60 * 60 * 24 * 30);

            response.addCookie(cookie);
            out.write("<h3>您上次访问时间:" + lastTimeValue + "</h3>");

            break;
        }
    }
}

if (cookies == null || cookies.length == 0 || flag == false) {

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
    String strNewTime = sdf.format(new Date());
    strNewTime = URLEncoder.encode(strNewTime, "utf-8");

    Cookie cookie = new Cookie("lastTime", strNewTime);
    cookie.setMaxAge(60 * 60 * 24 * 30);

    response.addCookie(cookie);
    out.write("<h3>欢迎您首次访问</h3>");
}
%>

<h1>首页</h1>
</body>
</html>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值