学习jsp篇:jsp Cookie介绍
这篇博客介绍下Cookie,JSP中比较重要的知识点Session,Cookie,表单数据,过滤器,文件上传。而Session和Cookie一般放在一起讲,在介绍cookie之前,要先介绍下Cookie。(废话一堆。。。)
1、Cookie(客户端,不是内置对象):是由服务端生成的,再发送给客户端保存。相当于本地缓存的作用(客户端 ——> 服务端)。
2、Cookie作用:提高访问服务端的效率,但是安全性较差。
3、Cookie的产生:
a、Cookie中保存的数据形式:key,value。
b、由Javax.servlet.http.Cookie类产生。
c、常见方法:
public Cookie(String name,String value)Cookie构造器
String getName()获得key值
String getValue()获得value值
void setMaxAge(int expiry)Cookie最大有效期
response.addCookie(Cookie cookie)用于服务端产生Cookie
request。getCookie(Cookie cookie)用于客户端获得Cookie
4、生成Cookie步骤:
a、服务端准备Cookie:response.addCookie(Cookie cookie)
b、页面跳转(请求转发,重定向)
c、客户端获取Cookie:request.getCookie();
注意:a、服务端增加Cookie:request对象,客户端获取对象:response对象
b、不能直接获取某一对象,只能一次将全部Cookie对象获取到。
5、写个简单的生成Cookie的实例
在项目下的web目录下新建一个Cookie文件夹,response_add.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>cookie验证页面</title>
</head>
<body>
<%
Cookie cookie1=new Cookie("zz","1111");
Cookie cookie2=new Cookie("aa","2222");
//服务端增加cookie
response.addCookie(cookie1);
response.addCookie(cookie2);
//转发cookie给客户端
response.sendRedirect("result.jsp");
%>
</body>
</html>
result.jsp生成cookie
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
//客户端获取cookie
Cookie[] cookies=request.getCookies();
//输出cookie
for(Cookie cookie:cookies){
out.println(cookie.getName()+"=="+cookie.getValue());
}
%>
</body>
</html>
结果

6、生成Cookie的实例二(算是进阶版吧)
在web目录下新建一个文件CookieDemo
login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录</title>
</head>
<body>
<%!
String name;
%>
<%
//获得已存在客户端中cookie
boolean flag=false;
Cookie cookies[]=request.getCookies();
for(Cookie cookie:cookies){
if(cookie.getName().equals("uname")){
name=cookie.getValue();
flag=true;
}
}
if(!flag){
out.println("cookie已失效");
}else{
out.println("cookie+"+name);
}
%>
<form action="check.jsp" method="post">
用户名: <input type="text" name="uname" value="<%=(name==null?"":name)%>" ><br/>
密码: <input type="password" name="upwd" ><br/>
<input type="submit" value="登录"><br/>
</form>
</body>
</html>
check.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String name=request.getParameter("uname");
Cookie cookie=new Cookie("uname",name);//没有无参构造器
//增加cookie
cookie.setMaxAge(10);
response.addCookie(cookie);
//转发cookie
response.sendRedirect("A.jsp");//这里我感觉是往客户端发,由于我们是在电脑上操作的,客户端和服务端其实是在一个机子上的
%>
</body>
</html>
A.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body> </body>
</html>
结果



