ImageVerifierCode 换一换
格式:DOC , 页数:83 ,大小:6.81MB ,
资源ID:3000274      下载积分:18 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3000274.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(重点笔记会话关键技术.doc)为本站上传会员【精***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

重点笔记会话关键技术.doc

1、第36讲(会话技术简介) u 什么是会话? (会话是针对一种网站而言,不是针对各种网站。) 基本概念:指顾客开一种浏览器,访问一种网站,只要不关闭该浏览器,不论该顾客点击多少个超链接,访问多少资源,直到顾客关闭浏览器,整个这个过程咱们称为一次会话。 例如打电话,只要电话不断就算一次电话,至于过程中和多少人说过话,说多长时间,都算一次。 点一次超链接就是一种request,不也许保存起来。 因此要用会话来保存数据。 //—————————————————————————————————————— 如何保存顾客上次登录时间 如何显示顾客浏览历史

2、 如何把登录顾客名和密码保存到电脑,下次登录,不需要重新输入 u 解决之道——cookie Cookie是客户端技术,服务器把每个顾客数据以cookie形式写给顾客各自浏览器。当顾客使用浏览器再去访问服务器中web资源时,就会带着各自数据去。这样,web资源解决就是顾客各自数据了。 服务器在客户端保存顾客信息,例如登录名,密码等...就是cookie, 这些信息就像是小甜饼同样,数据量并不大,服务器端在需要时候可以从客户端读取,保存在客户端浏览器缓存目录下。 Cookie原理示意图 Cookie创立是在服务器创立,存储是在浏览器这头存储。

3、 Class Cookie //—————————————————————————————————————— Interface HttpServletResponse //—————————————————————————————————————— 演示Cookie工作 public class CreateCookie extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletExcep

4、tion,IOException { response.setContentType("text/html;charset=utf-8"); response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); //创立cookie(api) Cookie cookie= new Cookie("name","mingcheng1"); //设立cookie生命周期 cookie.setMaxAge(3600); //把cookie信息回写给浏览

5、器 response.addCookie(cookie); } //—————————————————————————————————————— 在ie访问http://localhost:8888/cookie1/CreateCookie,用HttpWatch抓包得到信息(response): Interface HttpServletRequest //—————————————————————————————————————— public class ReadCookie1 extends HttpServlet { public void

6、doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { response.setContentType("text/html;charset=utf-8"); response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); //读取所有cookie信息,再选中你要cookie Cookie cookies[

7、]=request.getCookies(); System.out.println(cookies.length); } //—————————————————————————————————————— 在ie访问http://localhost:8888/cookie1/ReadCookie1,用HttpWatch抓包得到信息(request): 在控制台浮现信息: //—————————————————————————————————————— for(int i=0;i

8、kie cookie=cookies[i]; out.println("cookie 信息 名字="+cookie.getName()+" value="+cookie.getValue()); } } //—————————————————————————————————————— u cookie原理图 u cookie可以用来做什么 1) 保存上次登录时间等信息 2) 保存顾客名、密码,在一定期间不用重新登录 3) 记录顾客访问网站喜好(例如有无背景音乐、网页背景色是什么) 4) 网站个性化,例如定制网站服务,内容。 u cookie

9、小结 ①  cookie是在服务器创立 ②  cookie是保存在浏览器这端 ③  cookie生命周期可以通过 cookie.setMaxAge(); ☞如果不设立setMaxAge则该cookie生命周期当浏览器关闭时,就消灭. ④  cookie可以被各种浏览器共享 ⑤  怎么理解 咱们可以把cookie想成一张表 ?如果cookie重名会有什么问题? 如果重名就会替代存在cookie值. ⑥  一种web应用可以保存各种cookie(各种cookie存储在一种文献里,无论生命周期相似不相似) ⑦  cookie存储时候是以明文方式存储,因而安全较低,咱们可以

10、通过加密后保存. ->补讲一种md5算法:请人们注意,后来咱们密码都要使用加密存储,在验证密码时候,对顾客输入密码,进行md5加密,然后再到数据库去验证 //———————————————————————————————————— public class Servlet1 extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { r

