1. JSP 的概念
JSP(Java Server Pages),Java 服务器端页面。
它是一个特殊的页面,其中既可以指定定义 Html 标签,又可以定义 Java 代码,可以简化书写
2. JSP 的原理
JSP 本质上就是一个 Servlet
3. JSP 的脚本
-
JSP 的脚本的概念
JSP 定义 Java 代码的方式
-
JSP 的脚本的分类
- <% 代码 %>:定义的 Java 代码,在 service 方法中。service 方法中可以定义什么,该脚本中就可以定义什么
- <%! 代码 %>:定义的 Java 代码,在 JSP 转换后的 Java 类的成员位置
- <%= 代码 %>:定义的 Java 代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么
4. JSP 的内置对象
-
JSP 的内置对象的概念
在 JSP 页面中不需要获取和创建,可以直接使用的对象
-
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>