JSP的概念||原理||JSP的脚本||JSP的内置对象||response.getWriter()和out.write()的区别||案例:改造Cookie案例
1. 概念
* Java Server Pages: java服务器端页面
* 可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码
* 用于简化书写!!!
2. 原理
* JSP本质上就是一个Servlet
3. JSP的脚本:JSP定义Java代码的方式
1. <% 代码 %>:定义的java代码,在service方法中。service方法中可以定义什么,该脚本中就可以定义什么。
2. <%! 代码 %>:定义的java代码,在jsp转换后的java类的成员位置。
3. <%= 代码 %>:定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么。
JSP的内置对象
* 在jsp页面中不需要获取和创建,可以直接使用的对象
* jsp一共有9个内置对象
* request
* response
* out:字符输出流对象。可以将数据输出到页面上。和response.getWriter()类似
response.getWriter()和out.write()的区别:
* 在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据。
* response.getWriter()数据输出永远在out.write()之前
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.net.URLEncoder" %>
<%@ page import="java.net.URLDecoder" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>itcast</title>
</head>
<body><%//1.获取所有CookieCookie[] 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.判断名称是否是:lastTimeif("lastTime".equals(name)){//有该Cookie,不是第一次访问flag = true;//有lastTime的cookie//响应数据//获取Cookie的value,时间String value = cookie.getValue();System.out.println("解码前:"+value);//URL解码:value = URLDecoder.decode(value,"utf-8");System.out.println("解码后:"+value);
%>
<h1>欢迎回来,您上次访问时间为:<%=value%></h1>
<%//设置Cookie的value//获取当前时间的字符串,重新设置Cookie的值,重新发送cookieDate 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);
%><input><%break;}}}if(cookies == null || cookies.length == 0 || flag == false){//没有,第一次访问//设置Cookie的value//获取当前时间的字符串,重新设置Cookie的值,重新发送cookieDate 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);%><h1>您好,欢迎您首次访问</h1>
<span></span><%}%><input>
</body>
</html>
JSP的概念||原理||JSP的脚本||JSP的内置对象||response.getWriter()和out.write()的区别||案例:改造Cookie案例相关推荐
- JSP第四课:用户注册登录设计(内置对象使用)
一.相关知识:内置对象使用 客户端的浏览器从Web服务器上获得网页,实际上是使用HTTP协议向服务器发送一个请求,服务器在接收到来自客户端浏览器发来的请求后要响应请求.JSP通过request对象获 ...
- JSP的9个内置对象-response
response代表服务器对客户端的响应.大部分时候,程序无须使用response来响应客户端请求,因为有个更简单的响应对象-out.它是页面输出流,是JstWriter的实例.JspWriter是W ...
- JSP内置对象-response
response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端.response对象也具有作用域,它只在JSP页面内有效.
- jsp内置对象--response
response:响应对象 提供的方法:void addcookie(Cookie cookie);服务端向客户端增加一个cookie对象 void sendRedirect(String locat ...
- jsp内置对象*response
response对象 基本概念: 包含了响应客户请求的有关信息.它是HttpServletResponse类的实例. response对象具有页面作用域,即访问一个页面时,该页面内的response对 ...
- JSP→基本语法/静态内容/指令/动作/表达式/小脚本(Scriptlet)/声明/注释、JSP页面声明周期、代码样例、九大隐式内置对象及方法代码样例
JSP(全称JavaServer Pages)是一种动态网页技术标准. 指令 注释 小脚本 声明 表达式 JSP页面声明周期 九九乘法表样例 九大隐式内置对象 out get与post请求方式区别 r ...
- JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】...
什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的 ...
- JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】(修订版)...
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 什么是EL表达式? 表达式语言(Expression ...
- JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】
什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的 ...
最新文章
- mysql 查看运行级别_Linux的运行级别和chkconfig用法
- Web版VS Code上线:最好用的IDE终于发布网页版,然而微软发完秒删
- python小学_小学生学python(二)
- Html转义字符列表
- matlab示波器显示部分,Matlab 示波器显示设置
- 配电箱接线口诀_电路设计和家庭电路控制系统大全,学会接线不求人!
- libreportparam2.dll无法继续执行代码_Java并发系列番外(1)——让Thread#stop方法无法终止你的线程...
- HihoCoder - 1877 Approximate Matching(AC自动机+dp)
- ubuntu怎么安装python3操作系统32_ubuntu系统下安装python3
- django mysql 修改密码_Django更改sqlite数据库使用mysql数据库 - 李金龙
- [Oracle]Oracle表权限小结
- 期刊第8期 | 分享C/C++嵌入式系统编程思想
- 解决支持库版本兼容问题
- KB4484127 更新导致ACCESS数据库查询报 Query '' is corrupt 异常解决方案
- 基于SEIR的传播动力学模型
- 远程协同办公 远程协同办公的7点建议和方案 居家办公也能高效率
- 豫教科计算机资源管理教案,豫科版小学五年级上册信息技术教案(全册.doc
- centos7 分辨率修改_centos系统修改屏幕分辨率问题
- 辽宁教师计算机能力提升,辽宁省中学教师信息化教学能力的现状分析与提升策略研究...
- WINCE6.0下载地址