11、esponse.setContentType("text/html;charset=utf-8"); response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); //先获取cookie //假设咱们保存上次登录时间cookie "lasttime" "-11-11 12:12:12" //这里咱们要考虑一种状况:顾客第一次登陆 '您是第一次登陆...' Cookie cookies[]=request.getCookies(); boolean

12、b=false;//假设没有lasttime cookie if(cookies != null)//保证有cookie,才去遍历 { for(Cookie cookie:cookies) {//取出名 String name=cookie.getName(); if("lasttime".equals(name)) {//显示 out.println("您上次登录时间是:"+cookie.getValue()); //更新时间 //把当前日期保存cookie SimpleDateForm

13、at simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String nowTime=simpleDateFormat.format(new java.util.Date()); cookie.setValue(nowTime); cookie.setMaxAge(7*3600*24);//保存一周 response.addCookie(cookie); b=true; break; } } } if(!b) {/

14、/没有找到 out.println("您是第一次登陆..."); //把当前日期保存cookie SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String nowTime=simpleDateFormat.format(new java.util.Date()); Cookie cookie=new Cookie("lasttime",nowTime); cookie.setMaxAge(7*3600*24);//保存一周 r

15、esponse.addCookie(cookie); } } //—————————————————————————————————————— //—————————————————————————————————————— 打开登录页面时候,自动填写该顾客顾客名和密码(最佳单开一种项目) //—————————————————————————————————————— //—————————————————————————————————————— 点击登录后再回到Login页面点击刷新,顾客id已自动填写: //———

16、——————————————————————————————————— 点一下商品名,就弹窗商品信息,同步在刷新主界面时候,能显示出看了哪些商品,并且还要加一种功能,最后看商品要放到最前面去,当浏览过商品超过了四个后来,只保存四个。 //—————————————————————————————————————— u cookie细节 ①一种浏览器最多放入300cookie,一种web站点,最多20cookie,并且一种cookie大小限制在4k ②cookie生命周期再阐明: 1.cookie默认生命周期是会话级别 2.通过setMaxAge() 可以设立生

17、命周期 setMaxAge(正数),即多少秒后该cookie失效 setMaxAge(0),删除该cookie ③cookie存储中文,怎么解决 存储: String val=.URLEncoder.encode("铭城","utf-8"); Cookie cookie= new Cookie("name",val); 取出: String val=.URLDecoder.decode(cookie.getValue(),"utf-8"); out.println("name="+val); 案例: //————————————————————————

18、—————————————— //—————————————————————————————————————— 点击刷新后: 特别阐明:如果该web应用只有一种cookie,则删除该cookie后,在浏览器暂时文献夹下没有该cookie文献,如果该web应用有各种cookie,则删除一种cookie后,文献还在,只是该cookie没有 setMaxAge(负数),相称于该cookie生命周期是会话级别。 //第39讲(session技术)=========================================================

19、 ☞张三和李四她们购买商品不同样,她们购物车中显示商品也不同样,这是怎么实现? ☞此外一种问题,不同顾客登录网站后,不论该顾客浏览该网站哪个页面,都可显示登录人名字,同样可以随时去查看自己购物车中商品。 u session为什么有? 问题1:如何实当前不同页面,可以去查看信息(例如说购物车),同步还要实现不同顾客看到信息是自己. 对session阐明: 1. session是存储在服务器内存中 2. 一种顾客浏览器,独享一种session域对象 3. session默认生命周期是30min Interface HttpSession //———————————

20、——————————————————————————— Interface HttpServletRequest F:\tomcat\apache-tomcat-8.0.28\conf\web.xml //—————————————————————————————————————— public class Servlet1 extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws Serv

21、letException,IOException { response.setContentType("text/html;charset=utf-8"); response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); //访问session[当发现没有session时候,就会自动创立session] HttpSession session=request.getSession(); //给该session放入属性 session.setAtt

