详细学习Java Cookie技术(用户登录、浏览、访问权限)

本章文章详细讲解:
1、Cookie基本用法演示
2、演示Cookie的访问权限
3、演示Cookie的删除
4、利用Cookie显示用户上次登录的时间
5、利用Cookie技术显示用户最近浏览的若干个图片
6、测试火狐浏览器到底支持多少个Cookie和一个Cookie最大为多大

1、Cookie基本用法演示

index.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 </head>

 <body>
 <h1>演示Cookie技术</h1>
 <a href="CookieDemo">Cookie基本用法演示</a><br/>

 </body>
</html>

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
 xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
 <display-name></display-name>
 <servlet>
 <servlet-name>CookieDemo</servlet-name>
 <servlet-class>cn.hncu.servlets.CookieDemo</servlet-class>
 </servlet>

 <servlet-mapping>
 <servlet-name>CookieDemo</servlet-name>
 <url-pattern>/CookieDemo</url-pattern>
 </servlet-mapping>
 <welcome-file-list>
 <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
</web-app>

CookieDemo.java:

package cn.hncu.servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.Random;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CookieDemo extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {

 response.setContentType("text/html;charset=utf-8");
 PrintWriter out = response.getWriter();

 //向客户端写cookie
 Random r = new Random();
 int n =r.nextInt(100);
 String name = "jack";//cookie的格式:key=value
 Cookie c = new Cookie("name", name+n);
 c.setMaxAge(60*60);//设置过期时间,以秒为单位
 c.setPath( request.getContextPath() );//该路径是: /项目名
 //Cookie机制中,是通过path来控制权限的。只有<url-pattern>和该path相同或是它的子路径的servlet才能够访问该cookie
 //如果把一个cookie的path设为项目根目录,那么该项目下的所有servlet都能够访问它
 response.addCookie(c);

 //这一段演示cookie带中文
 String str = "我带中文";
 str = URLEncoder.encode(str, "utf-8");//中文设置编码!!!urlencode编码
 Cookie cStr = new Cookie("str", str);
 //如果不设置setMaxAge,则浏览器一关闭就过期
 cStr.setPath("/");
 response.addCookie(cStr);

 //读取客户端发过来的cookie
 Cookie cs[] = request.getCookies();//读取cookie
 if(cs!=null){//防范一下
  for(Cookie cc:cs){
  String name2 = cc.getName();
  String val = cc.getValue();
  val = URLDecoder.decode(val, "utf-8");//原来是怎么编码的,就怎么解码! 中文解码,ascii是原样的!
  out.print(name2+"="+val+"<br/>");
  }
 }

 out.print("Cook保存成功!");
 }

}

演示结果:

第一次点击时!session下次讲!tomcat自动生成发给客户端的!

再次进入时!
name+n–因为后面的n一直在随机生成,这个点击总是显示的是前一个的信息!

2、演示Cookie的访问权限

index.jsp:

<a href="servlet/CookieDemo2">演示Cookie的访问权限</a><br/>

web.xml:

<servlet>
 <servlet-name>CookieDemo2</servlet-name>
 <servlet-class>cn.hncu.servlets.CookieDemo2</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>CookieDemo2</servlet-name>
 <url-pattern>/servlet/CookieDemo2</url-pattern>
 </servlet-mapping>

CookieDemo2.java:

package cn.hncu.servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CookieDemo2 extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
 response.setContentType("text/html;charset=utf-8");
 PrintWriter out = response.getWriter();

 //向客户端写Cookie
 Random r = new Random();
 int n =r.nextInt(100);
 Cookie c = new Cookie("age", ""+n);
 c.setMaxAge(60*60);//过期时间
 c.setPath( request.getContextPath()+"/servlet/CookieDemo2" );//Cookie机制中,是通过path来控制权限的
 //由于CookieDemo的url-pattern是项目根目录/CookieDemo,不是当前cookie所设路径的子目录,因此无法访问到该cookie

 //注意!!!path不一样,那么cookie是不同的对象,也就是不会覆那个名字相同的cookie!
 response.addCookie(c);

 //读取从客户端发来的cookie
 Cookie cs[] = request.getCookies();
 if(cs!=null){
  for(Cookie cc:cs){
  String name = cc.getName();
  String val = cc.getValue();
  out.print("22222--"+name+"="+val+"<br/>");
  }
 }
 out.print("Cookie保存成功!");

 }
}

