out : 输出对象
config : 服务器配置对象
page : 当前JSP页面对象(this)
exception : 异常对象
pageContext : 当前页面page对象
request: 请求对象
存储客户端向服务端发送的请求信息
常见方法:
String getParameter(String name) //name为key 返回value
String[] getparameterValues(String name) //返回String[]
setCaracterEncoding(“utf-8”) // 服务端知道客户端是什么编码
getRequestDispatcher(“b.jsp”).forward(request,response) // 请求转发A -> B
ServletContext getServerContext() //获取项目的ServletContext对象
Cookie[] getCookie() //获取所有Cookie
response:响应对象
常见方法:
void addCookie(Cookie cookie) // 服务端向客户端增加cookie对象
void sendRedirect(String location) throws IOException // 页面跳转的一种方式(重定向)
void setContetType(String type) // 设置服务端相应的编码
请求转发 | 重定向 | |
---|---|---|
地址栏是否改变 | 不变(check.jsp) | 变(success.jsp) |
保留第一次请求时数据 | 保留 | 不保留 |
请求的次数 | 1 | 2 |
跳转发生的位置 | 服务端 | 客户端发出的第二次跳转 |
请求转发:request.getRequestDispatcher(“b.jsp”).forward(request,response);
重定向:response. sendRedirect(“b.jsp”) ;
请求转发:login -> check -> success -> login
重定向 : login -> check -> login -> success -> login
session&cookie
Cookie
(客户端,非内置对象):由服务端产生,发送给客户端保存
相当于本地缓存,作用:提高访问效率,但是安全性差
name(key) – value
javax.servlet.http.Cookie
public Cookie(String name , String value)
String getName()
String getValue()
String setMaxAge(int expiry) // 最大有效期(秒)
服务端准备cookie : response.addCookie(Cookie cookie)
客户端获取cookie : request.getCookies();
a.服务端用response增加,客户端用request获取
b.只能一次性获取所有cookie
(例子可看https://www.bilibili.com/video/av29086718?p=8 10min)
session会话
(一次会话:开始-结束)
机制:客户端第一次请求服务端(JSESSIONID - sessionID 匹配失败) -> 服务端产生session对象,有唯一sessionID同时产生一个cookie,name = JESSIONID,value = 服务端sessionID,响应客户端时发送cookie
->客户端的cookie和服务端session一一对应
->第二次(JSESSIONID - sessionID)匹配成功
主要方法:
String getId(); // SessionId
boolean isNew() // 是否是新用户
void invalidate() //使session失效
void setAttribute(“name”,name);
Object getAttribute();
void setMaxInactiveInterval(秒) // 设置最大有效 非活动时间
int getMaxInactiveInterval()
session | cookie | |
---|---|---|
保存的位置 | 服务端 | 客户端 |
安全性 | 较安全 | 较不安全 |
保存的内容 | Object | String |
application
全局对象,有整个项目的属性
主要方法
String getContextPath() //获取虚拟路径
String getRealPath(String location) //获取虚拟路径对应绝对路径
4个范围对象(从小到大)
共同方法
Object getAttribute(String name)
void setAttribute(String name.Object obj) //有改无增
void removeAttribute(String name)
名称 | 定义 | 有效范围 |
---|---|---|
pageContext | JSP页面容器(page对象) | 当前页面有效(页面跳转无效) |
request | 请求对象 | 同一次请求有效(重定向无效) |
session | 会话对象 | 同一次会话有效(切换浏览器则无效) |
application | 全局对象 | 整个项目有效(关闭服务、其他项目无效) |