javaweb整理

tomcat认识

sun公司创立了javaEE规范,共13个,:JDBC,JNDI,EJB,RMI,JSP,Servlets,XML,JMS,Java IDL,JTS,JTA,JavaMail,JAF。就是定了一系列接口,想跟我玩,就要遵守我的规范,实现我的接口

tomcat实现了其中的servlet以及jsp规范

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LrmZTCOu-1631173765983)(d:\user\01405876\桌面\笔记\tomcat笔记.assets\image-20210909150742451.png)]

引用https://www.yuque.com/books/share/2b434c74-ed3a-470e-b148-b4c94ba14535/wmwbat
在javaweb开发中,我们没有写过与浏览器交互的代码,那么谁帮我们实现了?就是tomcat实现了,他解析http请求,构造request与response对象给我们使用,我们只需要根据request拿到浏览器给的信息,组装我们自己的数据,写到response中,Tomcat帮我们发到浏览器中展示。

所以,我们用Java开发的Web应用只是一个半成品,类似于一个插件,而服务器则像一个收发器
在这里插入图片描述

引用https://www.yuque.com/books/share/2b434c74-ed3a-470e-b148-b4c94ba14535/wmwbat

coockie

起源:我们都知道,浏览器与服务器是基于http请求的,http请求是没有状态的(所谓没有状态就是说每一次浏览器发起http请求都是独立的,和之前的请求完全没有关系),这就会导致一些问题,比如客户刚刚登陆,跳转一个页面,请求是独立的话,服务器是不知道你有登陆过,会要求你再次登陆。。。

怎么解决呢?既然http请求是没有状态的,那么我们可以人为的使它有状态,当首次请求服务器的时候,服务器生成一些记录用户的信息给到浏览器,浏览器下次携带这些信息再次请求服务器,服务器就知道了是谁在请求自己,上面的问题也就迎刃而解了,这个服务器给浏览器的信息就存储在cookie中。

cookie也分为2种,一:会话cookie:浏览器关闭,内存中的cookie及被删除

二:持久性cookie:浏览器关闭,cookie也不删除,持久化到硬盘上了,什么时候删除呢,服务器生成cookie的时候可以人为的设置最大存活时间

session

起源:有了前面的cookie不是已经解决问题了吗?为什么还需要session? 仔细分析,cookie是有几个问题的,1.每次请求都需要带着这些信息,对网络是一个负担,2.信息放到cookie中,有些信息是用户的敏感信息,如果有些不怀好意的人。。。。为了解决这些问题。我们开始思考,既然信息本来就是服务器生成的,那么就没必要给全部的信息到浏览器了,给一个唯一标识不就好咯,所以有了session

浏览器请求服务器后,服务器把信息放到session中,并吧Jsessionid放到cookie中,传回给浏览器。第二次请求,浏览器拿着这个唯一id,服务器就知道你是谁了

服务器会永远保存session中的信息吗?当然不是,默认有个失效时间30min,。超过这个时间,直接把session失效掉。。。

session是在内存中的,如果大量的用户访问服务器,光是这些session内存也会吃不消的,这个时候怎么办呢?内存放不下,那就存到磁盘吧,哪里大,于是有了Session的钝化和活化,所谓session钝化,就是把长时间没有活动的session持久化到磁盘上。所谓活化,就是突然又来调用了,那就把持久化到磁盘的session再次加载到内存中,对于用户的使用来说是无感的。。

这里有一个问题。。现在服务器都不是一台,而是成千上万台,分布式下如果session存放在某一台服务器上,浏览器下次访问可不一定是同一台服务器,如果不是的话,那服务器可是没有用户的信息的,还会有同样的问题,这就是session共享问题,怎么办呢?最直观的办法 就是让他访问同一台服务器,基于hash计算浏览器地址,hash值一样的,打到同一台服务器上。 另外比较简单的就是借助第三方,比如redis,把session存储到redis中,所有请求都拿着jsessionId去redis中拿客户信息 还有一种方法比较不好,基于基于Tomcat的session复制。。。

上面内容基于语雀小册

能解答一切的答案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值