24_Jsp_9大内置对象_4大域对象

9大内置对象

内置对象不能在<%! %>中使用!

这里写图片描述

1)out对象

out对象是javax.servlet.jsp.JspWriter的实例,代表jsp的输出流,用于输出内容形成html页面。

  • out对象一些方法:
    1. out.println( ):输出完成后会换行,换行效果在页面中不显示只在源码中显示
    2. out.print( ):输出后不换行
    3. out.getBufferSize( ):输出缓冲区大小
    4. out.getRemaining( ):输出剩余缓冲区大小
    5. out.clear( ):清空缓冲区,不将数据发送至客户端
    6. out.clearBuffer( ):将数据发送至客户端,再清空缓冲区
    7. out.flush( ):输出缓冲区内容
    8. out.close( ):关闭输出流

2)request对象

request对象是jsp中的重要对象,每个对象封装着一次用户请求,并且所有对请求参数都被封装在request对象中,request对象是获取用户请求参数的重要途径。

  • request对象的一些方法:

    1. request.getMethod( ):获取请求的方法名,如get,post.
    2. request.getRequestURI( ):获取请求资源名.如请求访问:/jspstudy/08/request.jsp
    3. request.getProtocol( ):获取请求使用的协议.如:HTTP/1.1
    4. request.getServerName( ):获取请求使用的服务器,如:localhost.
    5. request.getServerPort( ):获取请求使用的服务器端口,如:8080
    6. request.getRemoteAddr( ):获取客户端的ip地址.
    7. request.getRemoteHost( ):获取客户端主机.
    8. request.getParameter( ):获取传递过来的参数值.
    9. request.getParameterValues( ):请求参数有多个值时,该方法返回多个值组成的数组.
    10. request.setAttribute( ):用来在同一个request周期中保存变量使用;setAttribute( )方法和RequestDispatcher.forward()都在一起使用。
    11. request.getAttribute( ):可得到JSP页面一表单中控件的Value
    12. request.getRequestDispatcher( ).forward( ):请求转发
  • 测试

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>request方法</title>
</head>
<body>

<form action="" method="post">
  username:<input type="text" name="username"><br/>
  <input type="submit">
  请求方法名:<%=request.getMethod() %><br/>
  请求的资源:<%=request.getRequestURI() %><br/>
  请求使用的协议:<%=request.getProtocol() %><br/>
  请求使用的服务器:<%=request.getServerName() %><br/>
  请求使用的服务器端口:<%=request.getServerPort() %><br/>
  客户端的IP地址:<%=request.getRemoteAddr() %><br/>
  客户端主机:<%=request.getRemoteHost() %><br/>
  表单提交过来的值:<%=request.getParameter("username") %><br/> 
</form>
</body>
</html>
  • 输出
请求方法名:POST
请求的资源:/jspstudy/08/request.jsp
请求使用的协议:HTTP/1.1
请求使用的服务器:localhost
请求使用的服务器端口:8080
客户端的IP地址:0:0:0:0:0:0:0:1
客户端主机:0:0:0:0:0:0:0:1
表单提交过来的值:test

3)response对象

response对象用于服务器对客户端的响应,大部分时候使用out对象向页面输出,但是out对象是JspWriter对象的实例,JapWriter是Writer的子类,Writer是字符流,因此out对象无法输出非字符内容。jsp页面需要输出图片、pdf文档、excel等非字符对象时需要使用response作为响应输出;response还可以用于重定向,向客户端增加cookie.

  • 常用方法:

    1. addCookie(Cookie):添加cookie
    2. setHeader(String name,String value):设置头信息。
    3. sendRedirect( ):重定向,类似于客户端跳转
    4. getOutputStream( ):输出流
  • 常用用法:

    1. 定时刷新:response.setHeader("refresh","2"):2秒刷新一次。
    2. 定时跳转:response.setHeader("refresh","2;URL=hello.jsp"):2秒后跳转到hello.jsp。注:此为客户端跳转;
    3. 客户端跳转:response.sendRedirect("hello.jsp");
      注意:以上(2)用法可能会失败,原因是用户在2秒内刷新了页面,导致refresh失效;

4)session对象

