一、pageContext对象
二、request对象 请求对象 (client)
存储 “客户端向服务端发送的请求信息”
request对象的常见方法:
方法 | 说明 |
---|---|
String getParameter(String name) | 根据请求的字段名key (input标签的name属性值) ,返回字段值value (input标签的value属性值) |
String[] getParameterValues(String name): | 根据请求的字段名key ,返回多个字段值value (checkbox) |
void setCharacterEncoding(“编码格式utf-8”) | 设置post方式的请求编码 (tomcat7以前默认iso-8859-1,tomcat8以后改为了utf-8) |
getRequestDispatcher(“b.jsp”).forward(request,response) ; | 请求转发 跳转页面 A - > B |
ServletContext getServerContext() | 获取项目的ServletContext对象 |
使用getParameter()时要可能会出现编码问题,解决方法如下:
-
对于get的提交方式
-
方法1(不推荐)
String name = request.getParameter("boy"); name = new String(name.getBytes("ISO-8859-1"),"utf-8");
-
方法2
修改server.xml ,一次性的 更改tomcat默认get提交方式的编码 (utf-8)
-
-
对于post的提交方式
request.setCharacterEncoding("utf-8");
三、response 响应对象 (server)
提供的方法:
void addCookie( Cookie cookie ); | 服务端向客户端增加cookie对象 |
---|---|
void sendRedirect(String location ) throws IOException; | 页面跳转的一种方式(重定向) |
void setContetType(String type) | 设置服务端响应的编码(设置服务端的contentType类型) |
请求转发与重定向
请求转发 | 重定向 | |
---|---|---|
地址栏是否改变 | 不变 | 改变 |
是否保留第一次请求时的数据 | 保留 | 不保留 |
请求的次数 | 1 | 2 |
跳转发生的位置 | 服务端 | 客户端发出的第二次跳转 |
四、session 对象 (server)
session: 会话
常见场景:
a.浏览网站:开始-关闭
b.购物: 浏览、付款、退出
c.电子邮件:浏览、写邮件、退出
session机制:
客户端第一次请求服务端时,出现以下行为:
-
服务端会产生一个session对象(用于保存该客户的信息);
- 并且每个session对象 都会有一个唯一的 sessionId( 用于区分其他session);
-
服务端会产生一个cookie,并且该cookie的name=JSESSIONID ,value=服务端sessionId的值;
- 然后 服务端会在 响应客户端的同时 将该cookie发送给客户端,至此 客户端就有了 一个cookie(JSESSIONID);
因此,客户端的cookie就可以和服务端的session一一对应(JSESSIONID - sessionID)
客户端第二/n次请求服务端时:服务端会先用客户端cookie种的JSESSIONID 去服务端的session中匹配sessionid,如果匹配成功(cookie jsessionid和sesion sessionid),说明此用户 不是第一次访问,无需登录;
提供的方法:
方法 | 说明 |
---|---|
String getId() | 获取sessionId |
boolean isNew() | 判断是否是 新用户(第一次访问) |
void invalidate() | 使session失效 (退出登录、注销) |
void setAttribute() | |
Object getAttribute() | |
void setMaxInactiveInterval(秒) | 设置最大有效 非活动时间 |
int getMaxInactiveInterval() | 获取最大有效 非活动时间 |
五、Application对象
- 服务器启动后自动产生
- 所有客户共享这个内置的Application对象。
六、out对象
用来向客户端输出数据。
七、config对象
八、page对象
九、exception对象
在处理异常的网页中可以直接访问exception隐式对象。