22、ribute("uname","宋江"); //session生命周期(默认30min,你也可以修改) out.println("创立session,并放入了一种属性"); } //———————————————————————————————————— public class Servlet2 extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOExcep

23、tion { response.setContentType("text/html;charset=utf-8"); response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); //获取session HttpSession session=request.getSession(); //获取 String uname=(String) session.getAttribute("uname"); if(uname==null)

24、{ out.println("session 中没有uname"); }else{ out.println("uname="+uname); } } //———————————————————————————————————— 先访问Servlet1: 再访问Servlet2,在搜狗和ie浏览器中返回成果不同样,证明了一种顾客浏览器,独享一种session域对象 //—————————————————————————————————————— ?如果同一种顾客浏览器,向设立一种属性时候,如果名字相似了,会浮现什么状况? 结论:

25、会替代该对象值。 //—————————————————————————————————————— 演示 public class Servlet3 extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { response.setContentType("text/html;charset=utf-8"); response.setCha

26、racterEncoding("utf-8"); PrintWriter out = response.getWriter(); //访问session[当发现没有session时候,就会自动创立session] HttpSession session=request.getSession(); session.setAttribute("uname","铭城"); out.println("重新设立uname"); } //—————————————————————————————————————— 先访问Servlet3重新设立unam

27、e 再访问Servlet2,这是uname已经变成铭城了。 //—————————————————————————————————————— request.getSession(true);//和不带参数同样 request.getSession(false);//没有session就算了,不再创立新 //—————————————————————————————————————— public class Servlet4 extends HttpServlet { public void doGet(HttpServletRequest req

28、uest,HttpServletResponse response) throws ServletException,IOException { response.setContentType("text/html;charset=utf-8"); response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); HttpSession session=request.getSession(); session.removeAttribute("una

29、me"); out.println("删除 uname"); } //———————————————————————————————————— Servlet2->Servlet4->Servlet2 //—————————————————————————————————————— //—————————————————————————————————————— //—————————————————————————————————————— //创立一种对象 User user=new User(); user.setName

30、"小猫"); user.setColor("红色"); session.setAttribute("cat",user); //———————————————————————————————————— User user=(User) session.getAttribute("cat"); if(user!=null) { out.println("猫信息是"+user.getName()+" "+user.getColor()); } //———————————————————————————————————— Servlet

31、1->Servlet2 //—————————————————————————————————————— session 小结: ①session是存在服务器内存中 ②一种顾客浏览器,独享一种session域对象 ③session中属性默认生命周期是30min,你可以通过web.xml来修改 这样修改: 1)一种地方是tomcat/conf/web.xml 对所有web应用生效 2)此外一种地方,就是在单个web应用下去修改web.xml 如果发生冲突,则以自己web应用下为准 3) session.setMaxInactiveInterval(20);//

32、20s 指是发呆时间 对session生命周期小结: ④session中可以存储各种属性 ⑤session可以存储对象 ⑥如果session.setAttribute(“name”,val),如果名字重复,则会替代该属性 //—————————————————————————————————————— 测试removeAttribute()办法 效果: //—————————————————————————————————————— 小作业: 防止顾客非法登录到某个页面 顾客必要登录后,才干操作管理页面。 思路: 当顾客

33、成功登录后,可以把该顾客信息存储到session,然后在需要验证页面中获取顾客信息,如果为null,阐明顾客非法,可以让其重新登录. //—————————————————————————————————————— //—————————————————————————————————————— //—————————————————————————————————————— 在之前LoginServlet写过request.getAttribute(“...”) 接受到错误信息 //——————————————————————————————————————

34、 效果: //—————————————————————————————————————— 如果网站有非常多页面,可以使用下面办法 1. 封装成函数 2. 使用过滤器 //—————————————————————————————————————— session更进一步理解:为什么服务器可觉得不同浏览器提供不同session? //—————————————————————————————————————— 抓包来查看Jsessionid: 访问http://localhost:8888/session1/Servlet1 当发现没有session时

