如何完整的做一个web项目,进阶篇(4)cookie的使用以及网页分页功能实现
一、Cookie
-
cookie概述:
(1)Cookie是由服务端通过浏览器向客户端主动存放的一段小文本。(2)Cookie依赖于浏览器而存在,不同的浏览器有不同的cookie,不同的站点存放的cookie只能自己使用,其他系统无法取得。
(3)浏览器可以通过设置将cookie禁用,如果cookie禁用则服务端将无法向客户端添加cookie。
(4)设置cookie会设置一个存活期,在存活期内该cookie一直存在于客户端的浏览器中以备使用,当到达存活期后该Cookie自动消失。
(5)Cookie使用key-value对应的形式来存储相关数据类似于map集合。
(6)Cookie默认的存活期依赖于session,当session消失时cookie同时消失(cookie只是在浏览器缓存,并没有真实的存储到客户端),我们可以通过设置cookie的最大存活期,让cookie保存到客户端硬盘。
-
cookie具体作用:
(1)搜集用户信息及用户偏好
(2)存储用户账户相关信息
(3)未登录状态的购物车信息
(4)记录用户的行为 -
cookie的使用:
Java中Cookie属于javax.servlet.http.Cookie包
(1)向客户端添加cookie,通过响应对象添加
(2)从客户端读取cookie
(3)删除cookie(Cookie不支持直接删除,除非在浏览器中手动删除)
在服务端需要删除客户端的cookie必须使用存活期来删除(通过修改cookie的存活期实现)Cookie的存活期通过cookie.setMaxAge(int)实现: 0:表示立即删除 -1:表示cookie的存活期依赖于session >0:设置具体时间(以秒为单位)
二、网页分页
-
概述
在网页中一般有两种分页方式:
(1)程序分页
程序分页指一次性将数据库中的相关数据查出,然后通过逻辑设置实现分页,该方式执行效率高,但由于是一次性取出数据放入到内存中,如果数据库过大则比较耗内存。
(2)数据库分页(建议使用)
数据库分页指一次值从数据库获得一页显示的数据,当访问第二页时会再次访问数据库获得第二页显示的数据。不同的数据库分页的SQL语句不一样,mysql使用limit实现分页;sqlserver使用top实现分页;oracle使用rownumber实现分页。 -
使用
这里我们使用的是一个图书商城的开发实例进行展示,使用的数据库是MySQL。
MySQL的分页SQL语句: select * from tbl_book order by book_price desc limit 0,10; limit 起始行号(从0开始),每页查询的行数
实现步骤:
PageParams:从客户端向服务端传递的数据的封装
PageInfo:从服务端向客户端传递数据的封装
(1) 定义一个分页参数类,在其中定义分页要使用到的相关参数
(2) 创建一个分页Bean,该类中存放关于分页的相关数据
(3) BookDao接口中添加两个关于分页查询的方法并实现
这里所使用的查询方法就是我上一篇文章中用反射进行封装的方法。 如果有疑问可以翻看一下上一篇文章。
(4) BookService中将获得的分页相关数据封装到pageInfo对象中
(5) BookServlet中将pageInfo中相关的数据存入到request对象并发送到页面展示
总结一下:cookie主要用于实现自动登录以及电商项目中未登录的购物车等功能。分页就主要用于页面展示。
- 如何完整的做一个web项目,进阶篇(5)过滤器filter的使用以及数据库连接池druid的使用
- 如何使用 asp.net 4.0 新特性 路由功能 有助于seo优化 给一个 asp.net web项目(网站项目) 增加路由功能 ,继承,给根据路由生成的url的结尾,增加一个有利于seo优化的斜杠 /,跳转到一个路由生成的url页面
- JAVA_WEB项目之Lucene检索框架实现增删查改的代码优化以及分页功能实现
- 如何使用三层架构设计模式去完整的实现一个功能?
- JXCELL实例学习与研究(六) 之 sheet的分页功能的实现,以及基本EXCEL公式的使用 以及补充函数说明
- Android 编程下 WebView 加载一个网页如何得到网页的 Cookie 值
- 一个简单的分页功能的实现(.net开发 数据库使用EF 语句linq)
- [PHP]移动端网页如何使用JqueryMobile+PHP实现上传图片的功能
- 在Web微信应用中使用博客园RSS以及Quartz.NET实现博客文章内容的定期推送功能
- 使用webpack搭建vue项目实现脚手架功能
- 如何创建一个基于webpack打包的Vue项目,并实现码云上git仓库与本地仓库实现连通
- JAVA_WEB项目之三大框架中不使用HibernateTemplate而使用SessionFactory以及如何使用注解
- 【iOS开发-94】xcode6怎么使用GIT以及如何给老得项目增加GIT功能?
- 基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍。最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室。
- Linux平台,使用JavaComm3 API及SMSLib项目实现在Web Application中发送手机短信的功能
- 使用Python以及flask框架实现区块链的创建、工作量证明、共识算法、生成网络节点并一步步运行挖矿检验(文末附项目完整代码)
- Myeclipse 2019.12.5添加JDK12和使用Tomcat9以及创建一个web项目
- 详解如何使用Docker部署一个web项目并打包成镜像文件
- 如何使用一个按钮实现两个功能
- 如何使用Java语言实现一个网页爬虫