zoukankan      html  css  js  c++  java
  • session


    总结:1.session技术:Session是将数据存储到服务器端,session会为每个客户端都创建一个专属的内存空间存储数据,但客户端需要每次都携带一个标识到服务器寻找自己的内存空间
    所以说session是基于cookie的,需要cookie存储标识码JSESSIONID
    2.Session对象是用来存储用户信息的,一般用户的登录再就是页面权限的判定用session
    3.Session对象的获取;HttpSession session=request.getSession();一调用这个方法那么session对象就已经存在了;就会在服务器开辟一块内存空间
    4.调用session创建对象时,如果服务器端没有session对象那么就会创建一个新的session对象,如果已经存在了session对象那么就会调用已经存在的session;实质上通过JSESSIONID
    来判断服务器是否已经存在session对象
    5.Cookie不是域对象因为只有在服务器上才是域对象,在客户端浏览器上只是缓冲不是域对象
    6.session:1.创建:第一次调用:request.getSession()时,session创建
    2.销毁:1.服务器正常和非正常的关闭;2.2)session过期/失效(默认30分钟(从不操作服务器端的资源开始计时))3.手动关闭 session.invalidate();
    3.作用范围:默认在一次会话中,也就是说在一次会话中任何资源共用一个session对象
    4.关闭浏览器session不会销毁,因为session可持续存在半小时
    7.获取session对象:HttpSession session=requset.getSession();8.向session域中存值:session.setAttribute("name","张三");
    9.获取当前JSESSIONID:String id=session.getInt();
    10、创建Cookie对象:Cookie cookie=New Cookie("JSESSIONID",id);
    设置持久化时间; 这里设置cookie持久化时间是为了解决关闭浏览器后再从新打开还能访问之前的JSESSIONID所对应的内容
    因为只要关闭浏览器后一次会话就结束了,那么再打开就会获取一个新的cookie那么JSESSIONID的值也会改变,虽然服务器上的
    JSESSIONID内存还存在存在半小时,但是客户端浏览器的cookie是新的了那么JSESSIONID的值也不是以前那个值了,所以
    不能再找寻到以前的开辟的JSESSIONID服务器内存,所以设置cookie持久化时间后就能解决,因为就算关闭了浏览器再打开因为设置了
    cookie持久化还是上一次的cookie所以JSESSIONID的值还是上一个的值,所以还能找到原来的JSESSIONID服务器内存
    11.设置持久化:cookie.setMaxAge(60*2); 12.设置路径:cookie.setPath("/WEB0918") 13.发送cookie:response.addCookie(cookie)
    14.从session域中取值:1.获取session对象:HttpSession session=request.getSession(); 2.在域中取值:String name=(String)session.getAttribute("name")
    因为session.getAttribute()得到的是Object所以这里需要强转成String
    15.解决中文乱码:response.setContenType("text/html;setChar=UTF-8")
    16. 一个客户端只有一个session对象的内存区域,只有不关闭浏览器,就是一次会话那么就共享同一个session区域
    17.当关闭浏览器后,session区域还在,只是浏览器的的cookieID消失了,想要长时间存在,就用一个同名同路径的cookieID设置持久时间来代替
    18.验证码校验:1.先写jsp:在<formart action(跳转的地址)="/Shop/Servletlogin" method(提交的方式)="post">
    19.输入框用input写:<input type(这里是input的类型,这个是文本类型)="text" name(需要通过这个名字找到这个标签并取到code值)="code">
    20.<div style="color:red;height:20px;100%"><%=request.getAttribute("loginInfo")==null?"": request.getAttribute("loginInfo")%> <%=request.getAttribute ("login")==null?"":request.getAttribute("login")%> </div> <%= %>这个标签时向页面输出的意思(相当于system.out。prinlt),里面可以写java代码
    21.验证码校验(servlet):1.先解决post的中文乱码:request.setCharscterEncoding("UTF-8");2.接收jsp传过来的值:String code=request.getPrarameter("code");
    3.获取session对象:HttpSession session=request.getSession();4.从session取出验证码:String code=(String)requset.getAttribute("code");
    5.校验验证码,如果用户输入的验证码和session取到的验证码不一样那么就返回原来页面:
    if(!code.equals(code)){ 把验证错误的信息放进session,让jsp取出来显示在页面 request.setAttribute("yanz","验证码错误");
    然后让页面跳转回原来jsp页面: request.getRequestDispatcher("/login.jsp") 这里加return是因为如果验证码错误就直接停止运行,不然会接着运行下面的代码return}
    22.JSP:本质是servlet所以可以再jsp文件上写java代码。
    23.JSP的脚本:<% java 代码% >:这个是向控制台输出需要System.out.println();这里主要写java代码的,时间就是个servlet区域;内部的java代码翻译到service
    24.<%= java变量或表达式%>:这里自动向页面输出,主要写输出代码。
    25.<%!java代码%>JSP:写HTML代码; Servlet:写Java代码;(这里的代码是成员变量,所以这里可以写方法,写了是成员方法)
    26.<!-- 这是HTML注释 (这个注释安全性最低,可以再页面用F12被看到,所以尽量不用)-->
    <%--这是jsp注释 ;这个只能在源代码被看到,所以这个最安全--%>
    <%这是java单行注释; 在被翻译后 的class文件可以被看见(页面看不见),安全稍微好点--%>
    /*这是java多行注释 */
    27.通过浏览器第一次访问jsp文件时会在服务器work文件夹内反义成一个java文件
    28.jsp的三大指令:1)page指令:1.language:jsp脚本中可以嵌入的语言种类 2.pageEncoding(UTF-8;默认的是ISO8859-8)3.contentType:response.setContentType (text/html;charset=UTF-8)这里是设置响应的中文乱码4.session(默认值是true):是否jsp在翻译时自动创建session 5.import:导入java的包(这里的手动写import导包)
    6.errorPage和is errorPage是设置异常页面的
    29.nclude指令(可以用于导航栏和底部的引入,就是写好的一个页面,用的时候引入)
    30.taglib指令(插入循环用的)
    31.JSP的9大内置对象:1.out 2.response 3.request 4.config(Servlet的配置信息) 5.session 6.application:共享客户信息 6.Page:相当于this是本类的意思
    7.PageContext 8.exception:有errror文件的会生成,没有的不会生成

  • 相关阅读:
    Sphere AABB Collision Detaction
    左右手坐标系的差别
    php 利用 soap调用.Net的WebService asmx文件
    NewLife.XCode 上手指南(五) 复杂查询
    NewLife.Xcode 上手指南(三) 扩展属性的使用
    JS获取URL参数
    [转]模态窗口使用总结
    Jquerysimplemodal的使用,弹出窗口,弹出页面
    NewLife.XCode 上手指南(四) 级联操作
    NewLife.XCode 上手指南
  • 原文地址:https://www.cnblogs.com/hankai2735/p/11598005.html
Copyright © 2011-2022 走看看