35、候,就会自动创立。 访问http://localhost:8888/session1/Servlet5 当前在服务器内存已有session,浏览器祈求时带上Cookie(保存有jsessionid),服务器依照此id来寻找相应浏览器session。 session.getId()用来在页面上打印jsessionid。 .net [开源之祖] 3万各种开源项目 电驴、防火墙、杀毒软件、数据库、大型游戏、地图 c语言、java、php、.net、asp //—————————————————————————————————————— u 验证码案例 使用(原

36、理是使用到java绘图技术) 这里最重要就是生成验证码servlet //—————————————————————————————————————— package com.wmc; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.PrintWriter; import java.util.Random;

37、 import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class CreateCode extends HttpServlet { public void doGet(HttpServletRequest requ

38、est,HttpServletResponse response) throws ServletException,IOException { // response.setContentType("text/html;charset=utf-8"); // response.setCharacterEncoding("utf-8"); // PrintWriter out = response.getWriter(); //7.禁止浏览器缓存随机图片 response.setDateHeader("Expires",-1); response

39、setHeader("Cache-Control","no-cache"); response.setHeader("Pragma","no-cache"); //6.告知客户机以图片方式打开发送过去数据 response.setHeader("Content-Type","image/jpeg"); //1.在内存中创立一副图片 BufferedImage image=new BufferedImage(60,30,BufferedImage.TYPE_INT_RGB); //2.向图片上写数据 Graphics g=ima

40、ge.getGraphics(); //设背景色 g.setColor(Color.black); g.fillRect(0,0,60,30); //3.设立写入数据颜色和字体 g.setColor(Color.red); g.setFont(new Font(null,Font.BOLD,20)); //4.向图片上写数据 String num=makeNum(); //这句话就是把随机生成数值,保存到session request.getSession().setAttribute("checkcode",

41、num); g.drawString(num,0,20); //5.把写好数据图片输出给浏览器 ImageIO.write(image,"jpg",response.getOutputStream()); } //该函数是随机生成7位数字 public String makeNum() { Random r=new Random(); //9999999可以生成7位 String num=r.nextInt(9999)+""; StringBuffer sb=new StringBuffer(); //如果不够

42、4位,前面补零 for(int i=0;i<4-num.length();i++) { sb.append("0"); } num=sb.toString()+num; return num; } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { this.doGet(request,response); } } //——————

43、———————————————————————————————— 图片实质上就是一种文献,咱们看电影都是按文献流来传播。因此地址写一种servlet,然后servlet再写会一种图片回来。 out.println("

顾客登录

"); //action 应当这样写 /web应用名/Servleturl out.println("
"); out.println("顾客id:
");

44、 out.println("密 码:
"); out.println("验证码:
"); out.println("
"); out.println("

"); String err=(String) request.getAttri

45、bute("err"); if(err != null) { out.println(err); } 如何使用: Login.java //—————————————————————————————————————— //获取顾客id/password/输入验证码 String id=request.getParameter("id"); String passwd=request.getParameter("passwd"); String checkcode=request.get

46、Parameter("checkcode"); //取出session中验证码 String checkcode2=(String) request.getSession().getAttribute("checkcode"); //1.先验证码 if(checkcode.equals(checkcode2)) { //验证码ok request.getRequestDispatcher("/Ok").forward(request,response); //到数据库去验证 }else{ request.setAttribut

47、e("err","验证码错误"); request.getRequestDispatcher("/Login").forward(request,response); } //———————————————————————————————————— out.println("login ok"); //———————————————————————————————————— 效果: 输入对的验证码: 输入错误验证码: 练习,把验证码功能加入到顾客管理系统。 //过滤器———————————————————————————————

48、———— u 过滤器(filter) ①开发过滤器环节: 1. 创立继承HttpServlet同步实现Filter接口 2. 默认filter不生效,需要配备. web.xml: MyFilter com.wmc.filter.MyFilter

49、 MyFilter /* 3.在filter办法中添加业务逻辑. package com.wmc.filter; import java.io.IOException; import java.io.PrintWriter; 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.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.h

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服