会话保存技术
概述:cookie和session都是用来跟踪浏览器用户身份的会话方式。即使用场景为:登录网站后,下次会有记录不用重新登。
- Cookie:客户端技术,相当于服务器可以根据客户端请求创建一个信件(键值对)并保存,并响应给客户端一份,下次登录会先检查自己保存的信件中有无和目前这个客户端一样的(使用较少不做过多阐述)
- Session:服务器端技术,服务器会登记客户端会话信息,下次进行匹配
Cookie(性能优先)
Session(安全优先)
概述:浏览器端第一次发送请求到服务器端,服务器端创建一个Session,同时会创建一个特殊的Cookie(name为JSESSIONID
的固定值,value为session对象的ID),然后将该Cookie发送至浏览器端,之后当浏览器访问时,服务器端根据sessionId
去查询Session对象,从而区分不同用户。使用Session登录所有的数据都保存在服务器上。(购物车信息等网站上经常使用的数据)
HttpSession session = req.getSession();//得到session对象
session.setAttribute("name",Object);//给session中存东西,键值可以是对象
String sessionId = session.getId();//获取sessionId
JSP
概述:(Java Server Pages)是JavaWeb服务器端的动态资源,它与html页面的作用是相同的,显示数据和获取数据。由html + java脚本 + jsp标签(指令)
组成,有可以直接调用的9大内置对象。
主要四大对象
都用于存放数据但作用域不同对象.setAttribute(s,o);
application(ServletContext)>session>request>pageContext
,其保存的数据分别在一个服务器开启到结束、一次会话、一次请求、一个页面中有效。
Jsp原理
jsp其实是一种特殊的Servlet
- 当jsp页面第一次被访问时,服务器会把jsp编译成java文件
- 然后再把java编译成.class
- 然后创建该类对象(底层实现了Servlet)
- 最后调用它的service()方法
- 第二次请求同一jsp时,直接调用service()方法。
JSP与Servlet的区别和联系(转自csdn博主)
-
运行过程
客户在第一次请求JSP时,请求较慢,因为JSP Engine
先把JSP程序转换成servlet代码,接着将它编译成类文件,以后贮存在内存中再次调用速度就快了;
访问servlet时,可以直接对其编译好的类文件执行。 -
使用方式
要想使用servlet必须把它放在特定位置而且必须对其映射配置;
jsp可以放在和html同样位置(webapps根目录下或者webapps根目录下的子目录下)而且不需要配置,可以直接使用。(但要导入相应依赖和引入标签库) -
程序组成
Servlet在Java代码中通过HttpServletResponse对象动态输出HTML内容;
JSP在静态HTML内容中嵌入Java代码,Java代码被动态执行后生成HTML内容 -
职能分工
jsp更侧重于前端页面显示(在html里面写java代码),servlet更侧重于业务逻辑(在java里面写html代码)。 -
本是一家人
Jsp 本质上是servlet,用jsp实现的页面用servlet也能实现。
Jstl
概述:JSP标准标签库,主要来代替JSP中Java代码书写,用它书写JSP页面时可读性更强,长得像XML,方便前端查看和参与开发。