怎么找做网站的客户,交易平台网站模板,国际军事新闻最新消息中国,国内网站如何做流量Apache Maven是一个项目管理和构建工具#xff0c;它基于项目对象模型#xff08;POM#xff09;的概念#xff0c;通过一小段描述信息来管理项目的构建、报告和文档。
Maven模型有#xff1a;
项目对象模型、依赖管理模型、插件 会话技术#xff1a;
会话#xff1a…Apache Maven是一个项目管理和构建工具它基于项目对象模型POM的概念通过一小段描述信息来管理项目的构建、报告和文档。
Maven模型有
项目对象模型、依赖管理模型、插件 会话技术
会话浏览器和服务端进行请求发送和响应的过程
会话跟踪一种维护浏览器状态的方法服务器需要识别多次请求是否来自于同一服务器以便在同一次会话的多次请求之间共享数据。
服务器用来识别浏览器的过程就是会话跟踪。 现在的浏览器和服务器不支持数据共享是因为 浏览器和服务器之间使用的是HTTP请求来进行数据传输 HTTP协议是无状态的每次浏览器向服务器请求时服务器都会视为新的请求 HTTP协议设计成无状态的目的是让每次请求之间相互独立互不影响 请求与请求之间独立后就无法实现多次请求之间的数据共享 小结HTTP协议是无状态的靠HTTP协议无法实现会话跟踪 想要实现会话跟踪需要用到Cookie和Session
Cookie、Session这两个技术都可以实现会话跟踪最大的区别是Cookie存储在浏览器端而Session存储在服务器端。
客户端会话跟踪技术Cookie
Cookie的操作分为两类——发送Cookie、获取Cookie
发送Cookie
1.创建Cookie对象并设置数据 Cookie cookie new Cookie(key,value);
2.发送Cookie到客户端使用response对象 response.addCookie(cookie);
WebServlet(/cookie)
public class CookieServlet extends HttpServlet{Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {// 发送Cookie// 1. 创建Cookie对象Cookie cookie new Cookie(name, tzp);// 2. 使用response对象发送Cookieresp.addCookie(cookie);}Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {doGet(req, resp);}
}
//访问查看Cookie的值为nametzp
获取Cookie
1.获取客户端携带的Cookie使用request对象
Cookie[ ] cookies request.getCookies()
2.使用Cookie对象方法获取数据
cookie.getName();
cookie.getValue();
WebServlet(/getCookie)
public class GetCookieServlet extends HttpServlet{Overrideprotected void doGet(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,IOException{//获取CookieCookie[] cookies req.getCookie;//遍历Cookieif(cookies!null){for(Cookie cookie:cookies){//获取Cookie的名称和值String name cookie.getName();String value cookie.getValue();System.out.println(name : value);}} }Overrideprotected void doPost(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,IOException{doGet(req,resp);}
}在访问CookieServlet和GetCookieServlet的中间把浏览器关闭GetCookieServlet无法再获取到Cookie的数据默认情况下Cookie存储在浏览器内存中当浏览器关闭内存释放Cookie被销毁 所以遇到的问题是如何将Cookie持久化存储 setMaxAgeint seconds这个API可以来完成 参数值为 1.正数将Cookie写入浏览器所在电脑的硬盘持久化存储到时间自动删除 2.负数默认值Cookie在当前浏览器内存中当浏览器关闭Cookie被销毁 3.零删除对应Cookie 设置Cookie时间
Cookie cookienew Cookie(name,tzp);
cookie.setMaxAge(60*60*24*7); //7天存活时间
resp.addCookie(cookie);
Cookie存储中文
//发送Cookie 创建Cookie对象
String value彭于晏;
Cookie cookienew Cookie(name,URLEncoder.encode(value,StandardCharsets.UTF-8));
resp.addCookie(cookie);
----------------------------------------------------------------------------------WebServlet(/getCookie)
Cookie[] cookiesreq.getCookies();
if(cookies!null){for(Cookie cookie:cookies){String namecookie.getName();String value URLDecoder.decode(cookie.getValue(),StandardCharsets.UTF_8);System.out.println(name:value);}
}
服务端会话跟踪技术Session
存储在客户端的数据容易被窃取和截获存在很多不安全因素存储在服务端的数据相比于客户端来说更安全。 Session的基本使用 获取Session对象使用的是request对象 HttpSession session request.getSession(); Session对象提供的功能 1.存储数据到session域中 void setAttributeString nameObject o 2.根据key获取值 Object getAttributeString name 3.根据key删除该键值对 void removeAttributeString name WebServlet(/session)
public class SessionServlet extends HttpServlet{Overrideprotected void doGet(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,IOException{//存储到Session中//1.获取Session对象HttpSession session req.getSession();//2.存储数据session.setAttribute(username,tzp);}Overrideprotected void doPost(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,IOException{doGet(req,resp);}
}
WebServlet(/getSession)
public class GetSessionServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {// 获取数据从session中// 1. 获取Session对象HttpSession session req.getSession();// 2. 获取数据Object username session.getAttribute(username);System.out.println(username);}Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {doGet(req, resp);}
}
先访问/session将数据存入Session再访问/getSession从Session中获取数据 通过案例的效果能看到Session能够在一次会话中两次请求之间共享数据。 注意 : Session 中可以存储的是一个 Object 类型的数据也就是说 Session 中可以存储任意数据类型 Session是基于Cookie来实现的 Cookie和Session的区别 存储位置 Cookie 是将数据存储在客户端 Session 将数据存储在服务端 安全性 Cookie 不安全 Session 安全 数据大小 Cookie 最大 3KB Session 无大小限制 存储时间 Cookie 可以通过 setMaxAge() 长期存储 Session 默认 30 分钟 服务器性能 Cookie 不占服务器资源 Session 占用服务器资源 应用场景 : 购物车 : 使用 Cookie 来存储 以登录用户的名称展示 : 使用 Session 来存储 记住我功能 : 使用 Cookie 来存储 验证码 : 使用 session 来存储 结论 Cookie 是用来保证用户在未登录情况下的身份识别 Session 是用来保存用户登录后的数据