jsp入门
概念: java server pages:java服务器端页面
* 一个特殊的页面,可以定义java代码又可以定义html标签
* 用于简化书写
原理
- JSP本质是一个Servlet
脚本
JSP定义java代码的方式
- <% java代码 %> 定义的java代码在service方法中可以定义什么,代码就能定义什么
- <%! java代码 %> 在jsp转换后的java类的成员位置。
- <%= java代码 %> 定义的java代码会输出到页面上,输出语句可以定义什么就可以写什么
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
System.out.println("hello, jsp!"); //打印到控制台
int i = 5;
%>
<%!
int i = 3; //在jsp转换后的java类的成员位置。
%>
<%=
i //输出到页面上
%>
hello, jsp! <%--显示在页面--%>
</body>
</html>
output:5 hello, jsp!
JSP内置对象
- 在jsp页面中不需要获取和创建,可以直接使用的对象称为内置对象
- jsp有9个内置对象
1. request
2. response
3. out:字符输出流对象,将数据输出到页面上,类似于response.getWriter()区别:out对象的定义在哪就在哪输出,而resp对象的输出流始终在out对象前输出 Tomcat在给客户端做出响应时始终先找response的缓冲区,再找out缓冲区
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>showTime</title>
</head>
<body>
<%
Cookie[] cs = request.getCookies();
boolean flag = false;
if(cs != null && cs.length > 0){
for (Cookie c : cs) {
String name = c.getName();
if(name.equals("lastTime")){
flag = true;
String value = c.getValue();
int nowTime = (int)(System.currentTimeMillis()/1000);
int lastTime = Integer.parseInt(value);
int subTime = nowTime - lastTime;
%>
<h1>欢迎你回来,你上次访问在<%= subTime%>秒前!</h1>
<%
c.setValue(nowTime + "");
c.setMaxAge(60 * 60 * 24 * 30);
response.addCookie(c);
break;
}
}
}
if(cs == null || cs.length == 0 || flag == false){
String time = System.currentTimeMillis()/1000 + "";
Cookie cookie = new Cookie("lastTime", time + "");
cookie.setMaxAge(60 * 60 * 24 * 30);
response.addCookie(cookie);
%>
out.write("<h1>你好,欢迎你首次访问</h1>");
<%
}
%>
</body>
</html>