会话
Cookie
存放位置:浏览器本地硬盘
值的类型:字符串
存储大小:小,4k
response.addCookie(String name,String value)
Cookie[] cookies = request.getCookies()
Session
存放位置:服务器内存
值的类型:对象
存储大小:大,取决于服务器设置
session默认基础cookie
JSESSIONID
cookie禁用,怎么办?
利用url携带JSESSIONID参数
HttpSession session = request.getSession();
session.setAttribute(String name,Object obj);
Object obj = session.getAttribute(String name)
Cookie与Session的比较
Cookie Session
存放位置 浏览器本地硬盘(客户端) 服务器内存
值的类型 ASCII字符串 对象(包括且不限于string,integer,list,map等)
存储大小 小(<=4k一个站点最多保存20个Cookie) 大(取决于服务器设置)
安全性 不安全 (他人可以分析存放在本地的Cookie并进行Cookie欺骗) 安全(当访问增多,会比较占用服务器的性能。考虑到减轻服务器性能方面,应当使用Cookie)
跨域支持 支持 不支持
JSP
Java Server Page
Java+前端 结合
JSP九大内置对象
request 转译后对应HttpServletRequest/ServletRequest对象 final javax.servlet.http.HttpServletRequest request
response 转译后对应HttpServletRespons/ServletResponse对象 final javax.servlet.http.HttpServletResponse response
session 转译后对应HttpSession对象 javax.servlet.http.HttpSession session
application 转译后对应ServletContext对象 final javax.servlet.ServletContext application;
out 转译后对应JspWriter对象,其内部关联一个PringWriter对象 javax.servlet.jsp.JspWriter out
page 转译后对应this final java.lang.Object page = this;
config 转译后对应ServletConfig对象 final javax.servlet.ServletConfig config;
exception 转译后对应Throwable对象,代表由其他JSP页面抛出的异常对象,只会出现于JSP错误页面(isErrorPage设置为true的JSP页面) Exception
pageContext 转译后对应PageContext对象,它提供了JSP页面资源的封装,并可设置页面范围属性 final javax.servlet.jsp.PageContext pageContext;
Jsp隐含变量
1、out 来源于Java.io.Writer类,它用于发送输出流到客户端。
2、request 来源于javax.servlet.http.HttpServletRequest接口。它被关联到每一个HTTP请求。
3、response 来源于javax.servlet.http.HttpServletResponse。response对象用于把取得的数据返回到客户端。
4、pageContext 提供访问JSP页面的命名空间。它也提供用来访问其他的JSP隐含对象。
5、session 来源于javax.servlet.http.HttpSession。它用于存储客户端请求的信息,因此它是有状态交互式的。
6、application 来源于javax.servlet.ServletContext。
7、config 来源于ServletConfig,它包含了当前JSP/Servlet所在的WEB应用的配置信息。
8、page 来源于当前被访问JSP页面的实例化。它实际使用的是JSP转换成的Servlet。
9、exception 用于捕获JSP抛出的异常。它只有在JSP页面属性isErrorPage=true时才可用。
生命周期
编译阶段
解析jsp
转换servlet文件
编译servlet
初始化阶段
执行阶段
销毁阶段
语法
JSP指令
<%@ page pageEncoding="" import="" errorPage=""%>
<%@ include file=""%>
<%@ taglib prefix="" uri="">
标签
<% %>
注释
<%-- --%>
输出
<%=age%>
作用域
什么是作用域?
我们在定义每一个变量,每一个属性的时候,都会考虑这个变量、属性的作用范围,也就是作用域。我们会根据我们的需求定义最适当作用域内的变量和属性。
PAGE_SCOPE = 1
REQUEST_SCOPE = 2
SESSION_SCOPE = 3
APPLICATION_SCOPE = 4
page作用域
request作用域
session作用域
application作用域
这四个作用域的作用范围,由上到下是一个比一个大
生命周期
编译阶段
解析jsp
转换servlet文件
编译servlet
初始化阶段
执行阶段
销毁阶段
语法
JSP指令
<%@ page pageEncoding="" import="" errorPage=""%>
<%@ include file=""%>
<%@ taglib prefix="" uri="">
标签
<% %>
注释
<%-- --%>
输出
<%=age%>
作用域
什么是作用域?
我们在定义每一个变量,每一个属性的时候,都会考虑这个变量、属性的作用范围,也就是作用域。我们会根据我们的需求定义最适当作用域内的变量和属性。
PAGE_SCOPE = 1
REQUEST_SCOPE = 2
SESSION_SCOPE = 3
APPLICATION_SCOPE = 4
page作用域
request作用域
session作用域
application作用域
这四个作用域的作用范围,由上到下是一个比一个大
Cookie示意图