/**
* 读取所有cookie
* 注意二、从客户端读取Cookie时,包括maxAge在内的其他属性都是不可读的,也不会被提交。浏览器提交Cookie时只会提交name与value属性。maxAge属性只被浏览器用来判断Cookie是否过期
* @param request
* @param response
*/
@RequestMapping("/showCookies")
public void showCookies(HttpServletRequest request,HttpServletResponse response ){
Cookie[] cookies = request.getCookies();//这样便可以获取一个cookie数组 if (null==cookies) {
System.out.println("没有cookie=========");
} else {
for(Cookie cookie : cookies){
System.out.println("name:"+cookie.getName()+",value:"+ cookie.getValue());
}
}
}
/**
* 添加cookie
* @param response
* @param name
* @param value
*/
@RequestMapping("/addCookie")
public void addCookie(HttpServletResponse response,String name,String value){
Cookie cookie = new Cookie(name.trim(), value.trim());
cookie.setMaxAge(30 * 60);// 设置为30min cookie.setPath("/");
System.out.println("已添加===============");
response.addCookie(cookie);
}
/**
* 修改cookie
* @param request
* @param response
* @param name
* @param value
* 注意一、修改、删除Cookie时,新建的Cookie除value、maxAge之外的所有属性,例如name、path、domain等,都要与原Cookie完全一样。否则,浏览器将视为两个不同的Cookie不予覆盖,导致修改、删除失败。
*/
@RequestMapping("/editCookie")
public void editCookie(HttpServletRequest request,HttpServletResponse response,String name,String value){
Cookie[] cookies = request.getCookies();
if (null==cookies) {
System.out.println("没有cookie==============");
} else {
for(Cookie cookie : cookies){
if(cookie.getName().equals(name)){
System.out.println("原值为:"+cookie.getValue());
cookie.setValue(value);
cookie.setPath("/");
cookie.setMaxAge(30 * 60);// 设置为30min System.out.println("被修改的cookie名字为:"+cookie.getName()+",新值为:"+cookie.getValue());
response.addCookie(cookie);
break;
}
}
}
}
/**
* 删除cookie
* @param request
* @param response
* @param name
*/
@RequestMapping("/delCookie")
public void delCookie(HttpServletRequest request,HttpServletResponse response,String name){
Cookie[] cookies = request.getCookies();
if (null==cookies) {
System.out.println("没有cookie==============");
} else {
for(Cookie cookie : cookies){
if(cookie.getName().equals(name)){
cookie.setValue(null);
cookie.setMaxAge(0);// 立即销毁cookie cookie.setPath("/");
System.out.println("被删除的cookie名字为:"+cookie.getName());
response.addCookie(cookie);
break;
}
}
}
}
2、通常开发时先用以下的代码将获取的cookie进行封装
/**
* 根据名字获取cookie
* @param request
* @param name cookie名字
* @return
*/
public Cookie getCookieByName(HttpServletRequest request,String name){
Map<String,Cookie> cookieMap = ReadCookieMap(request);
if(cookieMap.containsKey(name)){
Cookie cookie = (Cookie)cookieMap.get(name);
return cookie;
}else{
return null;
}
}
/**
* 将cookie封装到Map里面
* @param request
* @return
*/
private Map<String,Cookie> ReadCookieMap(HttpServletRequest request){
Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
Cookie[] cookies = request.getCookies();
if(null!=cookies){
for(Cookie cookie : cookies){
cookieMap.put(cookie.getName(), cookie);
}
}
return cookieMap;
}
分享到:
相关推荐
Jsp网站之数据库的增删改查,分页布局,登录验证(Cookie),照片(Blob)输入输出。
主要介绍了Java 对 Cookie增删改查的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
重点知识点:基本的增删改查、SQL命令,索引、存储过程、JDBC。 主流的数据库有MySQL、Oracle、SQL Server等等,你只需要搞定一个就可以了,知识都是相通的,一通百通。目前公司里用到MySQL的比较多,所以建议大家...
| BookStorage.jsp | 管理员操作的页面,可对图书进行增删改查 | | Index.jsp | 增加图书页面 | | AddBook.java | 增加图书 | | Update.java | 修改图书数量 | | Delete.java | 删除图书 | | Book.java | 图书...
2.超级管理员具有最高权限,可以对所有的宿舍管理员、所有的宿舍楼和所有的学生进行增删改查; 3.宿舍管理员具有本宿舍楼的高级权限,可以对本楼栋的所有学生进行增删改查; 4.学生没有写数据库的权限,只有查看...
进行数据的增删改查,提供修改数据的各种按钮。并存放到数据库中,session实现登录之后不用重复登录的功能,cookie实现十天免登录功能。页面稍显简陋,但是后端数据处理方面五脏俱全。
2.超级管理员具有最高权限,可以对所有的宿舍管理员、所有的宿舍楼和所有的学生进行增删改查; 3.宿舍管理员具有本宿舍楼的高级权限,可以对本楼栋的所有学生进行增删改查; 4.学生没有写数据库的权限,只有查看自己...
7.常规的增删改查操作 8.关联关系 9.缓存机制 10.代理对象 11.框架整理 12.mybatis-plus 13.Cookie和Session 14.MD5加密 15.正反向代理 16.mybatis调用流程 17.动态SQL 以及相关知识.希望对大家有所帮助, 如果有哪里...
商品编辑:商品增删改查,使用了分页插件 上架:更改商品状态,添加商品信息到solr服务器,静态化商品页面 系统前台 商品检索:使用solr服务器进行全文检索,商品详情页面采用freemarker实现静态化 购物车:采用...
【资源说明】 1、该资源包括项目的全部...### 2022/4/10 - 导入市场活动,市场活动备注的增删改查: 1. 文件上传用到MultipartFile类,需要引入相关插件并在MVC配置文件中配置multipartResolver解析器bean 2. 将thy