当前位置: 首页 > news >正文

保定 营销型网站建设三网合一网站建设全包费用

保定 营销型网站建设,三网合一网站建设全包费用,专业建设内容,太原做企业网站#x1f497;wei_shuo的个人主页 #x1f4ab;wei_shuo的学习社区 #x1f310;Hello World #xff01; 状态管理 问题引入 HTTP协议是无转态的#xff0c;不能保存提交的信息如果用户发来一个新的请求#xff0c;服务器无法知道它是否与上次的请求联系对于那些需要多次… wei_shuo的个人主页 wei_shuo的学习社区 Hello World 状态管理 问题引入 HTTP协议是无转态的不能保存提交的信息如果用户发来一个新的请求服务器无法知道它是否与上次的请求联系对于那些需要多次提交数据才能完成的web操作比如登录就难以完成 概念 将浏览器与web服务器之间多次交互当做一个整体来处理并且多次交互所涉及的数据状态保存下来 状态管理分类 客户端状态管理技术将转态保存在客户端代表性的是Cooklie技术服务器状态管理技术将状态保存在服务器端代表性的是session技术(服务器传递session时需要使用Cookie的方式)和application Cookie Cookie是浏览器访问Web服务器某个资源时由Web服务器在HTTP响应消息头中附带传送给浏览器的小段数据一旦Web服务器保存了某个Cookie那么它在以后每次访问该Web服务器时都应在HTTP请求中将这个Cookie回传给Web服务器一个Cookie主要由标识该信息的名称name和值value组成 Cookie的创建、获取、修改 Cookie创建 WebServlet(value /cs) public class CookieServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//服务端创建Cookie对象Cookie cookie new Cookie(username,weishuo);//设置Cookie的访问路径cookie.setPath(/Servlet_Projects_war/get);//设置Cookie的有效期 0有效期,单位秒 0浏览器关闭 0内存存储 默认-1cookie.setMaxAge(60*60); //1小时//添加到response对象中将Cookie响应给客户端resp.addCookie(cookie); //将Cookie添加到response对象中响应给客户端} } Cookie获取 WebServlet(value /get) public class GetServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//通过request对象获取所有的cookieCookie[] cookies req.getCookies();if (cookies!null){ //判断cookies数组是否为空避免空指针异常//通过循环遍历Cookiefor (Cookie cookie : cookies) {System.out.println(cookie.getName() : cookie.getValue());}}}Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);} }Cookie修改 如果修改Cookie的name和有效路径会新建cookie而改变Cookie值有效期会覆盖原有的Cookie WebServlet(value /cs2) public class CookieServlet2 extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//服务端创建Cookie对象Cookie cookie new Cookie(username,given);//设置Cookie的访问路径cookie.setPath(/Servlet_Projects_war/get);//设置Cookie有效期cookie.setMaxAge(60*60*24*7); //7天//添加到response对象中将Cookie响应给客户端resp.addCookie(cookie);} } Cookie编码与解码 Cookie默认不支持中文只能包含ASCII字符所以Cookie需要对Unicode字符进行编码否则会出现乱码 编码可以使用java.net.URLEncoder类的encode(String str,String encoding)方法解码使用java.net.URLDecoder类的decode(String str,String encoding)方法 //Cookie设置WebServlet(value /cs3) public class CookieServlet3 extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//服务端创建Cookie对象使用Cookie编码Cookie cookie new Cookie(URLEncoder.encode(姓名,UTF-8),URLEncoder.encode(张三,UTF-8));//设置Cookie的访问路径cookie.setPath(/Servlet_Projects_war/get);//设置Cookie有效期cookie.setMaxAge(600);//添加到response对象中将Cookie响应给客户端resp.addCookie(cookie);} }//Cookie读取WebServlet(value /get) public class GetServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//通过request对象获取所有的cookieCookie[] cookies req.getCookies();if (cookies!null){ //判断cookies数组是否为空避免空指针异常//通过循环遍历Cookiefor (Cookie cookie : cookies) {//使用Cookie解码System.out.println(URLDecoder.decode(cookie.getName(),UTF-8) : URLDecoder.decode(cookie.getValue(),UTF-8));}}}Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);} } 总结 Cookie优点 可配置到期规则Cookie是一种基于文本的轻量级结构包含简单的键值对Cookie默认在过期之前是可以一直存在在客户端浏览器上 Cookie的缺点 大小受到限制浏览器对Cookie大小有4K8K字节限制用户配置为禁用用户禁用了浏览器或客户端接受Cookie的能力Cookie可能被篡改存在潜在风险 Session 概述 Session用于记录用户的状态Session指的是一段时间单个客户端与web服务器的一连串交互过程一个Session中客户可能会多次请求访问同一个资源也可能请求访问各种不同的服务器资源 原理 Tip Session和Cookie都是由服务器端创建 服务器为每一次会话分配一个Session对象同一个浏览器发起的多次请求同属于一次会话Session首次使用Session服务器自动创建Session并且创建Cookie存储SessionID发送回客户端 session使用 Session作用域拥有存储数据的空间作用范围是一次会话有效 一次会话是使用同一浏览器发送到多次请求浏览器关闭则会话结束可以将数据存入Session中一次会话的任意位置进行获取可以传递任何数据基本数据类型、对象、集合、数组 获取session //获取Session对象 HttpSession session request.getSession(); System.out.println(idsession.getId()); //唯一标识package com.woniu.sessions;import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.IOException;WebServlet(name Servlet, value /ss) public class Servlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//通过request对象获取session对象HttpSession session request.getSession();System.out.println(session.getId());}Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);} }Session保存数据 保存数据到session中 setAttribute(属性名,Objects); session.setAttribute(key,value); //以键值对形式存储在session作用域中Session获取数据 获取session中数据 getAttribute(属性名); session.getAttribute(key); //通过String类型的key访问Object类型的valueSession移除数据 从Session中删除数据 removeAttribute(属性名); session.removeAttribute(key); //通过移除session作用域中的值应用 Servlet类 WebServlet(name Servlet, value /ss) public class Servlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//通过request对象获取session对象HttpSession session request.getSession();//使用session保存数据session.setAttribute(username,given);//通过产生的session对象获取sessionIdSystem.out.println(session.getId());}Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);} }GetValueServlet类 WebServlet(name GetValueServlet, value /getValue) public class GetValueServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {HttpSession session request.getSession();String username (String) session.getAttribute(username);System.out.println(从session中获得了 username); //从session中获得了given} }RemoveServlet类 WebServlet(name RemoveServlet, value /remove) public class RemoveServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {HttpSession session request.getSession();session.removeAttribute(username);} }结果 543D0EA33CB586691A02C00564E34CEA 从session中获得了given 从session中获得了nullSession Request 区别 request是一次请求有效请求改变则request改变session是一次会话有效浏览器改变则session改变 SessionServlet类 WebServlet(name Servlet, value /ss) public class SessionServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//通过request对象获取session对象HttpSession session request.getSession();//使用session保存数据session.setAttribute(username,given);//使用request保存数据request.setAttribute(password,123456);//重定向跳转到/getValueresponse.sendRedirect(/Servlet_Projects_war/getValue);//通过产生的session对象获取sessionIdSystem.out.println(session.getId());}Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);} }GetValueServlet类 WebServlet(name GetValueServlet, value /getValue) public class GetValueServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {HttpSession session request.getSession();String password (String) request.getAttribute(password);System.out.println(从request中获得了 password);String username (String) session.getAttribute(username);System.out.println(从session中获得了 username); //从session中获得了given} }结果 从request中获得了null 从session中获得了given总结 sendRedirect跳转时地址栏发生改变代表客户端重新发送请求属于两次请求response没有作用域两次request请求中的数据无法共享而session只要浏览器不关闭属于一次会话一次会话中浏览器数据可以共享 Session生命周期 开始第一次使用到Session的请求产生则创建Session结束 浏览器关闭则失效Session超时则失效 session.SetMaxInactivelnterval(seconds); 设置最大有效时间单位/秒 手工销毁则失效 session.invalidate(); 登录退出、注销 LifeSessionServlet类 WebServlet(name LifeSessionServlet, value /life) public class LifeSessionServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取sessionHttpSession session request.getSession();//设置session有效过期时间为10ssession.setMaxInactiveInterval(10);//通过产生的session对象获取sessionIdSystem.out.println(session.getId());} }GetSessionServlet类 WebServlet(name GetSessionServlet, value /getSession) public class GetSessionServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取sessionHttpSession session request.getSession();System.out.println(session.getId());//手工销毁立即失效//session.invalidate();} }结果 浏览器输入/life获取到的sessionId 71A9B2141F22840E0BE7EA67B49EC9B310秒内浏览器输入/getSession获取到的sessionId 71A9B2141F22840E0BE7EA67B49EC9B310秒后浏览器输入/getSession获取到的sessionId EDF2E31978DE8295486C2657016F5202浏览器禁用Cookie解决方案 浏览器禁用Cookie后果 服务器在默认情况下会使用Cookie的方式将sessionID发送给服务器如果用户禁止Cookie则sessionID不会被浏览器保存此时服务器使用如URL重写这样的方式来发送sessionID URL重写 浏览器在访问服务器上的某个地址时不再使用原来的那个地址而是使用经过改写的地址即在原来的地址后面加上sessionID 实现URL重写 response.encodeRedirectURL(String url); //生成重写的URL //实现URL重写 String url response.encodeRedirectURL(/Servlet_Projects_war/getSession);//输出URL重写地址 System.out.println(url);//重定向转发 response.sendRedirect(url);结果 重写URL地址 /Servlet_Projects_war/getSession;jsessionidA38B1C92B9CDE10F6ED5E7AA19E919F0浏览器输入/life获取到的sessionId A38B1C92B9CDE10F6ED5E7AA19E919F0重定向转发地址/Servlet_Projects_war/getSession获取到的sessionId A38B1C92B9CDE10F6ED5E7AA19E919F0结语创作不易如果觉得博主的文章赏心悦目还请——点赞收藏⭐️评论
http://www.tj-hxxt.cn/news/223692.html

