您的位置:首页 > Web前端 > JavaScript

JSP的内置对象

2014-02-25 11:19 543 查看
request对象
request对象常用的方法如表2-2所示。


 




response对象
客户端浏览器每访问一次Web服务器的页面都会提交一次请求,与request对象对应的是response对象,response对象可以用来对客户的请求作出响应,向客户端发送数据。输出的数据可以是各种数据类型,甚至是文件,这可以通过page指令的contentType属性或是response的setContentType()方法来设置。
response对象常用的方法如表2-3所示。




session对象
session对象用来保存一些需要在与每个用户会话期间保持的数据信息,这样就方便了会话期间的一些处理程序。如可以用session变量记住用户的用户名,就不必在其他网页中重复输入了。当用户关闭了所有某个Web服务器上的网页时,则此服务器与客户机的session对象以及其变量会自动消失。
session对象常用的方法如表2-4所示。


 


 

application对象
application对象用来在多个程序或者是多个用户之间共享数据,用户使用的所有application对象都是一样的,这与session对象不同。服务器一旦启动,就会自动创建application对象,并一直保持下去,直至服务器关闭,application就会自动消失。
application对象常用的方法如表2-5所示。




out对象
out对象主要用来向客户端输出数据,控制管理输出的缓冲区(buffer)和输出流(output stream)。它被封装成javax.servlet.jsp.JspWriter 接口,PrintWriter使用它向客户端发送输去流。其生命周期为当前页。
常用方法:
(1)out.print(type)、out.println(type)::输出各种类型数据。
(2)out.newLine( ):输出一个换行符。
(3)out.flush( ):输出缓冲区里的数据。
(4)out.close( ):关闭输出流,清除所有的内容
其他方法有:
(1)void clearBuffer( ):清除缓冲区的当前数据,并把数据输出到客户端。
(2)void clear( ):清除缓冲区里的数据,但不会把数据输出到客户端。
(3)int getBufferSize( ):返回目前缓冲区的大小(kb),如不设缓冲区则为0。
(4)int getRemaining( ):获得缓冲区中没有被占用的空间的大小(kb)。
(5)boolean isAutoFlush( ):返回布尔值。回传true表示缓冲区满时会自动清除,false表示不会自动清除并且产生异常处理。
 
exception对象
  若要使用exception 对象时,必须在page 指令中设定。< %@ page isErrorPage="true" %>才能使用。
  exception提供的三个方法:
  getMessage( )
  getLocalizedMessage( )、
  printStackTrace(new java.io.PrintWriter(out))
 
 
 
pageContext对象
  pageContext对象能够存取其他内置对象,即又可以初始化其他内置对象,又可以修改内置对象,所以它就是一个容器,用来提供一个单一的接口以便于管理各种公开对象。
  1.pageContext对象存取其他内置对象属性的方法,此时需要指定范围的参数。
  Object getAttribute(String name, int scope)
  Enumeration getAttributeNamesInScope(int scope)
  void removeAttribute(String name, int scope)
  void setAttribute(String name, Object
b7d2
value, int scope)
  int scope范围参数有四个,从1到4分别代表四种范围:
PAGE_SCOPE,默认情况
REQUEST_SCOPE
SESSION_SCOPE
APPLICATION_SCOPE
  2.PageContext对象取得其他隐含对象的方法
  Exception getException( )回传目前网页的异常,不过此网页要为error page,
  JspWriter getOut( ) 回传目前网页的输出流,例如:out
  Object getPage( )回传目前网页的Servlet 实体(instance),例如:page
  ServletRequest getRequest( )回传目前网页的请求,例如:request
  ServletResponse getResponse( )回传目前网页的响应,例如:response
  ServletConfig getServletConfig( )回传目前此网页的ServletConfig 对象,例如:config
  ServletContext getServletContext( )回传目前此网页的执行环境(context),例如:application
  HttpSession getSession( )回传和目前网页有联系的会话(session),例如:session
  3.PageContext对象提供取得属性的方法
  Object getAttribute(String name, int scope)回传name 属性,范围为scope的属性对象,回传类型为Object
  Enumeration getAttributeNamesInScope(int scope)回传所有属性范围为scope 的属性名称,回传类型为Enumeration
  int getAttributesScope(String name) 回传属性名称为name 的属性范围
  void removeAttribute(String name) 移除属性名称为name 的属性对象
  void removeAttribute(String name, int scope)移除属性名称为name,范围为scope 的属性对象
  void setAttribute(String name, Object value, int scope)指定属性对象的名称为name、值为value、范围为scope
  Object findAttribute(String name)寻找在所有范围中属性名称为name 的属性对象
 
 
config 对象
  背景知识:jsp和servlet有什么区别?
servlet是在服务器端执行的java程序,只不过它有专门的一套规则(就是我们平常所说的api);
jsp说得简单点就是用另一套简单的规则写的servlet程序,它可以写java代码,还可以写html代码,JavaScript,css等等……,但是到服务器端首先会被转成servlet程序然后就按照servlet的执行顺序执行了。
config 对象里存放着一些Servlet 初始的数据结构。
  config 对象实现于javax.servlet.ServletConfig 接口,它共有下列四种方法:
public String getInitParameter(name)
public java.util.Enumeration getInitParameterNames( )
public ServletContext getServletContext( )
public Sring getServletName( )
 配置方法:
config对象相对来说使用的比较少,这个对象一般用来配置指定jsp的参数,如同servlet中参数配置。毕竟jsp本质是servlet,他们的配置方式是差不多。
<servlet>

    <servlet-name>test</servlet-name>

    <jsp-file>/test.jsp</jsp-file>
<!-- 注意这里要么是jsp-file要么是servelt-class标签-->

    <init-param>

      <param-name>username</param-name>

      <param-value>zhang</param-value>

    </init-param>

</servlet>

<servlet-mapping>

    <servlet-name>test</servlet-name>

    <url-pattern>/test</url-pattern>

</servlet-mapping>
以上就是对test.jsp配置的参数username,对应值为zhang;
当通过映射名test运行(注意不是test.jsp)时,其实运行的是test.jsp文件,其中test为映射路径.我们可以使用<%=config.getInitParameter("username")%>获得参数值:zhang。
如果直接使用test.jsp访问页面,也能访问,但是不能取得配置参数值。
所以如果想要直接使用test.jsp运行,要修改映射路径为<url-pattern>/test.jsp</url-pattern>
总之:通过上边解释,可以了解到jsp和servlet一样可以任意配置映射,但是jsp和servlet有不同之处,尤其jsp映射后可以使用原始路径访问也可使用映射访问
http://cavonchen.blog.163.com/blog/static/1130143962009107105232614/
总结1:
用test映射名访问页面,也能访问,但是不能取得web.xml配置参数值。
用test.jsp访问页面,也能访问,如果不修改修改映射路径为<url-pattern>具体指向  /test.jsp  ,是不能取得web.xml配置参数值。
总结2:
相同点:jsp和servlet一样可以任意配置映射
不同点:jsp映射后可以使用原始路径访问(如test.jsp)也可使用映射名(如test)访问
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jsp jsp内置对象