JSP九大内置对象

JSP九大内置对象

request对象

request对象是HttpServletRequet(接口)的实例。

请求信息的内容包括:请求的标题头(Header)信息(浏览器的版本信息语言和编码方式等),请求的方式(http的get和post方法),请求的参数名、参数值、和客户端的主机名称等)。

【机制】当用户请求一个JSP页面时,JSP页面所在的 Tomcat服务器将用户的请求封装在内置对象 request中。 request内置对象代表了客户端的请求信息,主要用于接收客户端通过HTTP协议传送给服务器端的数据。在客户端的请求中如果有参数,则该对象就有参数列表。

request对象的作用域为一次请求,在当前页面有效,或在请求转发的页面有效

设置每个请求的编码:request.setCharacterEncoding(),在getParameter()之前进行设定,可以解决中文乱码问题

请求转发:

request.getRequestDispatcher(“request.jsp”).forward(request,response)
将请求转发给另一个地址,实际上是一种服务器的行为,客户端只有一次请求,服务器端转发后会将请求对象保存,地址栏中的URL地址不会改变,得到响应后服务器端再将响应发给客户端

response对象

response对象用于相应客户请求,向客户端输出信息,response是Javax.servlethttpHttpservletrEsponse的实例化对象

【机制】 response对象的生命周期由JSP容器自动控制。当服务器向客户端传送数据JSP容器就会创建 response对象,并将请求信息包装到 response对象中。它封装了JSP的响应,然后被发送到客户端以响应客户的请求,当JSP容器处理完请求后, response对象就会被销毁。

重定向:

利用response的sendRedirect(url)方法将客户请求重定向到一个新的页面请求重定向,即response.sendRedirect(),是一种客户端行文,从本质上讲等同于两次请求,前一次请求对象不会保存,地址栏的URL地址会改变。

利用response设置页面自动更新和定时跳转:

  • response 对象的 setHeader() 方法用于设置指定名字的 HTTP 文件头的值,如果该值已经存在,则新值会覆盖旧值。
    最常用的一个头信息是 refresh,用于设置刷新或者跳转。
  • (1) 实现页面一秒钟刷新一次,设置语句如下:response.setHeader(“refresh”,“1”);
  • (2) 实现页面定时跳转,如 2 秒钟后自动跳转到URL所指的页面,设置语句如下:response.setHeader(“refresh”,“2:URL=页面名称”);

response.getWriter().print();

session对象

session对象属于javax.servelt.http.Httpsession接口的实例

session即会话,一个会话就是浏览器与服务器之间的一次通话,包含浏览器与服务器之间的多次请求及响应过程

当用户首次访问服务器上的一个 JSP 页面时,JSP 引擎便产生一个 session 对象,同时分配一个 String 类型的 ID 号,JSP 引擎同时将这个 ID 号发送到客户端,存放在 Cookie 中,这样,session 对象和客户端之间就建立了一一对应的关系

当用户再次访问该服务器的其他页面时,不再分配给用户新的 session 对象,直到用户关闭浏览器,或者在一定时间(系统默认在 30 分钟内,但可在编写程序时,修改这个时间限定值或者显式地结束一个会话)客户端不向服务器发出应答请求,服务器端就会取消该用户的 session 对象,与用户的会话对应关系消失。

当用户重新打开浏览器,再次连接到该服务器时,服务器为该用户再创建一个新的 session 对象。

session与 Cookie比较:

session和 Cookie用于跨网页共享数据。

  1. session:将信息以对象形式保存于服务端,记
    录独有的个人信息,在不同页面中传递。
    session对象随会话结束而结束

  2. Cookie:将信息以字符串形式保存于客户端,
    供 浏览器与web服务器互通数据用的文本文
    件,当IE执行时,会在计算机中产生一个
    Cookie。 Cookie可以长期保存在客户端。
    session比 Cookie更安全,但更占用资源。重
    要的信息使用 session保存,不重要的用信息
    通常用 Cookie保存

【开发原则】尽量少向 session中保存信息, session使用了 Cookie的机制,如果 Cookie禁用,则 session也无法使用。