从最后一张结果我们可以看到第一次登陆之后,用户名的值就存在客户端中,再次登录时,用户名已有记录。
学习jsp篇:jsp Cookie介绍的更多相关文章
- JAVA遇见HTML——JSP篇:JSP内置对象(上)
JSP九大内置对象 JSP内置对象是Web容器创建的一组对象,不使用new关键就可以使用的内置对象. <% int[] value={60,70,80}; for(int i:value){ o ...
- Java队列学习第一篇之列介绍
Java并发之显式锁和隐式锁的区别 在面试的过程中有可能会问到:在Java并发编程中,锁有两种实现:使用隐式锁和使用显示锁分别是什么?两者的区别是什么?所谓的显式锁和隐式锁的区别也就是说说Synchr ...
- 学习jsp篇:jsp Session介绍
1.Session基本介绍 Session---会话,它是一个内置对象.会话打个比方说就是浏览网站:开始到结束,或者说购物从开始到结束. 2.Session机制 客户端在第一次请求服务端时,服务端会产 ...
- java web学习笔记-jsp篇
1.java web简介 1.1静态页面与动态页面 表现形式 所需技术 静态网页 网页内容固定,不会更新 html,css 动态网页 网页内容由程序动态显示,自动更新 html,css,DB,ja ...
- JSP学习笔记七之Cookie
首先提一下http协议的无状态性.指的是server不会记住已经给它发过请求的client. 每次收到请求都会觉得是一个新的client发过来的. (即:server不会记住给他发过请求的client ...
- javaweb回顾第七篇jsp
1:为什么会有JSP jsp全名(java server pages)中文叫做java服务器页面.在Servlet那一篇我们发现用Servlet可以生成动态页面,但是我们却在Servlet中却写了大量 ...
- Java遇见HTML——JSP篇之商品浏览记录的实现
一.项目总体介绍 使用Cookie实现商品浏览记录. 要实现这个程序采取的是Model1(Jsp+JavaBean)架构实现,具体步骤: 首先要有个数据库,商品表,操作数据库的一个类DBHelper类 ...
- JavaWeb学习笔记之JSP(一)
1. JSP: 1.1. 为什么需要 JSP ? 如果使用Servlet程序来输出只有局部内容需要动态改变的网页,但是其中的静态网页内容也需要程序员使用Java语言来进行输出,这就造成了大量代码的冗余 ...
- Spring Boot干货系列:(五)开发Web应用JSP篇
Spring Boot干货系列:(五)开发Web应用JSP篇 原创 2017-04-05 嘟嘟MD 嘟爷java超神学堂 前言 上一篇介绍了Spring Boot中使用Thymeleaf模板引擎,今天 ...
随机推荐
- 求区间内第一个大于等于x的数的下标
int tree[4*N]; void build(int o,int l,int r) { if(l==r) {cin>>tree[o];return;} build(ls,l,mid) ...
- 基于CentOS7.x gitlab环境搭建,卸载,汉化 --汉化篇
gitlab环境搭建,卸载,汉化--汉化篇 注意gitlab的版本需和汉化版本一致 安装git yum install -y git 下载最新的汉化包 cd git clone https://git ...
- Redis可视化内存分析工具--RDR:查看Redis中key的占用情况
RDR(redis datareveal)是一个解析redis rdbfile的工具.与redis-rdb-tools 相比,RDR 是由 golang 实现的,速度要快得多(5GB rdbfile ...
- unittest测试框架
unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果. 一.u ...
- 都2022年了,你的前端工具集应该有vueuse
摘要:一款基于Vue组合式API的函数工具集. 本文分享自华为云社区<vueuse:我不许身为vuer的前端,你的工具集只有lodash!>,作者: 前端要摸鱼 . vueuse 是什么? ...
- Javascript中常用事件集合和事件使用方法
Javascript中常用事件集合和事件使用方法 一.事件绑定 格式: 事件源 . on事件类型=事件处理函数 事件绑定三要素 1.事件源:和谁绑定 2.事件类型:什么事件 3.事件处理函数:触发了要 ...
- blender建模常用建模快捷键
编辑物体 M2选取 M2+SHIFT选取多个 A全选 B+M1矩阵选择 C+M1笔刷选择 CTRL+M1套索选择 CTRL+SHIFT+M1取消套索选择 ALT+M2选择边循环,面 CTRL+ALT+ ...
- How To Remove Systemd Service
Method systemctl stop [servicename] systemctl disable [servicename] rm /your/service/locations/[serv ...
- java多态instanceof介绍
1 public static void method(Animal a) {//类型判断 2 a.eat(); 3 if(a instanceof Cat) {//instanceof:用于判断对象 ...
- 黑客是如何通过开放的Redis服务入侵服务器的
0x00 简要说明 百度百科:Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-V ...