JSP九大内置对象及四个作用域

JSP九大内置对象

既然是内置对象,就是自带的,不需要new

一、config 配置对象 (服务器配置信息)
二、page 当前JSP页面对象(相当于Java中的this)
三、pageContext JSP页面容器
四、exception 异常对象
五、out对象

是向客户端输出内容常用的对象;作用域为 page ( 页面执行期 )

常用方法:

 void clear();// 清除缓冲区的内容 
 void clearBuffer();// 清除缓冲区的当前内容 
 void flush();// 清空流 
 int getBufferSize();// 返回缓冲区以字节数的大小,如不设缓冲区则为0 
 int getRemaining();// 返回缓冲区还剩余多少可用 
 boolean isAutoFlush();// 返回缓冲区满时,是自动清空还是抛出异常 
 void close();// 关闭输出流 
六、request对象

请求对象,存储 客户端向服务端发送的请求信息

常用方法:

	String getParameter(String name)://根据请求的字段名key(input标签的name属性),返回字段值value(input标签的value属性)
	String[] getParameterValues (String name)://根据请求的字段名key,返回多个字段值value 常用checkbox
	void setCharacterEncoding("编码格式utf-8")://设置post请求编码
	getRequestDispatcher("b.jsp").forward(request,response)://请求转发 的跳转页面  a->b
	ServletContext   getServletContext()://获取项目的ServletContext对象

get的三种提交方式:

	 1. method="get"
     2. 地址栏
     3. 超链接< a href="">请求方式

简单说一下get和post提交方式的区别:

	get方式在地址栏上显示请求信息(但是地址栏能够容纳的信息有限,会报错); post不显示
七、response对象

响应对象,存储服务端向客户端发送的响应信息

常用方法:

	void addCookie(Cookie cookie)://服务端向客户端增加cookie对象
	void sendRedirect(String location) throws IOException ://重定向(页面跳转的一种方式)
	void setContentType(String type)://设置服务端响应时编码(设置服务端的contentType类型)

请求转发和重定向的区别:
区别
请求转发和重定向的例子:

请求转发:
	张三(客户端)-> 【服务窗口a(服务端)->服务窗口b】
	
 重定向:
	张三(客户端)-> 服务窗口a(服务端)->去找b
	张三(客户端)-> 服务窗口b(服务端)->结束
八、session会话对象

讲session之前,我们先学习一下cookie

cookie:Cookie是由服务端产生,再发送给客户端保存

(存在于客户端,不是内置对象,使用必须new): 由 javax.servlet.http.Cookie类产生cookie对象

客户端在第一次请求服务端时,如果服务端发现 此请求没有JSESSIONID,则会创建一个
name=JSESSIONID的cookie 并返回给客户端(稍后会详细说明)

相当于本地缓存的作用:(可以相当于历史记录,离线缓存,自动保存密码)

作用:提高访问服务端的效率,但是安全性较差

Cookie:包含key=value

常用方法:

	public Cookie(String key,String value)
	String getName();//获取key/name
	String getValue();//获取value
	void setMaxAge(int expiry); //设置最大有效期(秒)

cookie机制:
1.服务端准备Cookie给客户端: response.addCookie(Cookie cookie)
2.页面跳转(转发、重定向)
3.客户端获取cookie: request.getCookies();获取全部的cookie

也就是说:

服务端增加cookie:使用response对象
客户端获取cookie:使用request对象

让我们回到session来:
session是一个会话对象:一般会在登录的时候创建

下面给出两个例子来理解一下会话

a.浏览网站:开始到结束
b.购物:浏览、付款、退出

session机制:
1.客户端第一次请求服务端时,(匹配失败)服务端会产生一个session对象(用于保存该客户的信息)
并且每个session对象,都会有一个唯一的sessionID(用于区分其他session)

服务端又会产生一个cookie,并且该cookie的name=JSESSIONID ,value=服务端sessionID的值
然后 服务端会在响应客户端的同时,将该cookie发送给客户端, 至此, 客户端就有了一个cookie(JSESSIONID);
因此,客户端的cookie(JSESSIONID)就可以和服务端的session(sessionID)一一对应

2.客户端第n次请求服务端时,服务端会先根据客户端cookie中的JSESSIONID 去服务端 的session中匹配sessionID

如果匹配成功,说明此用户已经不是第一次访问,无需登录

给出一个例子便于理解:

客户端:你
服务端:银行
cookie:银行卡
session:银行数据库
sessionID=JSESSIONID:银行卡号

常用方法:

	String getID()://获取sessionID;
	Boolean isNew()://判断是否是新用户
	void invalidate()://使session失效(退出登录,注销账号)
	void setAttribute()://放置
	Object getAttribute()://获取
	void setMaxInactiveInterval()//设置最大有效 非活动时间
	int getMaxInactiveInterval()://获取最大有效 非活动时间

cookie和session的区别:
区别

九、application:全局对象

常用方法:

	String getContextPath() //获取虚拟路径
	String getRealPath("虚拟路径")	//获取绝对路径(虚拟路径)

四个作用域(由小到大)

1.pageContext :当前页面有效(页面跳转后无效)

2.request: 同一次(不是同一个)请求有效(请求转发后有效,重定向无效)

3.session: 同一次会话有效(无论怎么跳转都有效,关闭或切换浏览器无效 从登录到退出都有效)

4.application: 整个项目运行期间都有效(切换浏览器都有效)关闭服务器,其他项目都无效

以上4个对象共有的方法:

	Object getAttribute(String name)://获取属性值
	void   setAttribute(String name,Object obj)//设置属性值(新增,修改)
				setAttribute("a","b");//如果a对象之前不存在,则新建一个a对象,值赋为b的值
								    	//如果a对象已经存在,则将a的值改为b的值
	void removeAttribute(String name)://根据属性名,删除对象

以上四个范围对象,通过setAttribute()赋值,通过getAttribute()取值,尽量使用小的范围

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JSP(Java Server Pages)是一种基于Java语言的服务器端网页开发技术,其中包括九大内置对象四大作用域九大内置对象是指在每一个JSP页面中,系统自动为开发者创建的九个对象,分别是: 1. request对象:用于获取HTTP求的信息,如求参数、求头等。 2. response对象:用于设置HTTP响应的信息,如设置返回的内容、重定向等。 3. out对象:用于向客户端输出内容,可以通过该对象在页面中生成动态内容。 4. session对象:用于存储用户的会话信息,可以在不同的页面和求之间共享数据。 5. application对象:用于存储全局的应用程序数据,可供所有用户访问。 6. config对象:用于获取当前JSP页面的配置信息,如JSP的初始化参数等。 7. page对象:代表当前JSP页面本身,可以用于调用页面的方法或属性。 8. exception对象:用于处理JSP页面中的异常,可以获取异常的相关信息。 9. pageContext对象:包含了对其他八个内置对象的引用,可用于简化代码的编写。 四大作用域是指在JSP中定义的存储数据的范围,分别是: 1. page作用域:数据的作用范围限定在当前JSP页面,即页面级别的作用域。 2. request作用域:数据的作用范围限定在一次HTTP求与响应过程中,可供同一求中的不同页面共享。 3. session作用域:数据的作用范围限定在用户的整个会话过程中,可供不同求和页面共享。 4. application作用域:数据的作用范围限定在整个Web应用程序中,可供所有用户和所有求共享。 通过合理的使用这九大内置对象四大作用域,可以方便地处理页面间的数据传递和数据共享,提高JSP网页开发的效率和灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值