1、request:表示一次请求, HttpServletRequest。
2、response:表示一次响应, HttpServletResponse。
3、pageContext: 页面上下文,获取页面信息,PageContext。
4、session:表示- -次会话,保存用户信息,HttpSession。
5、application: 表示当前Web应用,全局对象,保存所有用户共享信息,ServletContext。
6、config:当前JSP对应的Servlet的ServletConfig对象,获取当前Servlet的信息。
7、out: 向浏览器输出数据,JspWriter。
8、page: 当前JSP对应的Servlet对象,Servlet。
9、exception:表示JSP页面发生的异常,Exception。
常用的是request、response、 session、application、pageContext。
request常用方法:
1. String getParameter(String key)获取客户端传来的参数。
2、void setAttribute(String key,0bject value)通过键值对的形式保存数据。
3、Object getAtribute(String key)通过key取出value。
4、RequestDispatcher getRequestDispather(String path)返回-个RequestDispatcher对象,该对象的forward方法用于请求转发。
5、String[] getParameterValues()获取客户端传来的多个同名参数。
6、void setCharacterEncoding(String charset)指定每个请求的编码。
HTTP请求的状态码:
200:正常
404:找不到资源
500:Java代码出现异常
400:请求类型不匹配
response常用方法:
1、sendRedirect(String path)重定向,页面之间的跳转。
转发getRequestDispatcher和重定向sendRedirect的区别:
转发是将同一个请求传给下一个页面,重定向是创建一个新的请求传给下一一个页面,之前的请求结束生命周期。
转发:同一个请求在服务器之间传递,地址栏不变,也叫服务器跳转。
重定向:由客户端发送一次新的请求来访问跳转后的目标资源,地址栏改变,也叫客户端跳转。
如果两个页面之间需要通过request来传值,则必须使用转发,不能使用重定向。
用户登录,如果用户名和密码正确,则跳转到首页(转发),并且展示用户名,否则重新回到登陆页面(重定向)。
Session
用户会话
服务器无法识别每一次HTTP请求的出处(不知道来自于哪个终端),它只会接受到一个请求信号,所以就存在一个问题:将用户的响应发送给其他人,必须有一种技术来让服务器知道请求来自哪,这就是会话技术。
会话:就是客户端和服务器之间发生的一系列连续的请求和响应的过程,打开浏览器进行操作到关闭浏览器的过程。
会话状态:指服务器和浏览器在会话过程中产生的状态信息,借助于会话状态,服务器期够把属于同一次会话的一系列请求和响应关联起来。
实现会话有两种方式:
●session
●cookie
属于同一次会话的请求都有一个相同的标识符,sessionID
session常用的方法:
String getld():获取 sessionID
void setMaxInactiveInterval(int interval):设置session的失效时间,单位为秒
int getMaxInactiveInterval():获取当前 session的失效时间
void invalidate():设置session立即失效
void settribute(String key,Object value):通过键值对的形式来存储数据
Object gettribute(String key):通过键获取对应的数据
void removeAttribute(String key):通过键删除对应的数据
Cookie:
Cookie是服务端在HTTP响应中附带传给浏览器的一个小文本文件,一旦浏览器保存了某个Cookie,在之后的请求和响应过程中,会将此Cookie来回传递,这样就可以通过Cookie这个载体完成客户端和服务端的数据交互。
●创建Cookie
Cookie cookie = new Cookie( ”name"," tom");
response.addCookie( cookie);
●读取Cookie
Cookie[] cookies = request. getCookies();
for (Cookie cookie: cookies){
out. write( cookie . getName()+":"+cookie . getValue()+"<br/>");
}
cookie的常用方法:
void setMaxAge(int age) 设置Cookie的有效时间,单位为秒。
int getMaxAge() 获取Cookie的有效时间,默认为-1,表示关闭浏览器则失效。
String getName() 获取Cookie的name。
String getValue() 获取Cookie的value。
Session和Cookie的区别
session:
保存在服务器
保存的数据是Object
会随着会话的结束而销毁
保存重要信息
cookie:
保存在浏览器
保存的数据是String
可以长期保存在浏览器中,无会话无关
保存不重要信息
存储用户信息:
session:
setAttribute("name'","admin") 存
getAttribute("name") 取
生命周期: 服务端:只要WEB应用重启就销毁,
客户端:只要浏览器关闭就销毁。
退出登录: session.invalidate()
cookie:
response.addCookie(new Cookie(name,"admin") 存
Cookie[] cookies = request . getCookies();
for (Cookie cookie :cookies){
if(cookie. getName(). equals("name" )){
out.write(“欢迎回来" +cookie. getValue());
} 取
生命周期: 服务端:不随服务端的重启而销毁,
客户端:默认是只要关闭浏览器就销毁,我们通过setMaxAge()方法设置
有效期: 一旦设置了有效期,则不随浏览器的关闭而销毁,而是由设置的时间来决定。
退出登录: setMaxAge(0)