JSP:入门学习
- 概念:
-
Java Server Pages:Java服务器端页面
- 可以理解为:一个特殊的页面,其中既可以写html标签,又可以写Java代码
- 用于简化书写
-
原理:JSP本质就是一个Servlet
现有一个index.jsp,通过路径访问,这时候服务器收到请求会干几件事- 服务器解析请求消息,找是否有index.jsp资源
- 如果找到了会将index.jsp转换为.java文件
- 编译.java文件,生成.class字节码文件
- 由字节码文件提供访问,字节码文件提供的响应,这个.java文件其实就是一个servlet。一个Java类要想被外界访问到必须是Servlet。所以jsp本质上就是一个Servlet
-
JSP的脚本:
- <% 代码 %>:定义的Java代码,在service方法中。service方法可以定义什么,该脚本就可以定义什么
- <%! 代码 %>:定义的Java代码,在jsp转换后的类的成员变量位置
- <%= 代码 %>:这是输出语句,输出语句可以定义什么,该脚本就可以输出什么
-
JSP的内置对象
- 在jsp页面中不需要获取和创建,可以直接使用的对象
- jsp一共有九个内置对象
- 先学三个
- request
- response
- out:字符输出流对象。可以将数据输出到页面上,和response.getWriter类似。
- response.getwriter()和out.write()的区别
在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据。所以response.getWriter()数据输出永远在out.write之前。
- response.getwriter()和out.write()的区别
-
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %><%--
Created by IntelliJ IDEA.
User: 星空之尘
Date: 2020/8/17
Time: 2:06
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>itcast</title>
</head>
<body>
<%
//先获取cookie判断是否有lastTime这个cookie
Cookie[] cookies = request.getCookies();
//设置flg,flg为true说明是第一次访问
boolean flg = true;
if (cookies != null && cookies.length > 0) {
for (Cookie cookie : cookies
) {
String value1 = cookie.getName();
if ("lastTime".equals(value1)) {
//有这个cookie说明不是第一次访问
flg = false;
String value = cookie.getValue();
response.getWriter().write("欢迎回来,您上次的访问时间为:" + value);
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
String sdfstr = sdf.format(date);
cookie.setValue(sdfstr);
cookie.setMaxAge(60 * 60 * 24);
response.addCookie(cookie);
break;
}
}
}
//第一次访问
if (cookies == null || cookies.length == 0 || flg == true) {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
String sdfstr = sdf.format(date);
Cookie cookie = new Cookie("lastTime", sdfstr);
//设置cookie存活时间为一天
cookie.setMaxAge(60 * 60 * 24);
response.addCookie(cookie);
response.getWriter().write("<h1>您好,欢迎您首次访问<h1>");
}
%>
</body>
</html>