1,Java操作Session

Java操作Session非常简单,步骤如下

1.1,在servlet中通过request获取session

HttpSession session = request.getSession(true);

true代表当前没有建立session则创建一个session,并返回这个session

false代表当前没有session,不做操作,返回null

默认为true

1.2,利用session对象设置属性或删除属性

添加

session.setAttribute("username", username);
session.setMaxInactiveInterval(60 * 30);  //默认为秒

删除

session.removeAttribute("username")

2,Java操作Cookie

Java操作Cookie就有些需要注意的地方了

为此,建立一个操作cookie的工具类

CookieUtil.java

 package org.guangsoft.util;

 import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
*
* @author guanghe
*/
public class CookieUtil
{
/**
* 设置cookie
*
* @param response
* @param key cookie名字
* @param value cookie值
* @param maxAge cookie生命周期 以秒为单位
* @param path cookie传递路径
* @param domain cookie域
*/
public static void addCookie(HttpServletResponse response,
String key, String value, int maxAge, String path, String domain)
{
Cookie cookie = new Cookie(key, value);
cookie.setPath(path);
cookie.setDomain(domain);
if (maxAge > 0)
{
cookie.setMaxAge(maxAge);
}
response.addCookie(cookie);
} /**
* 根据名字获取cookie
*
* @param request
* @param name cookie名字
* @return
*/
public static Cookie getCookieByName(HttpServletRequest request, String name)
{
Cookie cookies[] = request.getCookies();
if (cookies != null)
{
for (int i = 0; i < cookies.length; i++)
{
Cookie cookie = cookies[i];
if (name.equals(cookie.getName()))
{
return cookie;
}
}
}
return null;
}
}

调用代码:

UserService.java

 public boolean setAutoLog(HttpServletRequest request,HttpServletResponse response, String username)
{
CookieUtil.addCookie(response, "username", username, 3600 * 24 * 3, "/manage/userServlet.action", "localhost");
return true;
} public boolean logout(HttpServletRequest request,HttpServletResponse response, String username)
{
CookieUtil.addCookie(response,"username","",0, "/manage/userServlet.action", "localhost");
return true;
}

严重提醒:删除Cookie时,只设置maxAge=0将不能够从浏览器中删除cookie,
* 因为一个Cookie应当属于一个path与domain,所以删除时,Cookie的这两个属性也必须设置。
* 误区:没有重视客户端发送到服务器端的cookie的path与domain值为空这个问题。
* 因为在登陆系统时,设置了Cookie的path与domain属性的值,就误认为每次客户端请求时,都会把Cookie的
* 这两个属性也提交到服务器端,但系统并没有把path与domain提交到服务器端(提交过来的只有Cookie的key,value值)。


Java操作Session与Cookie的更多相关文章

  1. C# 操作Session、Cookie,Url 编码解码工具类WebHelper

    using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Text ...

  2. nodejs操作session和cookie

    session: 安装模块 cnpm install express-session 引入session注册到路由 var express = require('express'); var sess ...

  3. 第7课:sql注入、操作session、cookie实例、网络编程、操作Excel

    1. 简单讲一些sql注入的内容 name = 'zdq' sex = '女' cur.execute("select * from bt_stu where real_name='%s'& ...

  4. ecshop里操作session与cookie

    目录 操作session 操作cookie html模板里提交保存用用户名 php里 js里保存cookie js里读取cookie html模板里smart的保留变量 html模板里取session ...

  5. yii 操作session和cookie

    一,在Yii中使用session 1,CHttpSession 与原生态php5的session使用差别是,php5使用session_start();$_session['key'] = $valu ...

  6. Java服务端对Cookie的简单操作

    Java服务端对Cookie的简单操作 时间 2016-04-07 10:39:44 极客头条 原文  http://www.cuiyongzhi.com/index.php/post/15.html ...

  7. JAVA操作COOKIE

    JAVA操作COOKIE 1.设置Cookie Cookie cookie = new Cookie("key", "value"); cookie.setMa ...

  8. python运维开发(十九)----Django后台表单验证、session、cookie、model操作

    内容目录: Django后台表单验证 CSRF加密传输 session.cookie model数据库操作 Django后台Form表单验证 Django中Form一般有2种功能: 1.用于做用户提交 ...

  9. ThinkPHP第二十六天(JQuery操作select,SESSION和COOKIE)

    1.JQuery操作select,假设<select id="my"> A:双击选项<option>事件,应该是select的dbclick事件. B:获得 ...

随机推荐

  1. Bringing up interface eth0: Error:Connection activation failed:Device not managed by NetworkManager

    Just follow the below steps and everything will be ok...   1. Remove Network Manager from startup Se ...

  2. 黑客帝国风格必备插件ProPowerTools

    ProPowerTools  详细说明点这里

  3. groovy-集合

    Lists 你能使用下面的方法创建一个lists,注意[]是一个空list. 1 def list = [5, 6, 7, 8] 2 assert list.get(2) == 7 3 assert  ...

  4. 轻量级应用开发之(02)UIView

    一 控件 1.屏幕上的所有UI元素都叫做控件(也有叫做视图.组件)比如按钮(UIButton).文本(UILabel)都是控件. 2.控件的共同属性有哪些? 尺寸,位置,背景色 3. 苹果将控件的共同 ...

  5. Spring学习6-Spring整合Struts2

    一.Spring为什么要整合Struts2     Struts2与Spring进行整合的根本目的就是要让 Spring为Struts2的Action注入所需的资源对象,它们整合的原理则是只要导入了s ...

  6. c#中的23种设计模式

    C# 23种设计模式汇总 创建型模式 工厂方法(Factory Method) 在工厂方法模式中,工厂方法用来创建客户所需要的产品,同时还向客户隐藏了哪种具体产品类将被实例化这一细节.工厂方法模式的核 ...

  7. background总结

    1. background-position background-position的百分比属性规则是:图片本身(x%,y%)的那个点,与背景区域的(x%,y%)的那个点重合. 具体可参考: http ...

  8. 整理时下流行的浏览器User-Agent大全

    总结整理时下流行的浏览器User-Agent大全 此文章转至:http://www.360doc.com/content/12/1012/21/7662927_241124973.shtml 用于学习 ...

  9. js控制固定div和随屏滚动div兼容多浏览器和纯css控制(来自网络)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. ExtJS学习之路第五步:认识最常见组件Panel

    文档中描述 Panel(面板)是一个容器,它具有特定的功能和结构部件,这使它成为面向应用用户界面的完美基石.面板,继承自Ext.container.Container,能够配置布局以及子组件(Chil ...