JavaWeb中Cookie与Session的使用
时间:2021-09-03
本文章向大家介绍JavaWeb中Cookie与Session的使用,主要包括JavaWeb中Cookie与Session的使用使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Cookie的存值、取值与注销
public class CookieDemo01 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 设置请求和响应的字符集,防止乱码
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
PrintWriter out = resp.getWriter();
// 服务器从客户端获取Cookie
Cookie[] cookies = req.getCookies();
if(cookies!=null){
out.write("您上次的访问时间是:");
for (Cookie cookie : cookies) {
Cookie co = cookie;
if(co.getName().equals("lastTime")){
long l = Long.parseLong(co.getValue());
Date date = new Date(l);
out.write(date.toLocaleString());
}
}
}else{
out.write("这是你第一次访问本站");
}
Cookie cookie = new Cookie("lastTime",String.valueOf(System.currentTimeMillis()));
// 设置cookie有效期为一天,设置有效期为0,可以手动删除cookie,即注销cookie
cookie.setMaxAge(24*60*60);
// 服务器为客户端设置Cookie
resp.addCookie(cookie);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
Session的存值、取值与注销
public class SessionDemo01 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 设置字符集,防止乱码
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
// 浏览器从服务器得到session
HttpSession session = req.getSession();
// 给session中存东西
session.setAttribute("name","lyon");
// 获取session的ID
String sessionId = session.getId();
// 判断session是不是空的
if(session.isNew()){
resp.getWriter().write("session创建成功,ID:"+sessionId);
}else{
resp.getWriter().write("session已经在服务器中存在,ID:"+sessionId);
}
/** session创建的时候做了什么?
* 1. Cookie cookie = new Cookie("name", "lyon");
* 2. resp.addCookie(cookie);
*/
// 取session的值
Object name = session.getAttribute("name");
resp.getWriter().write("<br />"+"本次取得的session值为:"+name.toString());
System.out.println(name.toString());
// 设置session的值为对象类型,并取值
session.setAttribute("person",new Person("lyon",18));
Person person = (Person) session.getAttribute("person");
resp.getWriter().write("<br />"+"本次从session中取到Person对象的值为:"+person.toString());
// 手动注销session
session.invalidate();
/** web.xml中注销通过设置有效时间
*
* <session-config>
* <!-- 15分钟后session自动失效 -->
* <session-timeout>15</session-timeout>
* </session-config>
*/
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
原文地址:https://www.cnblogs.com/hilyon/p/15224949.html
- IO模型
- jenkins 从git拉取代码
- Silverlight:针式打印机文字模糊的改善办法
- 大数据和云计算技术周报:NoSQL特辑
- 常用业务接口界面化 in python flask
- 打印机设置(PrintDialog)、页面设置(PageSetupDialog) 及 RDLC报表如何选择指定打印机
- 区块链推动支付革命
- MySQL常见的库操作,表操作,数据操作集锦及一些注意事项
- nohup命令
- 跨浏览器的剪贴板访问解决方案
- 装逼必备:大型分布式网站术语分析
- 年前爆炸一波!小程序视频功能来了!
- ubuntu13.04环境hadoop1.2.1单机模式安装
- silverlight:telerik RadControls中RadGridView的一个Bug及解决办法
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 13.深入k8s:Pod 水平自动扩缩HPA及其源码分析
- python 协程新版
- 14.深入k8s:kube-proxy ipvs及其源码分析
- netty
- Flutter基础widgets教程-TabBar篇
- 厉害了!华为将发布国产编程语言,打破国外垄断!
- Flutter基础widgets教程-TabBarView篇
- 求求你不要在用!=null判空了
- Geant4--root和csv文件存储
- 爬虫模拟登录破解无原图滑动验证码
- Flutter基础widgets教程-TabBarView篇
- python + selenium 爬虫模拟登录破解无原图滑动验证码
- python 轻量级定时框架apscheduler,周中定时给自己发送邮件。
- python 舆情分析 nlp主题分析 (1) 待续
- Flutter基础widgets教程-Text篇