演示结果:

先进入CookieDemo2的页面,能访问到CookieDemo的name-cookie

再进入CookieDemo的页面,不能访问到CookieDemo2的age-cookie

3、演示Cookie的删除

index.jsp:

<a href="servlet/DelCookieDemo"> 演示Cookie的删除 </a><br/>

web.xml:

<servlet>
 <servlet-name>DelCookieDemo</servlet-name>
 <servlet-class>cn.hncu.servlets.DelCookieDemo</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>DelCookieDemo</servlet-name>
 <url-pattern>/servlet/DelCookieDemo</url-pattern>
 </servlet-mapping>

DelCookieDemo.java:

package cn.hncu.servlets;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DelCookieDemo extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {

 response.setContentType("text/html;charset=utf-8");
 PrintWriter out = response.getWriter();
 Cookie cs[] = request.getCookies();
 if(cs!=null){
  for(Cookie c:cs){
 //要想遍历到"name"这个cookie,当前servlet必须要有读的权限,即servlet的url-pattern必须是该cookie所设路径或者是其所设路径的子路径
  //删除name这个cookie
  if("name".equals(c.getName())){
   c.setPath( request.getContextPath() );//删除时是通过这一句来判断权限的!这里必须和原来所设的路径完全一样才能删除,否则不能删除!
   //对于上句,我的个人理解是:因为如果你这个路径设置不同了,其实只是相当与新开了一个cookie,这个新cookie的到期时间是0,name是"name"

   c.setMaxAge(0);//到期时见设为0,即是删除---此处只是设置删除标识
   response.addCookie(c);
  }
  }
 }
 }
}

演示结果:

这个时候,name还存在的。

我们访问DelCookieDemo.

再去第一个链接看:

name已经没有了!

火狐会自动删除过期的cookie:

4、利用Cookie显示用户上次登录的时间

index.jsp:

<a href="LoginServlet">利用Cookie显示用户上次登录的时间</a>

web.xml:

 <servlet>
 <servlet-name>LoginServlet</servlet-name>
 <servlet-class>cn.hncu.servlets.LoginServlet</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>LoginServlet</servlet-name>
 <url-pattern>/LoginServlet</url-pattern>
 </servlet-mapping>

LoginServlet.java:

package cn.hncu.servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {

 response.setContentType("text/html;charset=utf-8");
 PrintWriter out = response.getWriter();
 out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
 out.println("<HTML>");
 out.println(" <HEAD><TITLE>演示利用Cookie显示用户上次登录的时间</TITLE></HEAD>");
 out.println(" <BODY>");

 //读取客户端的cookie
 Cookie cs[] = request.getCookies();
 boolean boo = false;
 if(cs!=null){
  for(Cookie c:cs){
  //遍历
  if("loginTime".equals(c.getName())){
   String val =c.getValue();
   long dt = Long.parseLong(val);
   Date d = new Date(dt);
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
   out.print("您上次登录时间是:"+sdf.format(d));
   boo=true;
   break;
  }
  }
 }
 if(boo==false){//表示之前1年没有访问记录!因为下面我们保存的过期时间是一年
  out.print("您最近一年是第一次访问。。。");
 }

 //无论是新旧用户,都会以最近的时间俩创建一个Cookie,写到客户端。原来有了的,就是更新时间
 Date d = new Date();
 Cookie c = new Cookie("loginTime", ""+d.getTime() );
 c.setPath(request.getContextPath());
 c.setMaxAge(60*60*24*30*12);
 response.addCookie(c);

 out.println(" </BODY>");
 out.println("</HTML>");
 out.flush();
 out.close();
 }

}

