JSP的内置对象

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 value, int scope)

  int scope范围参数有四个,从1到4分别代表四种范围:

  1. PAGE_SCOPE,默认情况
  2. REQUEST_SCOPE
  3. SESSION_SCOPE
  4. 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)访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值