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");
}
}
原文:https://www.cnblogs.com/loveJavaJava/p/13504519.html