jsp内置对象(自带的,不需要new 也能使用的对象)
9大内置对象
一、out:输出对象 向客户端输出内容
二、request:请求对象,储存“客户端向服务端发送的请求”
常见方法
String getParameter(String name):根据请求的字段名key,返回字段值value
String[] getParameterValues(String name):根据请求的字段名key,返回多个字段值value
setCharacterEncoding("编码格式UTF-8"):设置请求post方式的编码
void getRequestDispatcher(“b.jsp").forward(request,response) :请求转发的方式跳转页面 A-》B
ServletContext void getServerContext();获取项目的ServletContext对象
get与post请求方式的区别:
1.get方式 在地址栏显示请求信息(但地址栏能够储存的信息有限 4.5kb 图片等出现在地址栏无法容纳全部数据而出错) post 不会显示
2.文件上传操作,必须是post
统一请求编码 request
a.get方式请求 如果出现乱码,解决:
1.统一每一个变量的编码 new String(旧编码,新编码)
2.修改server.xml,一次性更改tomcat默认的get提交的编码(URIEncoding=“UTF-8”)
b.post
setCharacterEncoding("编码格式UTF-8"):设置请求编码
三、 response:响应对象
常见方法:
void addCookie( Cookie cookie ); 服务端向客户端增加cookie对象
void sendRedirect(String location ) throws IOException; :页面跳转的一种方式(重定向)
void setContetType(String type):设置服务端响应的编码(设置服务端的contentType类型)
示例:登陆
login.jsp -> check.jsp ->success.jsp
请求转发 重定向
地址栏是否改变 不变(check.jsp) 改变(success.jsp)
是否保留第一次 保留 不保留 --4种范围对象
请求时的数据
请求的次数 1 2
跳转发生的位置 服务端 客户端发出的第二次跳转
转发、重定向:
转发:
张三(客户端) -> 【 服务窗口 A (服务端 ) -> 服务窗口B 】
重定向:
张三(客户端) -> 服务窗口 A (服务端 ) ->去找B
张三(客户端) -> 服务窗口 B (服务端 ) ->结束
四、session(服务端)
Cookie(客户端,不是内置对象):Cookie是由服务端产生,再发给客户端保存
相当于本地缓存的作用:客户端-》服务端
作用:提高访问服务端的效率,但是安全性低
key=value
javax.servlet.http.Cookie
方法:
public Cookie(String key ,String value)
String getName()获取key
String getValue()获取value
void setMaxAge(int expiry)设置最大有效期 单位:s
服务端准备发给客户端
response.addCookie(Cookie cookie)
方式:页面跳转(转发,重定向)
客户端获取Cookie: request.getCookie()
服务端增加cookie:response对象
客户端获取cookie:request对象
不能直接获取某个对象,只能全部获取所有cookie
session :会话
a.浏览网站:开始-关闭
b.购物: 浏览、付款、退出
c.电子邮件:浏览、写邮件、退出
开始-结束
session机制:
session 储存在服务器
客户端第一次请求服务端时,(jsessionid-sessionid)服务端会产生一个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),说明此用户 不是第一次访问,无需登录;
例子:
客户端: 顾客(客户端)
服务端: 存包处 - 商场(服务端)
顾客第一次存包:商场 判断此人是否之前已经存过包(通过你手里是否有钥匙)。
如果是新顾客(没钥匙) ,分配一个钥匙 给该顾客; 钥匙 会和 柜子 一一对应;
第二/n次 存包:商场 判断此人是 之前已经存过包(通过你手里是否有钥匙)
如果是老顾客(有钥匙),则不需要分配;该顾客手里的钥匙 会 和柜子 自动一一对应。
方法:
String getId():获取sessionId
boolean isNew():判断是否是新用户(第一次访问)
void invalidate():使session失效(退出登录、注销)
set Attribute();
get Attribute();
void setMaxInactiveInterval():设置最大有效非活动时间
int getMaxInactiveInterval():获取最大有效非活动时间
session和cookie的区别
session cookie
保存位置 服务端 客户端
安全性 较安全 较不安全
保存内容 Object String
五、application 全局对象
六、pateContext:
七、config
八、page
九、exception
四种范围对象(小->大)
pageContext :当前页面有效(页面跳转后无效)
request 同一次请求有效,其他请求无效(请求转发后有效,重定向无效)
session 同一次会话有效(无论怎么跳转都有效,关闭或者切换浏览器无效)
application 整个项目运行期间都有效(切换浏览器依然有效)关闭服务 其他项目无效
以上四个对象共有的方法:
Object getAttribute(String name):根据属性名获得属性值
void setAttribute(String name,Object obj):设置属性值(新增、修改)
setAttribute(“a","b");//如果对象a之前不存在,则新建一个a对象;如果存在则将a的值改为b
void removeAttribute(String name) 根据属性名,删除对象
JAVAWeb--内置对象
最新推荐文章于 2023-07-10 10:52:01 发布