1.JSP的入门学习
1.概念:java Server Pages:java服务器端页面
可以理解为一个特殊的页面,既可以定义HTML标签,又可以定义java代码
可以简化书写
2.原理:JSP本质上就是一个Servlet
3.JSP的脚本:JSP定义java代码的方式
1.<% 代码 %>
:定义的java代码,在service代码中,
service方法中可以定义什么,该脚本就可以定义什么
2.<%! 代码 %>
:定义的java代码,在jsp装换的java类型的成员变量
3.<%= 代码 %>
:定义的java代码,会输出到页面上,
输出语句中定义什么,该脚本上就可以定义什么
4.JSP的内置对象:在JSP中不创建就可以直接使用的对象,JSP一共有9个内置对象
1.request
2.response
3.out:字符输出流对象。可以将数据输出到页面上。response.getWrite()
类似
在Tomcat服务器真正给客户端做出相应之前,会先找response缓冲区数据,再找out缓冲区数据,response.getWriter()数据输出永远在out.write()之前
<%@ page contentType="text/html;charset=UTF-8" buffer="16kb" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
System.out.println("hello jsp");
int i=5;
String contextpath = request.getContextPath();
out.print(contextpath);
%>
<%! int i=3; %>
<%="hello"%>
<%response.getWriter().write("response....");%>
</body>
</html>
2.改造Cookie案例
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.net.URLEncoder" %>
<%@ page import="java.net.URLDecoder" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
//设置响应的消息体的数据格式以及编码
response.setContentType("text/html;charset=utf-8");
//获取所有的Cookie
Cookie[] cookies = request.getCookies();
boolean flag = false;//没有cookie为lastTime
//遍历cookies数组
if(cookies!=null && cookies.length>0){
for(Cookie cookie :cookies){
//获取cookie的名称
String name = cookie.getName();
//判断名称是否是: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);//一个月
//发送cookie
response.addCookie(cookie);
// 获取cookie的value
String value = cookie.getValue();
System.out.println("解码前:"+value);
//URL解码
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.setValue(str_date);
//设置cookie的存活时间
cookie.setMaxAge(60*60*24);//一个月
//发送cookie
response.addCookie(cookie);
response.getWriter().write("<h1>您好!欢迎您首次访问</h1>");
}
%>
</body>
</html>