session对象代表一次用户会话,一次用户会话的含义是:从客户端连接服务器开始,到客户端与服务器断开为止,这个过程就是一次会话。
session通常用于跟踪用户的会话信息,如判断用户是否登录,购物车中跟踪用户购买的商品。
session范围的属性可以在多个页面点跳转之间共享,一旦关闭浏览器,session结束,session范围内的属性就会全部丢失。

  • session常用方法:
    1. String getId( ):获得Session Id。Session Id类似于Cookie的JSessionId,是服务器自动分配的;
    2. session.setAttribute(key , value):设置属性。
    3. session.getCreationTime( ):获得创建时间。
    4. session.getLastAccessedTime( ):获得最后访问时间。
    5. session.isNew( ):这个Session是否是新的,即判断Session Id。
    6. session.invalidate( ):把session的属性设置全部清空。
  • 登录-注销页面:
    1. 使用session.setAttribute( )注册。
    2. 使用session.getAttribute( )判断是否已经注册。
    3. 使用session.invalidate( )注销。

5)page对象

代表该页面本身,通常没有太大用处。

6)pageContext对象

代表页面上下文,主要用于jsp之间的共享数据,使用pageContext对象可以访问page、request、session、application范围的变量。

  1. pageContext.forward(String)
  2. pageContext.include(String)
  3. pageContext.getServletConfig( )
  4. pageContext.getServletContext( )
  5. pageContext.getRequest( )
  6. pageContext.geResponse( )
  7. pageContext.getSession( )

    • 也就是说,只要有了pageContext对象,就能完成一切内置对象的功能;

7)application对象

jsp、servlet之间不能相互调用,为了解决jsp和servlet之间数据交换的问题,web服务器提供了四个对象,分别是application、session、request、page。放入application对象中的数据对整个Web应用有效,一旦jsp、servlet将数据放入application对象之中,该数据可以被该应用下其它jsp、servlet访问。

  • 常用方法:
    1. getRealPath(path):获得真实路径。
    2. getContextPath( ):获得虚拟路径。
    3. getInitParameter(String )
//我们可以在web.xml中添加初始化参数:
[html] view plain copy
<context-param>  
    <param-name></param-name>  
    <param-value></param-value>  
</context-param>  

application==this.getServletContext()

8)config对象

config对象代表当前jsp配置信息,但jsp页面通常无需配置,该对象在jsp页面中较少使用,在servlet中使用较多。

  • 如果将一个hello.jsp文件放到WEB-INF中,如果能够让其能够被访问。
    答案就是在WEB-INF/web.xml设置即可,内容如下:
<servlet>
    <servlet-name>he</servlet-name>
    <jsp-file>/WEB-INF/hello.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>he</servlet-name>
    <url-pattern>hello</url-pattern>
</sevlet-mapping>
重启服务器后,则在地址栏输入http://localhost:8080/test/hello即可。
  • config常用方法:

    1. getInitParameterNames( )
    2. getInitParameter(String name)
  • 什么是初始化参数呢?
    初始化参数在web.xml中进行配置,形式如下:

<servlet>
<init-param>
    <param-name>name</param-name>
    <param-value>value</param-value>
</init-param>
</servlet>

9)exception对象

exception对象是Throwable的实例,代表jsp脚本中产生的错误和异常,是jsp页面异常机制的一部分。把page指令的isErrowPage属性设置为true时可以访问exception内置对象。

  • 常用方法:
    1. getMessage( );

这里写图片描述

4大域对象

  1. request——HttpServletRequet
  2. session——HttpSession
  3. application——ServletContext
  4. page——PageContext

    • 这四个对象有3个方法:
      1)void setAttribute(String key,Object o)//设置属性
      2)Object getAttribute(String key)//取得后要向下转型
      3)void removeAttribute(String key)//删除属性
      注意:在getAttribute之后一定要转型!
//举例:
pageContext.setAttribute("name","xiazdong");//只能在单个页面中进行保存
String name = (String)pageContext.getAttribute("name");//换了一个页面后就无法取得
//注意:尽可能在满足功能的前提下,将属性设置的保存范围尽可能的小。这样能够提高性能;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值