JSP入门

1. JSP 的概念

JSP(Java Server Pages),Java 服务器端页面。

它是一个特殊的页面,其中既可以指定定义 Html 标签,又可以定义 Java 代码,可以简化书写

2. JSP 的原理

在这里插入图片描述

JSP 本质上就是一个 Servlet

3. JSP 的脚本

  1. JSP 的脚本的概念

    JSP 定义 Java 代码的方式

  2. JSP 的脚本的分类

    1. <% 代码 %>:定义的 Java 代码,在 service 方法中。service 方法中可以定义什么,该脚本中就可以定义什么
    2. <%! 代码 %>:定义的 Java 代码,在 JSP 转换后的 Java 类的成员位置
    3. <%= 代码 %>:定义的 Java 代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么

4. JSP 的内置对象

  1. JSP 的内置对象的概念

    在 JSP 页面中不需要获取和创建,可以直接使用的对象

  2. JSP 的内置对象

    JSP 一共有9个内置对象,以下介绍三个:

    • request
    • response
    • out:字符输出流对象。可以将数据输出到页面上。
      • print() 方法

5. 改造记住上一次访问时间案例

在 Cookie 中已经做过这个案例,现在用 JSP 实现

<%@ page import="java.net.URLDecoder" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.net.URLEncoder" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    // 标志是否有名为 lastTime 的 Cookie
    boolean flag = false;

    // 1.获取所有 Cookie,拿到数据
    Cookie[] cookies = request.getCookies();
    // 2.遍历 cookies 数组
    if (cookies != null && cookies.length > 0) {
        for (Cookie cookie : cookies) {
            // 3.获取 cookies 名称
            String name = cookie.getName();
            // 4.如果有名为 lastTime 的 Cookie,不是第一次访问
            if(name.equals("lastTime")){
                flag = true;
                // 响应数据
                String value = cookie.getValue();
                // 进行 URL 解码
                value = URLDecoder.decode(value,"utf-8");
%>
                <div>欢迎回来,您上次访问时间为:<%= value%></div>
<%
                // 写回 Cookie
                Date date = new Date();
                // 格式化日期
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String format = simpleDateFormat.format(date);
                // 进行 URL 编码
                format = URLEncoder.encode(format, "utf-8");
                cookie.setValue(format);
                // 设置存活时期
                cookie.setMaxAge(60*60*24*30);
                response.addCookie(cookie);
                break;
            }
        }
    }
    //5.如果没有名为 lastTime 的 Cookie,是第一次访问
    if(cookies == null || cookies.length == 0 || flag == false){
%>
        <%--响应数据--%>
        <div>您好,欢迎您首次访问</div>
<%
        // 写回 Cookie
        Date date = new Date();
        // 格式化日期
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String format = simpleDateFormat.format(date);
        // 进行 URL 编码
        format = URLEncoder.encode(format, "utf-8");
        Cookie cookie = new Cookie("lastTime",format);
        // 设置存活时期
        cookie.setMaxAge(60*60*24*30);
        response.addCookie(cookie);

    }
%>
</body>
</html>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bm1998

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值