演示结果:

第一次访问;

再次访问:

5、利用Cookie技术显示用户最近浏览的若干个图片

index.jsp:

<a href="jsps/show.jsp">看美女--利用Cookie技术显示用户最近浏览的若干个图片</a>

web.xml:

 <servlet>
 <servlet-name>ShowServlet</servlet-name>
 <servlet-class>cn.hncu.servlets.ShowServlet</servlet-class>
 </servlet>
<servlet-mapping>
 <servlet-name>ShowServlet</servlet-name>
 <url-pattern>/showImg</url-pattern>
 </servlet-mapping>

show.jsp:

<%@page import="java.io.File"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <style type="text/css">
 .span{
  border:0px solid #000;
  width:100px;
  height:100px;
  overflow:hidden;
 }
 .span img{
  max-width:100px;
  _width:expression(this.width > 100 ? "100px" : this.width);
 }
 .spans{
  border:0px solid #000;
  width:50px;
  height:50px;
  overflow:hidden;
 }
 .spans img{
  max-width:50px;
  _width:expression(this.width > 50 ? "50px" : this.width);
 }

 </style>

 </head>

 <body>
 <h1>看美女--利用Cookie技术显示用户最近浏览的若干个图片</h1>

 <a href="/myCookieWeb/jsps/show.jsp">看美女--利用Cookie技术显示用户最近浏览的若干个图片</a>
 <h3>最近浏览的图片:</h3>

 <!-- 添加最近3次浏览的图片 -->
 <%
 String str =null;
 Cookie cs[] = request.getCookies();
 if(cs!=null){
  for(Cookie c:cs){
  if("images".equals(c.getName())){
   str=c.getValue();// ***.jpg
   break;
  }
  }
 }
 if(str!=null){
  String strs[] = str.split(",");
  for(String s:strs){
  %>
   <span class="spans">
   <img src="<%=request.getContextPath()%>/imgs/<%=s%>" />
   </span>
  <%
  }
 }
 %>

 <br/><hr/><br/>

 <%
 //利用file遍历所有的图片,显示出来。
 String path = getServletContext().getRealPath("/imgs");
 //System.out.printf(path);//D:\apache-tomcat-7.0.30\webapps\myCookieWeb\jsps
 File file = new java.io.File(path);
 File[] files = file.listFiles();
 if(files!=null){
 %>

 <%
 for(File f:files){
  String imgName = f.getName();
  %>
  <span class="span">
   <a href="<%=request.getContextPath() %>/showImg?img=<%=imgName %>">
   <img src="<%=request.getContextPath()%>/imgs/<%=imgName%>" />
   </a>
  </span>
  <%
 }
 %>

 <%

 }
 %>

 </body>
</html>

ShowServlet.java:

package cn.hncu.servlets;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ShowServlet extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {

 response.setContentType("text/html");
 PrintWriter out = response.getWriter();
 out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
 out.println("<HTML>");
 out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
 out.println(" <BODY>");

 String img = request.getParameter("img");
 String imgStr = "<img src='"+request.getContextPath()+"/imgs/"+img+"'/>";
 out.print(imgStr);

 //用Cookie记录用户访问过的图片信息
 Cookie cs[] = request.getCookies();
 boolean boo = false;
 if(cs!=null){
  for(Cookie c:cs){
  if("images".equals(c.getName())){//已经有了images这个cookie
   String imgs = c.getValue();
   String imgStrs[] = imgs.split(",");
   boolean booStr = false;
   //防范点击重复的图片
   for(int i=0;i<imgStrs.length;i++){
   if(imgStrs[i].equals(img)){
    if(i==1&&imgStrs.length==2){
    imgs=imgStrs[i]+","+imgStrs[0];
    }else if(i==2&&imgStrs.length==3){
    imgs=imgStrs[i]+","+imgStrs[0]+","+imgStrs[1];
    }else if(i==2&&imgStrs.length==3){
    imgs=imgStrs[i]+","+imgStrs[0]+","+imgStrs[1];
    }
    booStr=true;
    break;
   }
   }
   if(!booStr){

   imgs = img+","+imgs;//采用如下方式会麻烦一点:imgs+","+img
   if(imgs.split(",").length>3){//如果访问的图片超过3次了
    imgs = imgs.substring(0, imgs.lastIndexOf(","));//左包含,右不包含
   }

   /*//如果这样写了,最好把上面的防范重复的图片,那个添加顺序倒过来
   //imgs+","+img 方式:
   imgs = imgs+","+img;
   if(imgs.split(",").length>3){//如果访问的图片超过3次了
    imgs = imgs.substring(imgs.indexOf(",")+1, imgs.length());
   }
   */
   }
   c.setValue(imgs);//更新
   c.setMaxAge(60*60*24*30);
   c.setPath("/");//相当于把访问权限完全放开,即所有的项目都能访问
   response.addCookie(c);
   boo=true;
   break;
  }
  }
 }
 if(boo==false){//表示首次访问,即浏览器中没有图片浏览的cookie
  Cookie c = new Cookie("images", img);
  c.setMaxAge(60*60*24*30);
  c.setPath("/");
  response.addCookie(c);
 }

 out.println(" </BODY>");
 out.println("</HTML>");
 out.flush();
 out.close();
 }

}

演示结果:

6、测试火狐浏览器到底支持多少个Cookie和一个Cookie最大为多大

index.jsp:

<a href="servlet/HowManyCookieServlet">测试火狐浏览器到底支持多少个Cookie和一个Cookie最大为多大 </a><br/>

web.xml:

 <servlet>
 <servlet-name>HowManyCookie</servlet-name>
 <servlet-class>cn.hncu.servlets.HowManyCookie</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>HowManyCookie</servlet-name>
 <url-pattern>/servlet/HowManyCookieServlet</url-pattern>
 </servlet-mapping>

HowManyCookie.java:

