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

什么是新闻源网站wordpress镶嵌网页

什么是新闻源网站,wordpress镶嵌网页,公司logo背景墙设计效果图,网页代理网站Web 开发会话技术Session Session有什么用session基本原理session原理示意图session可以做什么如何理解Session Session常用方法Session底层实现机制原理分析图应用实例session实现原理动画 Session生命周期Session生命周期说明Session生命周期实例 作业布置 Session有什么用 … Web 开发会话技术Session Session有什么用session基本原理session原理示意图session可以做什么如何理解Session Session常用方法Session底层实现机制原理分析图应用实例session实现原理动画 Session生命周期Session生命周期说明Session生命周期实例 作业布置 Session有什么用 ●思考两个问题 1.不同的用户登陆后, 不管该用户浏览网站的哪个页面, 都可显示登陆人的名字, 还可以随时去查看自己的购物车中的商品, 是如何实现的? 2.也就是说, 一个用户在浏览网站不同页面时, 服务器是如何知道是张三在浏览这个页面, 还是李四在浏览这个页面? 3.如果让我们来实现这个功能, 我会如何完成? ●解决之道-session技术 1.Session是服务器端技术, 服务器在运行时为每一个用户的浏览器创建一个其独享的session对象/集合. 2.由于session为各个用户浏览器独享, 所以用户在访问服务器的不同页面时, 可以从各自的session中读取/添加数据, 从而完成相关任务. session基本原理 session原理示意图 1.当用户打开浏览器, 访问某个网站, 操作session时, 服务器就会在内存(在服务端)为该浏览器分配一个session对象, 该session对象被这个浏览器独占. 2.这个session对象也可看作是一个容器/集合, session对象默认存在时间30min(Tomcat的conf/web.xml中配置的), 也可修改. session可以做什么 1.网上商城的购物车. 2.保存登陆用户的信息. 3.将数据放入到Session中, 供用户在访问不同页面时, 实现跨页面访问数据. 4.防止用户非法登录到某个页面. 如何理解Session 1.session存储结构示意图 2.你可以把session看作是一种容器类似 HashMap, 有两列(K-V), 每一行就是session的一个属性. 3.每个属性包含有两个部分, 一个是该属性的名字(String), 另一个是该属性的值(Object). Session常用方法 1.创建和获取Session HttpSession hs request.getSession(); 第1次调用是创建Session会话, 之后调用是获取创建好的Session对象. 2.向session添加属性 hs.setAttribute(String name, Object obj); 3.从session得到某个属性 Object obj hs.getAttribute(String name); 4.从session删除某个属性 hs.removeAttribute(String name) 5.isNew(): 判断是不是刚创建出来的Session. 6.每个Session都有1个唯一标识Id值. 通过getId() 得到 Session的会话 id值 Session底层实现机制 原理分析图 ●session底层实现机制图解 应用实例 需求: 演示session底层实现机制-创建和读取session. 代码实现 1.创建src/com/zzw/session/CreateSession.java public class CreateSession 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 {//1.获取session, 同时也可能创建sessionHttpSession session request.getSession();//2.获取该session的idString sessionId session.getId();System.out.println(当前sessionId sessionId);//3.给该session存放数据session.setAttribute(email, 978964140qq.com);//4.给浏览器回复response.setContentType(text/html;charsetutf-8);PrintWriter writer response.getWriter();writer.print(h1创建并操作session成功/h1);writer.flush();writer.close();} }配置web.xml servletservlet-nameCreateSession/servlet-nameservlet-classcom.zzw.session.CreateSession/servlet-class /servlet servlet-mappingservlet-nameCreateSession/servlet-nameurl-pattern/createSession/url-pattern /servlet-mapping2.测试session创建的机制 http://localhost:8081/cookie_session/createSession, 注意抓包分析 3.创建src/com/zzw/session/ReadSession.java public class ReadSession 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 {System.out.println(ReadSession doPost()...);//1.根据浏览器携带的jsessionId获取session, 如果没有对应session会创建一个HttpSession session request.getSession();//2.输出存储在服务器端的session的idSystem.out.println(ReadSession 当前session id session.getId());//3.读取当前session的属性Object email session.getAttribute(email);if (email ! null) {System.out.println(session属性 email email);} else {System.out.println(session中没有email属性);}//4.回复浏览器response.setContentType(text/html;charsetutf-8);PrintWriter writer response.getWriter();writer.write(h1读取session成功/h1);writer.flush();writer.close();} }servletservlet-nameReadSession/servlet-nameservlet-classcom.zzw.session.ReadSession/servlet-class /servlet servlet-mappingservlet-nameReadSession/servlet-nameurl-pattern/readSession/url-pattern /servlet-mapping4.测试session创建的机制 http://localhost:8081/cookie_session/readSession, 注意抓包分析 5.有了代码的支撑, 我们再回头看session的原理图, 就有更深刻地理解. session实现原理动画 ●服务器是如何实现一个session为一个用户浏览器服务的. Session生命周期 Session生命周期说明 1.public void setMaxInactiveInterval(int interval): 设置Session的超时时间(以秒为单位), 超过指定的时长, Session就会被销毁. 值为正数的时候, 设定Session的超时时长. 负数表示永不超时. 2.public int getMaxInactiveInterval(): 获取Session的超时时间. 3.public void invalidate(): 让当前Session会话立即无效. 4.如果没有调用setMaxInactiveInterval()来指定Session的生命时长, Tomcat会以Session的默认时长为准, Session的默认超时时间为30min, 可以在tomcat的web.xml中配置 5.Session的生命周期指的是: 客户端/浏览器两次请求的最大间隔时长, 而不是累积时长, 即当客户端访问了自己的session, session的生命周期将从0开始重新计算. 6.底层: Tomcat用一个线程来轮询会话状态, 如果某个会话的空闲时间超过设定的最大值, 则将该会话销毁. Session生命周期实例 需求: 演示session的生命周期. 代码实现 1.创建src/com/zzw/session/CreateSession2.java public class CreateSession2 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 {System.out.println(CreateSession2 doPost()被调用...);//1.创建sessionHttpSession session request.getSession();System.out.println(CreateSession2 session的id为 session.getId());//2.设置生命周期, 即最大间隔时长为60s (60s内不访问, 删除)session.setMaxInactiveInterval(60);//3.设置属性session.setAttribute(username, 赵志伟);//4.返回给浏览器response.setContentType(text/html;charsetutf-8);PrintWriter writer response.getWriter();writer.write(h1设置session生命周期成功/h1);writer.flush();writer.close();} }配置web.xml servletservlet-nameCreateSession2/servlet-nameservlet-classcom.zzw.session.CreateSession2/servlet-class /servlet servlet-mappingservlet-nameCreateSession2/servlet-nameurl-pattern/createSession2/url-pattern /servlet-mapping2.创建src/com/zzw/session/readSession2.java public class ReadSession2 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 {System.out.println(ReadSession2 doPost() 被调用...);//1.获取sessionHttpSession session request.getSession();System.out.println(ReadSession2 sessionId session.getId());//2.读取session属性Object username session.getAttribute(username);if (username ! null) {System.out.println(session属性: username username);} else {System.out.println(找不到username属性);}//3.返回给浏览器response.setContentType(text/html;charsetutf-8);PrintWriter writer response.getWriter();writer.write(读取session成功);writer.flush();writer.close();} }servletservlet-nameReadSession2/servlet-nameservlet-classcom.zzw.session.ReadSession2/servlet-class /servlet servlet-mappingservlet-nameReadSession2/servlet-nameurl-pattern/readSession2/url-pattern /servlet-mapping3.测试. 访问createSession2后, 会在服务器创建一个只有60s的session, 如果在60s内没有浏览器没有访问, 那么在61s的时候, 浏览器携带该jsessionId访问服务器时, 服务器会再创建一个session, 并返回新的jsessionId. 如果时间没到60s, 那么访问服务器, 不会返回新的jsessionId; 如果时间超过60s, session已被销毁, 那么访问服务器, 会返回新的jsessionId. 4.创建src/com/zzw/session/DeleteSession.java, 销毁session public class DeleteSession 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 {System.out.println(DeleteSession doPost() 被调用...);//1.根据浏览器jsessionId获取sessionHttpSession session request.getSession();System.out.println(DeleteSession sessionId session.getId());//2.删除session属性session.removeAttribute(username);//3.销毁sessionsession.invalidate();//因为session是在服务端的, 所以session销毁之后无需返回浏览器//3.返回给浏览器response.setContentType(text/html;charsetutf-8);PrintWriter writer response.getWriter();writer.write(h1删除session属性成功/h1);writer.flush();writer.close();} }配置web.xml servletservlet-nameDeleteSession/servlet-nameservlet-classcom.zzw.session.DeleteSession/servlet-class /servlet servlet-mappingservlet-nameDeleteSession/servlet-nameurl-pattern/deleteSession/url-pattern /servlet-mapping5.测试. 每次访问deleteSession, 都不会返回jsessionId. 解读: Session的生命周期 1.指的是两次访问session的最大间隔时间。 2.如果你在session没有过期的情况下, 操作session, 则会重新开始计算生命周期。 3.session是否过期, 是由服务器来维护和管理 4.如果我们调用了invalidate(), 会直接将该session删除/销毁 5.如果希望删除session对象的某个属性, 使用removeAttribute(“xx”) 作业布置 需求: 防止用户非法进入管理页面. 说明 1.只要密码是666666, 我们认为就是登陆成功. 2.用户名不限制. 3.如果验证成功, 则进入管理页面 ManageServlet.Java, 否则进入error.html 4.如果用户没有登陆过, 直接访问ManageServlet.java, 重定向到login.html 代码实现 1.新建web/login.html !DOCTYPE html html langen headmeta charsetUTF-8title用户登录/title /head body h1用户登陆页面/h1 form action? methodpost用户名:input typetext nameusername /br/br/密 码:input typepassword namepwd //brbr/input typesubmit value登陆/ /form /body /html2.新建src/com/zzw/session/homework/ManageServlet.java public class ManageServlet 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();//1.获取登录用户名Object username session.getAttribute(username);if (username null) {response.sendRedirect(request.getContextPath() /login.html);}//2.返回给浏览器response.setContentType(text/html;charsetutf-8);PrintWriter writer response.getWriter();writer.write(h1用户管理页面/h1\n 欢迎你: 管理员 username);writer.flush();writer.close();} }配置web.xml servletservlet-nameManageServlet/servlet-nameservlet-classcom.zzw.session.homework.ManageServlet/servlet-class /servlet servlet-mappingservlet-nameManageServlet/servlet-nameurl-pattern/manageServlet/url-pattern /servlet-mapping3.新建web/error.html !DOCTYPE html html langen headmeta charsetUTF-8title失败页面/title /head body h1登录失败/h1 a hreflogin.html点击返回重新登录/a /body /html4.新建src/com/zzw/session/homework/LoginCheckServlet.java public class LoginCheckServlet 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 {System.out.println(LoginCheckServlet doPost() 被调用...);//1.获取用户登陆数据request.setCharacterEncoding(utf-8);String password request.getParameter(pwd);//2.校验if (666666.equals(password)) {//如果校验成功, 获取用户名String username request.getParameter(username);//将用户信息存入sessionHttpSession session request.getSession();session.setAttribute(username, username);session.setAttribute(password, password);RequestDispatcher requestDispatcher request.getRequestDispatcher(/manageServlet);requestDispatcher.forward(request, response);} else {RequestDispatcher requestDispatcher request.getRequestDispatcher(/error.html);requestDispatcher.forward(request, response);}} }配置web.xml servletservlet-nameLoginCheckServlet/servlet-nameservlet-classcom.zzw.session.homework.LoginCheckServlet/servlet-class /servlet servlet-mappingservlet-nameLoginCheckServlet/servlet-nameurl-pattern/loginCheck/url-pattern /servlet-mapping5.回填web/login.html form action/cookie_session/loginCheck methodpost6.浏览器测试.
http://www.hkea.cn/news/14433163/

相关文章:

  • 做网站需要会什么 知乎注册公司需要啥资料
  • 网站优化能发外链的gvm网站大全域名 备案 没有网站吗
  • 深圳培训公司网站建设阿里云如何搭建网站
  • 鞍山网站建设企业邓州微网站建设
  • 山西太原制作网站人有吗wordpress模板 菜谱
  • 高端文化网站360收录提交申请
  • 网站 关键词 地区学网站建设需要什么
  • 哪些网站是用wordpress怎么制作网站导航页
  • 网站建设优化推广系统公司简历模板图片
  • 了解网站建设的流程app平台制作开发
  • 深圳网站设计比较好的公司国内出名网站建设设计公司
  • 甘肃省建设厅招标办网站假网页生成器
  • 滁州seo网站排名优化苏州姑苏区专业做网站
  • 创造网站需要什么条件成都网站设计服务商
  • 做网站图片切图可以用中文吗站群系统哪个好用
  • 高明网站设计服务广州网站推广找哪家
  • 网站设计报价单如何做网站源码
  • 浙江省网站备案时间南宁seo渠道哪家好
  • 怎么在网站上做图片轮播软件销售网站模板
  • 建设学校网站策划书天津app制作
  • 网站建设怎么添加图片上去wordpress 修改admin
  • 网站开发验证码图片不显示网站三网合一什么意思
  • 哪个网站的课件做的好订阅WordPress
  • 网站默认数据库地址wordpress 表介绍
  • 房地产网站策划书创网作文
  • 学做美食饮品网站做景观园林的网站是
  • 泉港区建设局网站廉政三门峡做网站公司
  • 高级网站开发培训价格钦州住房和城乡建设局网站
  • 惠州网站制作询问薇知名的wordpress博客
  • 外贸网站建设szjijie代写文章平台