JavaWeb——JSP入门学习(JSP基本概念、JSP脚本、JSP内置对象)
时间:2022-07-25
本文章向大家介绍JavaWeb——JSP入门学习(JSP基本概念、JSP脚本、JSP内置对象),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本章内容只对JSP内容做入门介绍,是为了会话技术的Cookie和Session内容的承接,后续再写文章详细介绍JSP。
1 JSP基本概念
JSP,Java Server Pages,Java服务器端界面,可以理解为一个特殊页面,既可以定义html标签,又可以定义Java代码。可以简化书写!
【JSP原理】:JSP本质上就是一个Servlet
- 1)服务器解析请求消息,找是否有index.jsp资源;
- 2)若找到了,则将其转化为.java文件;
- 3)编译.java文件,生成.class字节码文件;
- 4)由字节码文件提供访问;
2 JSP脚本
JSP脚本,就是JSP定义Java代码的方式,有三种:
1)<% 代码 %>:定义的java代码,在service方法中,service中可以定义什么,该脚本中就可以定义什么;
2)<%! 代码 %>:定义的java代码,在jsp转换后 的java类的成员位置,用的很少;
3)<%= 代码 %>:定义的java代码,会输出到页面上,输出语句中可以定义什么,该脚本就可以定义什么。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
System.out.println("hello jsp");
int i = 3;
%>
<%!
int i = 5;
%>
<%=i %>
</body>
</html>
3 JSP的内置对象
内置对象,就是指在jsp页面中不需要获取和创建,可以直接使用的对象。
jsp一共有9个内置对象,后续博文中会详细讲解,本次只说明3个:
- request
- response
- out:字符输出流对象,可以将数据输出到页面,和response.getWriter()类似。
response.getWriter().write() |
out.write() |
---|---|
1、在Tomcat服务器真正给客户端响应前,会先找response缓冲区数据,再找out缓冲区数据; 2、response.getWriter()数据永远在out.writer()之前; |
建议使用out输出,避免打乱输出顺序。
4 使用JSP改造记住上一次的访问时间的案例
<%@ 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>showTime</title>
</head>
<body>
<%
//1、判断Cookie
Cookie[] cookies = request.getCookies();
boolean flag = false;
if(cookies!= null && cookies.length>0){
for (Cookie cookie : cookies) {
String name = cookie.getName();
if("lastTime".equals(name)){
flag = true;
//设置Cookie,时间
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = sdf.format(date);
time = URLEncoder.encode(time,"utf-8"); //URL编码,否则会报错
cookie.setValue(time);
//设置存活时间
cookie.setMaxAge(60*60*24*30);//一个月
response.addCookie(cookie);
//响应数据
String value = cookie.getValue();
value = URLDecoder.decode(value,"utf-8");
out.write("<h1>欢迎回来,您上次访问时间为:"+value+"</h1>");
break;
}
}
}
if(cookies ==null || cookies.length==0 || flag==false){
//设置Cookie,时间
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = sdf.format(date);
time = URLEncoder.encode(time,"utf-8");
Cookie cookie = new Cookie("lastTime",time);
//设置存活时间
cookie.setMaxAge(60*60*24*30);//一个月
response.addCookie(cookie);
out.write("<h1>您好,欢迎您首次访问</h1>");
}
%>
<input>
</body>
</html>
———————————————————————————————————————
本文为博主原创文章,转载请注明出处!
- Zookeeper安装部署调试命令
- Facebook 直播是如何承受海量压力的?
- 将 Redis 作为图数据库
- 爬取 Stackoverflow 100 万条问答并简单分析
- Python: 早点知道这些就不会这样了
- 第一个参数:initScans(job)
- Mysql 高可用 InnoDB Cluster 多节点搭建过程
- 用MapReduce分析Hbase将结果插入mysql中
- 敲敲级简单的鉴别H图片的小程序
- processArgs方法解读
- Python分布式微博爬虫(源码分享)
- NewInstallUserMapper.class阅读笔记
- TimeUtil类所有方法
- mapreduce项目调优
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- R语言数据可视化分析案例:探索BRFSS数据
- R语言探索BRFSS数据可视化
- 基于ThinkPhp6.0+Vue 开发的一套免费开源新零售商城系统
- Kubernetes之RBAC权限管理
- 这是一份 pip 常用命令小结~
- 聊聊claudb的Database
- WebSocket 初识篇
- (一)MessageQueue之消息入队
- 宇智波程序笔记2-kafka 生产发送消息失败无响应,
- 高并发系统三大利器之缓存
- Nuxt.js框架(SSR)学习笔记
- 也谈状态模式
- BFE.dev前端刷题1 - 实现curry()
- BFE.dev前端刷题2 - 实现curry() 并支持placeholder
- TKE集群日志解决方案之日志采集