JSP:入门学习
1.概念:
Java Server Pages : java服务器端页面
可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码
用于简化书写!
2.原理
JSP本质上就是一个Servlet
3. JSP的脚本:
JSP定义
Java代码的方式
1. <% 代码%>:定义的java代码,在service方法中。service方法中可以定义什么, 该脚本中就可以定义什么。
2. <%! 声明语句%>:用于声明变量或方法,在jsp转换后的java类的成员位置。(成员变量,尽量少定义)
3.<%= java代码%>:定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么。例如<%="<b>"+name+"</b>"%>
JSP常用处理指令
1.<%@page%>:定义当前JSP页面全局设置
2.<%@include%>:将其他JSP页面与当前JSP页面合并
3.<%@taglib%>:引入JSP标签库
4. JSP的内置对象
在jsp页面中不需要获取和创建,可以直接使用的对象
jsp-共有9个内置对象。
今天学习3个:
request
response
out :字符输出流对象。可以将数据输出到页面上。和response.getWriter()类似
response.getWriter()和out.wirte()的区别
response会先于out输出,tomcat服务器会先找response缓冲区数据,再找out缓冲区。
获取上次登录时间
获取上次登陆时间
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.net.URLEncoder" %>
<%@ page import="java.net.URLDecoder" %><%--
Created by IntelliJ IDEA.
User: fish
Date: 2022/9/22
Time: 21:58
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>itcast</title>
</head>
<body>
<%
//1.获取所有Cookie
Cookie[] cookies = request.getCookies();
boolean flag = false;//没有cookie为lastTime
//2.遍历cookie数组
if(cookies != null && cookies.length > 0) {
for (Cookie cookie : cookies) {
//3.获取cookie的名称
String name = cookie.getName();
//4.判断名称是否是: lastTime
if ("lastTime".equals(name)) {
//有该Cookie,不是第一次访问
flag = true;//有 lastTime的cookie
//设置Cookie的value
//获取当前时间的字符串,重新设置Cookie的值,重新发送cookie
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
String str_date = sdf.format(date);
System.out.println("编码前: " + str_date);
//URL编码
str_date = URLEncoder.encode(str_date, "utf-8");
System.out.println("编码后: " + str_date);
cookie.setValue(str_date);
//设置cookie的存活时间
cookie.setMaxAge(60 * 60 * 24 * 30);//一个月
response.addCookie(cookie);
//响应数据
//获取Cookie的value,时间
String value = cookie.getValue();
System.out.println("解码前: " + value);
//UR解码:
value = URLDecoder.decode(value, "utf-8");
System.out.println("解码后: " + value);
response.getWriter().write("<h1>欢迎回来,您上次访问时间为:" + value + "</h1>");
break;
}
}
}
if(cookies == null || cookies.length == 0 || flag == false){
//没有,第一次访问
//设置Cookie的value
//获取当前时间的字符串,重新设置Cookie的值,重新发送cookie
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy年MM月dd日HH:mm:ss");
String str_date = sdf. format(date);
System. out . println("编码前: "+str_date);
//URL编码
str_date = URLEncoder . encode(str_date, "utf-8");
System.out.println( "编码后: "+str_date);
Cookie cookie = new Cookie("lastTime",str_date);
//设置cookie的存活时间
cookie. setMaxAge(60 * 60 * 24 * 30);//- 个月
response.addCookie(cookie);
response.getWriter().write("<h1>您好,欢迎您首次访问</h1>");
}
%>
</body>
</html>