在 JSP 中共有9种内置对象,下面分别进行介绍。
1、request对象
客户端的请求信息被封装在 request 对象中,通过它才能了解到客户的需求,然后做出响应。它是 java.servlet.HttpServletRequest 类的实例。
常用方法:
getMethod(); //返回HTTP请求信息中所使用到的方法名称; getServletPath(); //返回请求信息中调用Servlet的URL部分; getQueryString(); //返回HTTP GET请求信息中URL之后的查询字符串; getContentType(); //返回请求实体的MIME类型; getProtocol(); //返回请求信息中的协议名名字与版本号; getPathInfo(); //返回有关任何路径信息; getServletName(); //返回接受请求的服务器主机; getServletPort(); //返回服务器的端口号; getRemoteHost(); //返回提交请求的客户机的规范名字; getRemoteAddr(); //返回提交请求的客户机的IP地址; getScheme(); //返回请求使用的模式(协议)名字; getParameter(); //返回客户端通过表单提交过来的参数值。例如request.getParameter(“myname”); //通过该语句来获取客户端传递过来的myname 参数。 getContextPath(); //返回HTTP 请求中指示请求上下文的部分。 getHeaderNames(); //返回一个枚举类型,此枚举集合中包含了请求所含有的所有请求名。 getAuthType(); //返回用于保护Servlet 的认证模式的名字。例如,BASIC,SSL 或者NULL(没有保护)。 gtRequestURL(); //返回HTTP 请求信息中的第一行从协议名开始直至查询字符串之间的URL 部分。例如,对HTTP GET 请求http://www.zzbsite.com/helloworld?name=johnson&age=20,这个方法将返回http://www.zzbsite.com/helloworld 字符串。 gtCountLength(); //返回整数,表示请求实体的长度(以字节为单位)。 gtUestPrincipal(); //返回java.security 类的Principal 对象,其中包含有目前授权用户的名字。 iUserInRole(String role); //返回一个布尔值,指示某个授权用户是否包含在某个具体的逻辑角色role 中。 gtRemoteHost(); //如果用户已经被授权,则返回提交请求的用户的注册名字,否则返回一个NULL。
2、response对象
response 对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是 javax.servlet.HttpServletResponse 类的实例。
常用方法:
setContentLength(int len); //此方法用于设置响应头的长度。 setContentType(String type); //用于设置HTTP响应的contentType中的MIME类型,其中可以包含字符编码的规则。例如可以把contentType设置为“text/html;charset=GBK”。在Servelet编写过程中,需要调用此方法进行设置,但是在JSP中一般都是使用page指令直接指定contentType的属性。 getOutputStream(); //此方法返回一个Servlet的输出流。用于在响应中写入二进制数据。Servlet容器不对二进制数据进行编码。 getWriter(); //此方法返回一个PrintWriter对象,在Servlet编写过程使用的比较频繁,而在JSP文件中,由于out是用getWriter()创建的PrintWriter对象的隐含对象,所以可以直接调用out对象作输出响应。 getCharacterEncoding(); //该方法获得此时响应所采用的字符编码类型。 sendError(int status); //使用指定错误状态码向客户机发送相应的错误信息。 sendError(int status, String message); //使用自定义的错误状态码以及描述信息向客户机发送错误的提示信息。 sendRedirect(String location); //将请求重新定位到一个不同的URL(页面)上。此方法在实际开发过程中会经常使用到。 setDateHeader(String headername, long date); //把指定的头名称以及日期设置为响应头信息。其中日期是用long值表示的,这是按照从新纪元开始算起的毫秒数。 ContainsHeader(String name); //检测指定的头信息是否存在。返回一个布尔类型。 setHeader(String headername, String value); //此方法使用指定的头名字以及相应的值来设置头信息。如果此头信息已经设置,则新的值会覆盖掉旧的值。如果头信息已经被发送出去,则此方法的设置将被忽略。 addheader(String headername, String value); //把指定的头名字以及相应值添加到头信息当中去。 addIntHeader(String headername, int value); //把指定的头名字以及整数值设置为头信息。如果头信息已经设置了,则新的设置值将覆盖掉以前的值。 setStatus(int sc); //给响应设置状态的代码。 setStatus(int sc, String sm); //为响应设置状态代码以及信息。这是在没有错误的时候使用的。
3、session对象
session 对象指的是客户端与服务器的一次会话,从客户连到服务器的一个 WebApplication 开始,直到客户端与服务器断开连接为止。它是 java.servlet.http.HttpSession 类的实例。
常用方法:
getId(); //此方法返回唯一的标识,这些标识为每个session而产生。当只有一个单一的值与一个session联合时,或当日志信息与先前的sessions有关时,它被当作键名用。 getCreationTime(); //返回session被创建的时间。最小单位为千分之一秒。为得到一个对打印输出很有用的值,可将此值传给Date constructor 或者GregorianCalendar的方法setTimeInMillis。 getLastAccessedTime(); //返回session最后被客户发送的时间。最小单位为千分之一秒。 getMaxInactiveInterval(); //返回总时间(秒),负值表示session永远不会超时。 getAttribute(String key); //通过给定的关键字获取一个存储在session中相对应的信息。例如,Integer item = (Integer) session.getAttrobute("item")。 setAttribute(String key, Object obj); //提供一个关键词和一个对象值,然后存在session当中。例如,session.setAttribute("ItemValue", itemName)。
4、out对象
out 对象是JspWriter类的实例,是向客户端输出内容常用的对象。
常用方法:
print(); //在页面中打印出字符串信息,不换行; println(); //在页面中打印出字符串信息,并且换行; clear(); //清除掉缓冲区中尚存在的内容。 clearBuffer(); //此方法清除掉当前缓冲区中尚存在的内容。 flush(); //清除掉数据流。 getBufferSize(); //返回缓冲区的内存大小,单位为字节流。如果不进行缓冲区的设置,大小为0。 getRemaining(); //此方法返回缓冲区还剩下多少字节数可以使用。 isAutoFlush(); //检查当前缓冲区是设置为自动清空,还是满了就抛出异常。 close(); //关闭输出流。
5、page对象
page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例。
常用方法:
getClass(); //返回当时Object的类。 hashCode(); //返回此Object的哈希代码。 toString(); //把此时的Object类转换成字符串。 equals(Object o); //比较此对象是否和指定的对象是否相等。 copy(Object o); //把此对象复制到指定的对象当中去。 clone(); //对此对象进行克隆。
6、application对象
application 对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了 application 对象的生命。它是 javax.servlet.ServletContext 类的实例。
常用方法:
getAttribute(String key); //通过一个关键字返回用户所需要的信息,返回类型为对象(Object),类似于session中的getAttribute(String key)方法。 getAttributeNames(); //返回所有可用的属性名,返回类型为枚举(Enumeration)。 setAttribute(String key, Object obj); //保存一个对象信息,并指定给一个关键字。 removeAttribute(String key); //通过关键字来删除一个对象信息。 getServletInfo(); //返回JSP引擎的相关信息。 getRealPath(String path); //返回虚拟路径的真实路径。 getContext(String URLPath); //返回执行Web应用的application对象。 getMajorVersion(); //返回服务器所支持的Servlet API最大版本号。 getMinorVersion(); //返回服务器所支持的Servlet API最小版本号。 getMineType(String file); //返回指定文件的MIME类型。 getResource(String path); //返回指定资源的URL路径。 getResourceAsStream(String path); //返回指定资源的输入流。 getRequestDispatcher(String URLPath); //返回指定资源的RequestDispatcher对象。 getServlet(String name); //返回指定名称的Servlet。 getServlets(); //返回所有的Servlet,返回类型为枚举型。 getServletNames(); //返回所有的Servlet名称,返回类型为枚举型。 log(String msg); //把指定信息写入到Servlet的日志文件中。 log(String msg, Throwable throwable); //把栈轨迹以及给出的Throwable异常的说明信息写入Servlet的日志文件。
7、exception对象
exception 对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个 JSP 页面要应用此对象,就必须把 isErrorPage设为true,否则无法编译。他实际上是 java.lang.Throwable 的对象。
常用方法:
getMessage(); //返回exception对象的异常消息字符串。 getLocalizedMessage(); //返回exception对象的本地化语言的异常错误。 printStackTrace(); //显示异常的栈跟踪轨迹。 toString(); //返回关于异常错误的简单消息描述。 fillInStackTrace(); //重写异常错误的栈执行轨迹。
8、pageContext对象
pageContext 对象提供了对 JSP 页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的 SESSION,也可以取本页面所在的 application 的某一属性值,他相当于页面中所有功能的集大成者,它的本 类名也叫 pageContext。
常用方法:
getRequest(); //返回当前页面中的request对象。 getResponse(); //使用此方法将返回当前页面中的response对象。 getPage(); //此方法返回当前页面中的page对象。 getSession(); //返回当前页面中的session对象。 getOut(); //返回当前页面中的out对象。 getException(); //返回当前页面中的exception对象。 getServletConfig(); //返回当前页的config对象。 getServletContext(); //返回当前页中的application对象。 setAttribute(String name); //给指定的属性名设置属性值。 getAttribute(String name); //根据属性名称找到相应的属性值。 setAttribute(String name, Object obj, int scope); //在给定的范围内设置相应的属性值。 getAttribute(String name, int scope); //在指定的范围内获取到相应的属性值。 findAttribute(String name); //寻找一个属性并返回,如果没有找到则返回一个null。 removeAttribute(String name); //通过属性名删除掉某个属性。 removeAttribute(String name, int scope); //在指定的某个范围内删除某个属性。 getAttributeScope(String scope); //返回某属性的作用域。 getAttributeNamesInScope(int scope); //返回指定范围内的所有属性名的枚举。 release(); //释放掉pageContext()所占的所有资源。 forward(String relativeURLpath); //使用当前页面重导到另一个页面。 include(String relativeURLpath); //使用当前位置包含的另一个页面。
9、config对象
config 对象是在一个 Servlet 初始化时,JSP 引擎向它传递信息用的,此信息包括 Servlet 初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)。
常用方法:
getServletContext(); //此方法将返回一个含有服务器相关信息的ServletContext对象。 getInitParameter(String name); //返回初始化参数的值。 getInitParameterNames(); //返回包含了Servlet初始化所需要的所有参数,返回类型是枚举型。
作者:耑新新,发布于 博客园
转载请注明出处,欢迎邮件交流:zhuanxinxin@aliyun.com