
JSP 入门学习
所以也可以知道一个java类要想被外界访问到,必须是 一个
发布日期:2021-05-07 19:41:37
浏览次数:11
分类:技术文章
本文共 3593 字,大约阅读时间需要 11 分钟。
文章目录
一、概念
Java Server Pages java服务器端页面
* 可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码* 用于简化书写!!!
二、原理
JSP本质上就是一个Servlet





servlet
三、JSP 的脚本
(1)<% 代码 %>:定义的java代码,在service方法中。service方法中可以定义什么,该脚本中就可以定义什么。(2)<%! 代码 %>:定义的java代码,在jsp转换后的java类的成员位置。(3)<%= 代码 %>:定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>$Title$ <% System.out.println("hello jsp !!!");%><%! int i = 8;%><%="Hello world !!!"%>
四、JSP 的内置对象
JSP的内置对象: * 在jsp页面中不需要获取和创建,可以直接使用的对象 * jsp一共有9个内置对象。* 今天学习3个: * request * response * out:字符输出流对象。可以将数据输出到页面上,和response.getWriter()类似* response.getWriter()和out.write()的区别: * 在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据。 * response.getWriter()数据输出永远在out.write()之前
为了防止布局的打乱,一般使用 out 来实现输出

五、改造 Cookie 案例
<%@ page import="java.net.URLDecoder" %><%@ page import="java.util.Date" %><%@ page import="java.text.SimpleDateFormat" %><%@ page import="java.net.URLEncoder" %><%@ page contentType="text/html;charset=UTF-8" language="java" %>$Title$ <% // (1)获取所有的 Cookie Cookie[] cookies = request.getCookies(); boolean flag = false;//用来判断是否有 Cookie 为 lastTime// (2)遍历 cookies 数组 if (cookies != null && cookies.length > 0) { for (Cookie cookie : cookies) { // (3)获取 cookie 的名称 String name = cookie.getName();// (4)判断名称是否是 lastTime if ("lastTime".equals(name)) { // 有该 cookie,不是第一次访问 flag = true;// 响应数据,获取 Cookie 的 value,时间 String value = cookie.getValue();// 由于对 value 设置了编码,所以这里需要对其进行解码,才能正常显示 String decode = URLDecoder.decode(value, "utf-8"); out.write("欢迎回来,您上次访问的时间为:" + decode + "
");// 获取之后,将 value 更新为新的值// 获取当前时间的字符串,重新设置 Cookie 的值,重新发送 cookie Date date = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String format = simpleDateFormat.format(date);// 为了处理cookie 中 value 的 特殊字符,需要对其进行编码 System.out.println("编码前:" + format);// URL 编码 String encode = URLEncoder.encode(format, "utf-8"); System.out.println("编码后:" + encode);// 将编码后的值设置进去 cookie.setValue(encode);// 设置 cookie 的存活时间为一个月 cookie.setMaxAge(60 * 60 * 24 * 30); response.addCookie(cookie); break; } } } if (cookies == null || cookies.length == 0 || flag == false) { // 属于第一次访问的情况// 设置 Cookie 的 value// 获取当前时间的字符串,重新设置 Cookie 的值,重新发送 cookie Date date = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String format = simpleDateFormat.format(date);// 为了显示特殊字符需要对其进行编码处理 String encode = URLEncoder.encode(format, "utf-8"); Cookie cookie = new Cookie("lastTime", encode);// 设置 cookie 的存活时间 cookie.setMaxAge(60 * 60 * 24 * 30); response.addCookie(cookie); out.write("您好,欢迎您首次访问!
"); }%>
jsp 也支持截断操作:
<%@ page import="java.net.URLDecoder" %><%@ page import="java.util.Date" %><%@ page import="java.text.SimpleDateFormat" %><%@ page import="java.net.URLEncoder" %><%@ page contentType="text/html;charset=UTF-8" language="java" %>$Title$ <% int i = 9; out.print("截断操作");%>输出 i 的值:<%=i%>
<%= "截断操作!!!"%>
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年03月16日 15时53分04秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【快慢指针】——LeetCode - 287. 寻找重复数
2019-03-04
【数据结构系列】链表合并问题——链表的奇偶重排
2019-03-04
【Redis】Redis客户端实现的基本原理
2019-03-04
全局锁和表锁 :给表加个字段怎么有这么多阻碍?
2019-03-04
事务到底是隔离的还是不隔离的?
2019-03-04
SpringMVC的Model对象的使用
2019-03-04
文本读取和csv文件生成工具类的编写
2019-03-04
@Import注解---导入资源
2019-03-04
Leetcode 面试题 08.04. 幂集(DAY 103) ---- 回溯算法学习期
2019-03-04
重读&笔记系列-《Linux多线程服务端编程》第一章
2019-03-04
解决ubuntu在虚拟机(VMware)环境下不能联网的问题
2019-03-04
LeetCode - 字符串相乘
2019-03-04
C# 适配器模式
2019-03-04
二分查找与插入排序的结合使用
2019-03-04
892 三维形体的表面积(分析)
2019-03-04
40. 组合总和 II(dfs、set去重)
2019-03-04
16 最接近的三数之和(排序、双指针)
2019-03-04
1333 餐厅过滤器(treemap映射)
2019-03-04
python中的all函数
2019-03-04
1137 第 N 个泰波那契数(迭代、记忆性递归)
2019-03-04