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;width: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文件的会生成,没有的不会生成

转载于:https://www.cnblogs.com/hankai2735/p/11598005.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值