相关文章:

  • 网站流量不够竞价网站做seo
  • 哪个网站做的win10比较干净rttheme 18 wordpress
  • 网站模板 外贸工厂郑州网站建设案例
  • 昆明做网站建设的公司谷歌google不能访问造成wordpress打开缓慢
  • 做网站的语言有哪些免费的个人简历模板文件
  • 自己用dw做网站能加声音吗爱采购推广平台
  • 云南 网站模版网站数据库搬家
  • 销售网站建设实验报告百度资源平台
  • 恶意点击别人的网站广州公司注册无地址
  • 设备网站建设做网站的公司 贵阳
  • 网站建设管理员国外网站页面设计
  • 合肥网站制作软件开发前景分析
  • 安吉网站建设全球最好的设计网站
  • 网站与网页区别是什么意思公司网站建设苏州劳伦
  • 做网站的软件有哪些朋友说做网站什么的怎么赚钱
  • 杭州做外贸网站企业网站营销
  • 购物网站建设优缺点京东网站建设流程图
  • 查找网站注册时间frontpage制作个人网页教程
  • 建设手机网站经验分享怎么看一个网站做外链
  • 旅游加盟网站建设做网站及小程序需要会哪些技能
  • 网站建设找实体还是淘宝百度地图广告投放
  • 成都定制企业网站制作上海建设工程安全质量监督站网站
  • 宜昌网站排名优化济南品质网站建设哪家好
  • 移动网站开发公司邯郸网站设计服务平台
  • 利用模板建网站蓬莱网站建设公司
  • 网站建设案例教程视频教程深圳保障性住房申请条件
  • 百度怎么做开锁网站哪个网站的财经做的好知乎
  • 网站建设制作模板网站怎么做wordpress主题数据
  • 杭州seo网站排名铜仁市网站建设
  • 查询网站流量排名亚洲尺码与欧洲尺码区别