JSP内置对象
request
String getParamter(String name);
String[] getParamterValue(String name);
void setCharacterEncoding("编码格式utf-8") :设置post方式的请求编码 (tomcat7以前默认iso-8859-1,tomcat8以后改为了utf-8)
getRequestDispatcher("url").forward(request,response); :请求转发
ServletContext getServerContext():获取项目的ServletContext对象
response
void addCookie( Cookie cookie ); 服务端向客户端增加cookie对象
void sendRedirect(String location ) throws IOException; :页面跳转的一种方式(重定向)
void setContetType(String type):设置服务端响应的编码(设置服务端的contentType类型)
请求转发 | 重定向 | |
---|---|---|
地址栏是否改变 | 不变(check.jsp) | 改变(success.jsp) |
是否保留第一次请求时的数据 | 保留 | 不保留 |
请求的次数 | 1 | 2 |
跳转发生的位置 | 服务端 | 客户端发出的第二次跳转 |
session(服务端)
Cookie(客户端,不是内置对象)
Cookie是由 服务端生成的 ,再发送给客户端保存。
相当于 本地缓存的作用: 客户端(hello.mp4,zs/abc)->服务端(hello.mp4;zs/abc)
作用:提高访问服务端的效率,但是安全性较差。
关于Cookie方法
Cookie: name=value
javax.servlet.http.Cookie
public Cookie(String name,String value)
String getName():获取name
String getValue():获取value
void setMaxAge(int expiry);最大有效期 (秒)
服务端准备Cookie:
response.addCookie(Cookie cookie)
页面跳转(转发,重定向)
客户端获取cookie: request.getCookies();
注意
a. 服务端增加cookie :response对象;客户端获取对象:request对象
b. 不能直接获取某一个单独对象,只能一次性将 全部的cookie拿到
c. 建议 cookie只保存 英文数字,否则需要进行编码、解码
通过F12可以发现 除了自己设置的Cookie对象外,还有一个name为 JSESSIONID的cookie