对JSP内置对象的部分总结

一、简介

有些对象不用声明就可以在JSP页面的Java程序片和表达式部分使用,这就是JSP的内置对象。JSP的常用内置对象有request、response、session、application、out。

二、具体介绍

1、request对象

在JSP中,内置对象request封装了用户提交的信息,那么该对象调用相应的方法可以获取封装的信息,即使用该对象可以获取用户提交的信息

request对象常用方法如下:

(1)getParameter(String name):以字符串的形式返回客户端传来的某一个请求参数的值,参数名由name指定

(2)getParameterNames():获取客户端传来的所有参数的名字,它返回的是一个Enumeration类的实例

Enumeration类中要用到的两个重要方法:hasMoreElements()和nextElement()

(3)getParameterValues(String name):获取客户端中参数名为name的所有值

(4)setAttribute(String name,Object o):将名字为name,值为o的数据存储到request对象中;o为对象类型

(5)getAttribute(String name):获取request对象中名字为name的值,返回的是Object类型

(6)getAttributeNames():获取request对象中存储的所有值的名字,返回的是一个Enumeration类的实例

(7)getCookies():返回客户端的所有cookie对象,结果是一个cookie数组

(8)getMethod():获取客户端向服务器端传送数据的方式

(9)getSession(boolean create):返回和当前客户端请求相关联的HttpSession对象;如果当前客户端请求没有和任何HttpSession对象关联,那么当create变脸为true时,则创建一个HttpSession对象并返回;反之,返回null

(10)getQueryString():返回查询字符串,该字符串由客户端以get方式向服务器端传送

(11)getServerName():获得服务器的名字,如果没有设定服务器名,则返回服务器IP地址

(12)getServerPort():获得服务器的端口号

(13)getRemoteHost():获得客户端主机的名字,如果该方法失败,则返回客户端计算机的IP地址

(14)getRemoteAddr():获取客户端的IP地址

(15)getRequestURL():获取发出请求字符串的客户端地址

(16)getServletPath():获取客户端所请求的脚本文件的文件路径

(17)getProtocol():获取客户端向服务器端传送数据所依据的协议名称

(18)getContentLength():以字节为单位返回客户端请求的大小。如果无法得到该请求的大小,则返回-1

(19)getContentType():获取客户端请求的MIME类型(文件格式和编码方式)

(20)isSecure():判断客户机是否是通过一个安全的访问方式访问的

(21)getContextPath():返回环境路径。对于Jsp来说,一般是Web应用程序的根目录

(22)getRealPath("."):获取Web服务器的路径,返回的是一个String对象

2、response对象

response对象对用户的请求作出动态响应,向用户端发出响应。

一、重定向网页

重定向操作支持将地址重定向到不同的主机上,这一点与转发不同。在客户机浏览器上将会得到跳转的地址,并重新发送请求链接。进行重定向后,request中的属性全部失效,并开始一个新的request对象。

<%@ page language="java" import="java.util.*"
    contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%response.sendRedirect("deal.jsp"); %>

在JSP页面中使用该方法时,不要再用JSP脚本代码包括return语句,因为重定向之后的代码已经没有意义。并且还可能产生错误。

二、处理HTTP文件头

①禁用缓存

默认情况浏览器会对网页进行缓存,可以提高网页显示速度,但是对于一些安全性要求比较高的网站,通常需要禁用缓存。

    <% response.setHeader("Cache-Control", "no-store");
       response.setDateHeader("Expires", 0);%>

②自动刷新

<!-- 每隔10秒自动刷新一次 -->
    <% response.setHeader("refresh", "10");%>

③定时跳转到网页

5秒后自动跳转到指定网页:

<% response.setHeader("refresh", "5;URL=deal.jsp");%>

3、session对象

一个用户向服务器发出请求(request),然后服务器返回相应(response),在服务器端不保留用户的相关信息,因此当下一次发出请求时,服务器无法判断这一次请求和以前的请求是否属于同一用户。当一个用户访问一个Web服务目录时,可能会在这个服务目录的几个页面反复链接,反复刷新一个页面或不断地向一个页面提交信息等,服务器应当通过某种办法知道这是同一个用户。Tomcat服务器可以使用内置对象session(会话)记录用户的信息。内置对象session由Tomcat服务器负责创建,session是实现了HttpSession接口类的一个实例。

session对象常用方法如下:

(1)setAttribute(String name,Object o):将名字为name,值为o的数据存储到session对象中;o为对象类型

(2)getAttribute(String name):获取session对象中名字为name的值

(3)removeAttribute(String name):删除session对象中名字为name的存储值

(4)isNew():判断当前session对象是否是一个新创建的session对象

(5)Invalidate():中断当前的session对象

(6)getAttributeNames():获取session对象中存储的所有值的名字,返回的是一个Enumeration类的实例

(7)getId():获取当前session对象的ID号,这个ID是唯一的,用来表示每一个登录到IE浏览器的用户;当刷新浏览器时,这个值是不变的;但是当关闭当前浏览器再重新打开一个浏览器时,这个值就会改变

(8)getCreateTime():获取session对象建立的时间;返回的是从1970年1月1日到建立时间的毫秒数

4、application对象

application对象也是由Tomcat服务器负责创建,但与session对象不同的是,application对象被访问该Web服务目录的所有的用户共享,但不同Web服务目录下的application互不相同。

application对象常用方法如下:

(1)String getAttribute(String name)根据属性名称获取属性值。

(2)Enumeration getAttributeNames()获取所有的属性名称。

(3)void setAttribute(String name, Object object)设置属性,指定属性名称和属性值。

(4)void removeAttribute(String name)根据属性名称删除对应的属性。

(5)ServletContext getContext(String uripath)获取指定URL的ServletContext对象。

(6)String getContextPath()获取当前Web应用程序的根目录。

(7)String getInitParameter(String name)根据初始化参数名称,获取初始化参数值。

(8)int getMajorVersion()获取Servlet API的主版本号。

(9)int getMinorVersion()获取Servlet API的次版本号。

(10)String getMimeType(String file)获取指定文件的MIME 类型。

(11)String getServletInfo()获取当前Web服务器的版本信息。

(12)String getServletContextName()获取当前Web应用程序的名称。

(13)void log(String message)将信息写入日志文件中。 

5、out对象

out对象是一个输出流,用来向用户端输出数据。

out对象常用方法如下:

(1)public abstract void clear()清除缓冲区中的内容,不将数据发送至客户端。

(2)public abstract void clearBuffer()将数据发送至客户端后,清除缓冲区中的内容。

(3)public abstarct void close()关闭输出流。

(4)public abstract void flush()输出缓冲区中的数据。

(5)public int getBufferSize()获取缓冲区的大小。缓冲区的大小可用<%@ page buffer="size" %>设置。

(6)public abstract int getRemainning()获取缓冲区剩余空间的大小

(7)public boolean isAutoFlush()获取用<%@ page is AutoFlush="true/false"%>设置的AutoFlush值。

(8)public abstract void newLine()输出一个换行字符,换一行。

(9)public abstract void print()显示各种数据类型的内容。

(10)public abstract void println()分行显示各种数据类型的内容。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值