使用 session 对象在不同的 JSP 文件(整个客户会话过程,即 session scope)中保存属性信息,比如用户名、验证信息等,最为典型的应用是实现网上商店购物车的信息存储。

创建及获取客户会话属性

从会话中移除指定的对象

设置会话时限

session对象失效的几种情况:

  • 1、客户关闭浏览器。
  • 2、会话超时,即超过session对象的生存时间,
    用户在规定时间内没有在此访问该网站,则
    认为超时。
  • 3、调用invalidate()方法

application对象

application 对象是 javax.servlet.ServletContext 类的实例

application 对象用于保存应用程序的公用数据,服务器启动并自动创建 application 对象后,只要没有关闭服务器,application 对象就一直存在,所有用户共享 application 对象。

在 application 对象中设置的属性在整个应用程序范围(application scope)都有效。即使所有的用户都不发送请求,只要不关闭应用服务器,在其中设置的属性也是有效的。

out对象

out对象是一个输出流,用来向客户端输出数据。它还可以管理应用服务器上的输出缓冲区,缓冲区默认值为8kb,可以通过页面指令page来改变默认大小

JSP 只有在下面三种情况下,才会把缓冲区的内容输出到客户端。

  • 1、该 JSP 网页已完成信息的输出。
  • 2、输出缓冲区己满。
  • 3、JSP 中调用了 out.flush() 或
    response.flushBuffer()。

调用 out 对象的 clear() 方法,可以清除缓冲区的内容,类似于重置响应流,以便重新开始操作。如果响应已经提交,则会产生 IOException 异常。

另一种方法 clearBuffer() 可以清除缓冲区“当前”内容,而且即使内容已经提交给客户端,也能够访问该方法。

pagecontext对象

pageContext 对象是 javax.servlet.jsp.pageContext 类的一个实例。

pageContext 是页面上下文对象,这个特殊的对象提供了 JSP 程序执行时所需要用到的所有属性和方法,如 session、application、config、out 等对象的属性,也就是说,它可以访问本页所有的 session,也可以取本页所在的 application 的某一属性值,它相当于页面中所有其他对象功能的集大成者,可以用它访问本页中所有的其他对象。

JSP 页面里可以直接使用 pageContext 对象的句柄,pageContext 对象的 getXxx()、setXxx() 和 findXxx() 方法可以根据不同的对象范围实现对这些对象的管理。

pageContext 对象在实际 JSP 开发过程中很少使用,因为 request 和 response 等对象可以直接调用方法进行使用,而通过 pageContext 来调用其他对象,会觉得有些麻烦。

page对象

java.lang.Object 类的实例

page 对象是为了执行当前页面应答请求而设置的 Servlet 类的实体,即显示 JSP 页面自身,与类的 this 指针类似,使用它来调用 Servlet 类中所定义的方法,只有在本页面内才是合法的。

config对象

config 对象是 javax.servlet.ServletConfig 类的实例,表示 Servlet 的配置信息。

config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。

exception对象

exception 对象的作用是显示异常信息,只有在包含 isErrorPage=“true” 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。

请求转发与重定向

cookie技术

cookie技术并不是内置对象,但却与内置对象密切相关,cookie的创建与获取都离不开内置对象

日常生活中,上网浏览商品,系统会自动记录已经浏览过的商品,以后再次浏览时,网站会向用户自动推送相关商品,这就用到了cookie技术,以及,登录账号时的免输入登录。

如何创建Cookie

  • 1、在创建之前需要导入相应的包:

    import="javax.servlet.http.Cookie";
    
  • 2、cookie的创建:

    Cookie cookie=new Cookie("parameter","value");
    
  • 3、cookie的写入:

    response.addCookie("cookie");
    
  • 4、cookie的获取:

    cookie c[]=request.getCookies();
    
  • 5、cookie的输出:

    if((c!=null){
      for(cookie cookie:c){
           if("uname".equals(cookie.getName())){
               out.print(cookie.getValue());
            }
       }
    }
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值