package cn.hncu.servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HowManyCookie extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
 PrintWriter out = response.getWriter();

 /*
 //测试个数--火狐47.0.1 最大支持110个
 for(int i=1;i<=110;i++){
  Cookie c = new Cookie("textNum"+i, ""+i);
  c.setMaxAge(60*15);
  c.setPath("/");
  response.addCookie(c);
 }
 */

 //测试大小 ---4092字节为最大支持的单个cookie存储
 String s ="";
 for(int i=0;i<4092;i++){
  s+="1";
 }
 Cookie c = new Cookie("test", s);
 c.setMaxAge(60*15);
 c.setPath("/");
 response.addCookie(c);

 Cookie cs[] = request.getCookies();//读取cookie
 if(cs!=null){//防范一下
  for(Cookie cc:cs){
  String key = cc.getName();
  String val = cc.getValue();
  out.print(key+"="+val+" ");
  }
 }

 }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java类访问权限与成员访问权限解析

    在写代码的时候有个问题:包内定义了一个接口类,另外一个包要实现它,这里采用接口隔离与依赖倒置原则,将两个包的依赖关系倒置过来.但是,这里就遇到了一个问题,实现类采用工厂模式来实例化,所以实现类就不想暴露给包外,但是实现类还要实现public接口.所以这里有产生了一个疑问,如果类是default类型,成员函数是public类型,那么访问限制是怎样的呢? 实现验证 1. 先在一个包中定义一个接口类: package mytest public interface ClassAccessTest {

  • Java中四种访问权限资料整理

     Java中四种访问权限总结 一.Java中有四种访问权限, 其中三种有访问权限修饰符,分别为private.public.protected,还有一种不带任何修饰符(default). 1. private: Java语言中对访问权限限制的最窄的修饰符,一般称之为"私有的".被其修饰的属性以及方法只能被该类的对象 访问,其子类不能访问,更不能允许跨包访问. 2. default:即不加任何访问修饰符,通常称为"默认访问权限"或者"包访问权限".

  • 举例详解Java中的访问权限修饰符

    访问权限符: (1)public: 对于成员来说:任何其他类都可以访问它们,不管在同一个包中还是在另外的包中. 对于类来说:    也是一样. (2)friendly: 对于成员老说:如果一个类的成员没有任何权限修饰,那么它门就是缺省包访问权限,用friendly来表示,注 意friendly不是Java中的关键字,这里是个人喜欢的方式用它表示而已.同一个包内其它类可以访问,但包外 就不可以.对于同一个文件夹下的.没有用package的classes,Java会自动将这些classes初见为隶属

  • 理解Java访问权限控制

    今天我们来一起了解一下Java语言中的访问权限控制.在讨论访问权限控制之前,先来讨论一下为何需要访问权限控制.考虑两个场景: 场景1:工程师A编写了一个类ClassA,但是工程师A并不希望ClassA被该应用中其他所用的类都访问到,那么该如何处理? 场景2:如果工程师A编写了一个类ClassA,其中有两个方法fun1.fun2,工程师只想让fun1对外可见,也就是说,如果别的工程师来调用ClassA,只可以调用方法fun1,那么该怎么处理? 此时,访问权限控制便可以起到作用了. 在Java中,提

  • 详解Java之路(五) 访问权限控制

    在Java中,所有事物都具有某种形式的访问权限控制. 访问权限的控制等级从最大到最小依次为:public,protected,包访问权限(无关键词)和private. public,protected和private这几个Java访问权限修饰词在使用时,是置于类中每个成员(域或者方法)定义之前的. 一.类成员的访问权限 取得对某成员的访问权的唯一途径是: 1).使该成员成为public.无论谁在哪里,都可以访问该成员: 2).通过不加访问权限的修饰词并将其他类放置于同一包内的方式给成员赋予包访问

  • Java中成员方法与成员变量访问权限详解

    记得在一次面试的笔试题中,有的面试官会要求写出具体的像pullic这些访问限定符的作用域.其实,平常我都没去系统的考虑这些访问限定符的作用域,特别是包内包外的情况,OK,笔试不行了. 这是java基本的知识,也是公司看重的,那没办法啦,我的脑袋记不住东西,那我只能把这些东西写下来方便自己温故知新,不废话了,贴代码了. 代码如下: package com.jaovo; /** *_1_ 成员变量访问权限的求证 * public private protected default(默认的权限) *自

  • 浅析java修饰符访问权限(动力节点Java学院整理)

    Java有四种访问权限,其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符: 1. private: Java语言中对访问权限限制的最窄的修饰符,一般称之为"私有的".被其修饰的类.属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问. 2. default:即不加任何访问修饰符,通常称为"默认访问模式".该模式下,只允许在同一个包中进行访问. 3. protect: 介于public 和 pri

  • 详细学习Java Cookie技术(用户登录、浏览、访问权限)

    本章文章详细讲解: 1.Cookie基本用法演示 2.演示Cookie的访问权限 3.演示Cookie的删除 4.利用Cookie显示用户上次登录的时间 5.利用Cookie技术显示用户最近浏览的若干个图片 6.测试火狐浏览器到底支持多少个Cookie和一个Cookie最大为多大 1.Cookie基本用法演示 index.jsp: <%@ page language="java" import="java.util.*" pageEncoding="

  • java使用Cookie判断用户登录情况的方法

    本文实例为大家分享了java使用Cookie判断用户登录情况的方法,供大家参考,具体内容如下 1.判断是否登录 public boolean isLogin() { Set<Cookie> cookies = this.browser.getCookies(); String JSESSIONIDID = "JSESSIONID"; String sessionIdID = "sessionId"; String loginID = "logi

  • 超详细讲解Java秒杀项目用户验证模块的实现

    目录 一.用户验证 1.在方法内添加请求与反应 2.cookie操作的封装 3.UserServiceImpl 4.跳转界面PathController 二.全局session 1.导入依赖 2.配置yml文件redis 3.开启虚拟机 三.自定义redis实现功能 1.新建RedisConfig文件 2.实现全局session 四.使用参数解析器 1.新建WebConfig文件 2.定义参数解析器 3.PathController 4.访问主界面得到相关信息: 接着上期内容超详细讲解Java秒

  • Java 实现模拟用户登录的示例代码

    创建一个用户类类型的集合,手动输入用户库 主要是判定输入的用户名和密码是否与库中的匹配 做好区别是用户名输入错误还是密码输入错误的提示. 定义用户类 public class User{ String username; String keyword; public User(String username, String keyword) { this.username = username; this.keyword = keyword; } } 主程序 import java.util.A

  • php使用cookie保存用户登录的用户名实例

    本文实例讲述了php使用cookie保存用户登录的用户名的方法.分享给大家供大家参考.具体实现方法如下: 用户登录文件:login.php 复制代码 代码如下: <html> <head> <title>用户登录</title> </head> <body> <?php function getCookieUsername(){  if(empty($_COOKIE['username'])){   return "&

  • Django利用cookie保存用户登录信息的简单实现方法

    本文实例讲述了Django利用cookie保存用户登录信息的方法.分享给大家供大家参考,具体如下: 设置cookie response对象.set_cookie('key','value',多少秒后过期) 获取cookie request对象.COOKIES.get('key') 我们继续前一篇的代码 def hi(request): msg = {'result':''} loginSuccess = False # 是否登录成功标识 if user.userLogin(request.POS

  • JS使用cookie保存用户登录信息操作示例

    本文实例讲述了JS使用cookie保存用户登录信息.分享给大家供大家参考,具体如下: 通常cookie和session,是web开发中用于存储信息的对象,session存在于服务器的内存中,而cookie则是存在客户端,所以js可以直接操作cookie进行信息的存储和读取. js存放cookie一般的写法,如:document.cookie="userName=admin";,如果是多个键值对:document.cookie="userName=admin; userPass

  • vue通过cookie获取用户登录信息的思路详解

    思路 进入页面 若未登录,跳转至登陆页面 若已登录,从cookie中获取用户信息,并执行后续操作 2. 登录页面,存入cookie(setCookie) import {setCookie,getCookie}from 'src/js/cookieUtil' methods: { async cheack_n_p () { if( this.checkCode === this.pwd) { this.loginData = await getUserInfo(this.uname, this.

  • ubuntu使用root用户登录/切换root权限的实现

    ubuntu系统默认root用户是不能登录的,密码也是空的. 如果要使用root用户登录,必须先为root用户设置密码 打开终端,输入:sudo passwd root 然后按回车 此时会提示你输入密码,在password:后输入你现在登录的用户的密码 然后系统提示你输入新的UNIX密码 Enter new UNIX password:这里输入你想为root设置的密码,要输入两次 此时系统会出现密码设置成功的提示 最后退出终端,重启计算机,选择用户进入系统的地方,选择其他 然后输入root 再输

  • django 实现编写控制登录和访问权限控制的中间件方法

    django中,很多时候我们都需要有一个地方来进行更加详细的权限控制,例如说哪些用户可以访问哪些页面,检查登录状态等,这里的话就涉及到了中间件的编写了. 在django项目下的setting.py文件中,有一个MIDDLEWARE_CLASSES的字段,这里存放的就是中间件,用户的访问会先经过这些中间件的处理之后再给各种views函数进行处理.在这个参数中加入我们接下来要编写的中间件: MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middlew

随机推荐