这篇博客介绍下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介绍的更多相关文章

  1. JAVA遇见HTML——JSP篇:JSP内置对象(上)

    JSP九大内置对象 JSP内置对象是Web容器创建的一组对象,不使用new关键就可以使用的内置对象. <% int[] value={60,70,80}; for(int i:value){ o ...

  2. Java队列学习第一篇之列介绍

    Java并发之显式锁和隐式锁的区别 在面试的过程中有可能会问到:在Java并发编程中,锁有两种实现:使用隐式锁和使用显示锁分别是什么?两者的区别是什么?所谓的显式锁和隐式锁的区别也就是说说Synchr ...

  3. 学习jsp篇:jsp Session介绍

    1.Session基本介绍 Session---会话,它是一个内置对象.会话打个比方说就是浏览网站:开始到结束,或者说购物从开始到结束. 2.Session机制 客户端在第一次请求服务端时,服务端会产 ...

  4. java web学习笔记-jsp篇

    1.java web简介 1.1静态页面与动态页面   表现形式 所需技术 静态网页 网页内容固定,不会更新 html,css 动态网页 网页内容由程序动态显示,自动更新 html,css,DB,ja ...

  5. JSP学习笔记七之Cookie

    首先提一下http协议的无状态性.指的是server不会记住已经给它发过请求的client. 每次收到请求都会觉得是一个新的client发过来的. (即:server不会记住给他发过请求的client ...

  6. javaweb回顾第七篇jsp

    1:为什么会有JSP jsp全名(java server pages)中文叫做java服务器页面.在Servlet那一篇我们发现用Servlet可以生成动态页面,但是我们却在Servlet中却写了大量 ...

  7. Java遇见HTML——JSP篇之商品浏览记录的实现

    一.项目总体介绍 使用Cookie实现商品浏览记录. 要实现这个程序采取的是Model1(Jsp+JavaBean)架构实现,具体步骤: 首先要有个数据库,商品表,操作数据库的一个类DBHelper类 ...

  8. JavaWeb学习笔记之JSP(一)

    1. JSP: 1.1. 为什么需要 JSP ? 如果使用Servlet程序来输出只有局部内容需要动态改变的网页,但是其中的静态网页内容也需要程序员使用Java语言来进行输出,这就造成了大量代码的冗余 ...

  9. Spring Boot干货系列:(五)开发Web应用JSP篇

    Spring Boot干货系列:(五)开发Web应用JSP篇 原创 2017-04-05 嘟嘟MD 嘟爷java超神学堂 前言 上一篇介绍了Spring Boot中使用Thymeleaf模板引擎,今天 ...

随机推荐

  1. Java Web程序设计笔记 • 【第10章 JSTL标签库】

    全部章节   >>>> 本章目录 10.1 JSTL 概述 10.1.1 JSTL 简介 10.1.1 JSTL 使用 10.1.2 实践练习 10.2 核心标签库 10.2. ...

  2. 安装rebar3

    下载编译好的版本 wget https://s3.amazonaws.com/rebar3/rebar3 chmod +x /home/hylink/rebar3 (赋权) ./rebar3 loca ...

  3. 计算机网络-4-11-IP多播

    IP多播 IP多播的基本概念 与单播相比,在一对多的通信中,多播可以大大减少网络资源.在互联网上进行多播就叫做IP多播,IP多播所传送的分组需要使用多播IP地址.能够运行多播协议的路由器叫做多播路由器 ...

  4. hadoop 之 常用基本操作

    HDFS 常用命令(hadoop fs.hadoop dfs.hdfs dfs): hadoop fs -ls 显示当前目录结构,-ls -R 递归显示目录结构 hadoop fs -mkdir 创建 ...

  5. Echart可视化学习(十一)

    文档的源代码地址,需要的下载就可以了(访问密码:7567) https://url56.ctfile.com/f/34653256-527823386-04154f 官网找到类似实例, 适当分析,并且 ...

  6. 记一次 WinDbg 分析 .NET 某工厂MES系统 内存泄漏分析

    一:背景 1. 讲故事 上个月有位朋友加微信求助,说他的程序跑着跑着就内存爆掉了,寻求如何解决,截图如下: 从聊天内容看,这位朋友压力还是蛮大的,话说这貌似是我分析的第三个 MES 系统了,看样子 . ...

  7. Elasticsearch基础知识学习

    概要 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Ap ...

  8. TexStudio中Bibtex使用

    TexStudio中Bibtex使用 1.首先在百度文库中找到相应的参考文献: 2.建立bibfile.bib文件,放在和.tex同一目录下,将上面页面的结果考入该文件,注意其中第一行中的Tuan20 ...

  9. Rancher Fleet使用教程

    官方文档: https://fleet.rancher.io/ https://github.com/rancher/fleet 博客截止日期为:20201204 当前官网版本为v0.3.0,但在实践 ...

  10. virtual stuido同时调试多个控制台

    问题 UDP作业需要服务器端和客户端收发信息完成交互,需要同时调试多个窗口. 解决办法 但是缺点依然是无法调试2个,修改另一个测试. 所以多开可能依然是好办法.