三、JSP内置对象

 三、JSP内置对象:

1、认识JSP内置对象:

       内置对象就是指在JSP页面中内置的不需要定义就可以在网页中直接使用的对象。

       内置对象有些能够存储参数,有些能够提供输出,还有些提供其他的功能。

1.1.、内置对象的特点:

1)、内置对象是直接载入的,因此他不需要直接实例化;

2)、内置对象是通过Web容器来实现和管理的;

3)、在所有的JSP页面中,直接调用内置对象都是合法的。

1.2JSP规范中定义的9中内置对象:

1)、out对象:负责管理对客户端的输出;

2request对象:负责得到客户端的请求信息;

3)、response对象:负责向客户端发出响应;

4)、session对象:负责保存同一客户端一次对话过程中的一些信息;

5)、application对象:表示整个应用的环境的信息;

6)、exception对象:表示页面上发生的异常,可以通过它获得页面异常信息;

7)、page对象:表示的是当前JSP页面本身,就像JAVA类定义中的this一样;

8)、pageContext对象:表示的是此JSP的上下文

9)、config对象:表示此JSPServletConfig

 

2、out对象:

out对象,对应的是javax.servlet.jsp.JspWriter,它的作用如下:

       用来向客户端输出各种数据类型的内容;

       对应用服务器上的输出缓冲区进行管理

2.1、利用out输出主要的两种方法:

1)、void print()

2)、void println()

2.2out对象一些常用的与管理缓冲区有关的函数:

1)、void close()

2)、void clearBuffer()

3)、void clear()

4)、int getRemaining()

5)、void flush()

6)、int getBufferSiae()

 

3、request对象;

       request代表了客户端的请求信息,主要用来获取客户端的参数和流。它对应的类型是:javax.servlet.http.HttpServletRequest

3.1request的一个主要用途就是它能够获取客户端的基本信息,主要方法如下:

1)、String getMethod():得到提交方式;

2)、String getRequestURL():得到请求的URL地址;

3)、String getProtocol():得到协议名称;

4)、String getServletPath():获得客户端请求服务器文件的路径;

5)、String getQueryString():得到URL的查询部分;

6)、String getServerName():得到服务器的名称;

7)、String getServerPort():得到服务器端口号

8)、String getRemoteAddr():得到客户端的IP地址

3.2request对象获取客户端的参数的两种常用方法:

1)、String getParameter(String name)

2)、String[] getParameterValues(String name)

 

4、response对象:

       response对应的类(接口)是:javax.servlet.httpHttpServletResponse.

4.1、利用response对象进行重定向:

重定向,就是跳转到另一个页面。可以利用response对象进行重定向:

       response.sendRedirect(目标页面路径);

重定向的两种方法:

1)、response.sendRedirect(目标页面路径);

2)、<jsp:forword page=“目标页面路径”>  </jsp:forword>

4.2、利用response设置HTTP头:

HTTP头一般用来设置网页的基本属性,可以通过responsesetHeader()方法来进行设置,代码如下:

       <%

              response.setHeader(“Pragma”, ”no-cache”);

              response.setHeader(“Cache-Control”, ”no-cache”);

              response.setHeader(“Expiers”,0);

       %>

以上都是表示客户端缓存中不保存页面的拷贝。

       response.setHeader(“Refresh”, ”5”);

表示客户端浏览器每隔5秒定期刷新一次。

 

5、Cookie操作:

       Cookie是一个小的文本数据,由服务器生成,发送给客户端浏览器,客户端浏览器如果设置为启用Cookie,则会将这个小文本数据保存到某个目录下的文本文件内。下次登录同一网站,客户端浏览器,则会自动将Cookie读入之后,传给服务器端。一般情况下,Cookie中的值是以key-value的形式进行表达的。

5.1、写Cookie时,主要用到以下方法:

1)、response.addCookie(Cookie c):Cookie写入客户端

2)、Cookie.setMaxAge(int second):设置Cookie的存活时间

5.2、从客户端获取Cookie内容,主要通过以下方法:

Cookie[]  request.getCookies():读取客户端传过来的Cookie,以数组形式返回,

                                                  读取数组之后,一般进行遍历。

 

6、利用Session开发购物车:

1、将内容放入购物车:

       session中,有一个函数:void session.setAttribute(String name, Object obj),

通过该函数,可以将一个函数放入购物车。

       在该函数中,参数1name为对象起一个属性(Attribute)的名字(标记);

                             参数2obj就是对象本身

注意:

1)、如果两次调用setAttribute(String name,Object obj),并且name相同,那么后面放进去的内容将会覆盖以前放进去的内容。

2)、setAttribute(String name,Object obj)的第二个参数是Object类型,既可以放进入session的不仅仅是一些简单的字符串,还可以是Object。集合、数据结构对象都可以放入session,这大大提升了session的功能。

2、读取购物车中的内容:

       Object session.getAttribute(String neme)

 

7、session的其它API

7.1session的其它操作:‘

1)、移除session中的内容:

       void session.removeAttribute(String name)

2)、移除session中的全部内容:

       void session.invalidate()

3)、预防session内容丢失:

       只有第一次运行时才new一个ArrayList,其他时候使用session中的ArrayList

7.2sessionId

对于每一个session,服务器端都有一个sessionId来标识它。

String session.getID(): 得到当前session在服务器端的ID

       实际上,在第一次访问时,服务器端就给session分配一个sessionID,并且让客户端记住这个sessionID,客户端访问下一个页面时,又将sessionId传送给服务器端,服务器端根据这个sessionId来查找前一个页面的session对象。

注意:在不同用户的机器上,显示的结果可能不一样,

          因为sessionId的分配是随机的。

7.3、利用session保存登录信息:

 

8、application对象

       对于一个Web容器来说,所有的用户都共同使用一个application对象,服务器启动后,就会自动创建application对象,这个对象会一直保存,知道服务器关闭为止。

application对象的主要API

1)、将内容放入application

              Void application.setAttribute(String name, Object obj)

2)、读取application中的内容:

              Object application.getAttribuite(String name)

3)、将内容从application中移除:

              Void application.removeAttribute(String name)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值