首页 > 其他 > 详细

cookie,session,过滤

时间:2020-08-14 23:21:33      阅读:83      评论:0      收藏:0      [点我收藏+]

2020/8/14

   今天在公司是接触三个内容,一:cookie 存储在本地(浏览器和客户端)Cookie:同域名存储、可跨端口、存储在浏览器

   可调控存储时间

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
function test1() {
let cname=document.getElementById(‘name‘).value;
let cpwd=document.getElementById(‘pwd‘).value;
// ‘s10‘ s str2 10str1
setCookie("name",cname,‘s10‘)
setCookie("pwd",cpwd,‘s10‘)
}

function initData() {
let cname=getCookie(‘name‘)
let cpwd=getCookie(‘pwd‘)
alert(cname+cpwd)
document.getElementById(‘name‘).value=cname
document.getElementById(‘pwd‘).value=cpwd

}


//读取cookies
function getCookie(name) {
var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
if(arr = document.cookie.match(reg)) return unescape(arr[2]);
else return null;
}
//删除cookies
function delCookie(name) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(name);
if(cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}

//设置cookie和过期时间
function setCookie(name, value, time) {
var strsec = getsec(time);
var exp = new Date();
exp.setTime(exp.getTime() + strsec * 1);
document.cookie = name + "=" + escape(value) + ";expires=" + exp;
}

//str:时间单位 s秒、h时、d天、m分
function getsec(str) {
var str1 = str.substring(1, str.length) * 1;
//str.substring(0, 1) 截取传来的第一个
var str2 = str.substring(0, 1);
if(str2 == "s") {
return str1 * 1000;
} else if(str2 == "h") {
return str1 * 60 * 60 * 1000;
} else if(str2 == "d") {
return str1 * 24 * 60 * 60 * 1000;
}else if(str2 == "m") {
return str1 * 60 * 1000;
}
}
</script>
</head>
<body onload="initData()">
<input type="text" id="name">
<input type="text" id="pwd">
<input type="button" onclick="test1()" value="保存用户名和密码">
</body>
</html>

技术分享图片二:session 跨服务器拿到同一个值name,跨服务调用

三:filter过滤,只有登录了才能到users看数据

技术分享图片

package org.lanqiao.filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


//@WebFilter(value = {"Manager1","Manager2"})
//@WebFilter("*.do")
@WebFilter("/manager/*")
public class MyFilter implements Filter {
public void destroy() {
System.out.println("MyFilter销毁");
}

/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
//String name=(String)obj; 把request和response转换成HTTP协议的实现类
HttpServletRequest req=(HttpServletRequest)request;
HttpServletResponse res=(HttpServletResponse)response;

request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
res.setHeader("Content-Type", "text/html;charset=utf-8");
System.out.println("检测数据完毕");

Object name = req.getSession().getAttribute("name");
if (name!=null) {
//放行
chain.doFilter(req, res);
}else {
response.getWriter().write("此服务需要VIP权限才能访问");
}
System.out.println(req.getSession().getId());

System.out.println("Servlet已经处理完毕");
}

/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
System.out.println("init");
}

}

cookie,session,过滤

原文:https://www.cnblogs.com/loveJavaJava/p/13504519.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!