jsp九大内置对象的使用详解

jsp九大内置对象的使用详解
  • 什么是jsp内置对象
jsp内置对象,是指可以不加声明和创建就可以在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量(不需要new就可以直接使用)
  • jsp内置对象有哪些
jsp中内置对象有application,config,exception,out,page,pageContext,response,request,session。
  • 内置对象对应的类及作用域说明 
  • 内置对象名称 相对应的类 作用域
    request javax.servlet.ServletRequest request
    response javax.servlet.ServletResponse page
    pageContext javax.servlet.pageContext session
    session javax.servlet.HttpSession page
    application javax.servlet.ServletContext application
    out javax.servlet.JspWriter page
    config javax.servlet.ServletConfig page
    page javax.servlet.Object page
    exception javax.servlet.Throwable page
    九大内置对象的具体介绍和用法
1.关于application
application 实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在。用到 application的场景: 上下文, 环境信息 之类的。
application可以直接用于jsp,代码如下:
<%
String count=(String)application.getAttribute("count");
if(count!=null){
count = Integer.parseInt(count)+1+"";
}
else count="1";
application.setAttribute("count",count);
%>
之后在页面中调用<%= " <h1>当前在线人数为"+count+"人</h1>"%>即可;
2.关于config
config是用于对jsp页面配置信息的获取,在jsp的隐式对象中config一般使用的比较少。 jsp和servlet的配置方式差不多,配置如下:
<servlet>
<servlet-name>test</servlet-name>
<jsp-file>login.jsp</jsp-file> <!-- 注意这里要么是jsp-file要么是servelt-class标签-->
<init-param>
<param-name>username</param-name> <!--此处的参数便可以通过config获取-->
<param-value>wyx</param-value>
</init-param>
</servlet>
<servlet-mappping>
<servlet-name>test</servlet-name>
<url-pattern>/test<url-pattern>
</servlet-mapping>
在jsp页面中我们便可以通过<% config.getInitParameter("username");%>获取参数值
3.关于exception
exception 对象的作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,在一般的 JSP 页面中使用该对象将无法编译 JSP 文件。
exception 的用法如下:
首先,需要在会发生异常的页面定义
<%@ page language="java" import="java.util.*"pageEncoding="utf-8" errorPage=" /error.jsp " %>
此处的地址为绝对路径,即 web-inf 下的 error.jsp
其次在 error.jsp 页面中定义
<% @ page language="java" import="java.util.*" pageEncoding="utf-8" isErrorPage="true" %>
之后在 error.jsp 页面中引用 exception 输出异常信息
<% String message = exception.getMessage(); %>
<html>
<body>
<h1>异常信息为:<%=message %></h1>
</body>
</html>

4.关于out
out内置对象是向客户端输出信息,常用的方法有:println、flush和clear和clearbuffer,后两者的区别是,潜着在flush调用后会抛出异常,前者不会....抛出异常部分后面的代码都不会被执行,还有getBufferSize(缓冲区大小,如果不设置则为0),getRemaining(缓冲区剩余大小),isAutoFlush(缓冲区满时是否自动刷新)。
 <%request.setCharacterEncoding("utf-8"); 
    String name =(String)session.getAttribute("username");
    name = new String(name.getBytes("ISO-8859-1"),"UTF-8");
    out.println(name);
  %>

5.关于page
JSP内置对象-page:
page对象指向当前JSP页面本身,有点类似this指针。

  <body>  
    <h1>page内置对象</h1>  
         当前page页面对象的字符串描述:<%=page.toString() %><br>                      
  </body> 

6.关于pageContext
pageContext相当于jsp页面的集大成者,
其本身是一个域对象。本身表示的域范围是本页面, 同时还能操作其他三个域对象(ServletRequest HttpSession ServletContext)。
在JSP页面中只需将pageContext对象传递给某个Java类的实例对象,在该Java对象中就可以访问和调用其他隐式对象的功能了。
PageContext类中定义了一个setAttribute方法来将对象存储进pageContext对象内部的一个HashMap对象中,同时也定义了一个getAttribute方法来检索存储在该HashMap对象中的对象。
PageContext类除了可以存储和检索自身中的属性对象外,还定义了可以存储和检索其他域范围内的属性对象的方法。
7.关于response
一.、跳转
response.sendRedirect("jsp/back/contact.jsp");//绝对位置
二、处理HTTP文件头
1、禁用缓存
默认情况浏览器会对网页进行缓存,可以提高网页显示速度,但是对于一些安全性要求比较高的网站,通常需要禁用缓存。
  1. <% response.setHeader("Cache-Control", "no-store");  
  2.    response.setDateHeader("Expires", 0);%>  
2、自动刷新
  1. <!-- 每隔10秒自动刷新一次 -->  
  2.     <% response.setHeader("refresh", "10");%>  
3、定时跳转到网页
设置 5秒后自动跳转到指定网页:
  1. <% response.setHeader("refresh", "5;URL=deal.jsp");%>  
三、设置输出缓冲
缓冲区的概念就不解释了,满足下面3种情况之一,就会把缓冲区的内容写到客户端。
1、JSP页面的输出信息已经全部写入到了缓冲区
2、缓冲区已满
3、调用了response的flushBuffer或者out的flush方法。
8.关于request
用于获取客户的请求信息
HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员 通过这个对象的方法,可以获得客户这些信息。如:
<%  request.getAttribute("name");  %>

9.关于session
session是一次会话只要浏览器不关闭就不会关闭会话 一般默认保存30分钟可以根据自己的需要更改
采用session设置页面参数信息,如:
<% session.setAttribute("name", "Smith");
%>





  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值