有些对象不用声明就可以在JSP页面的Java程序片和表达式部分使用,这些对象就是JSP的内置对象。
  JSP常用的内置对象有request,response,session,application,out.
  其中两个重要的request和response对象提供了服务器和浏览器通信方法的控制。

1.request对象(请求对象)

  作用:封装用户提交的信息,获取封装信息等

1.1.获取用户提交信息

request.getParameter(String s);//获取提交信息
    如果该方法获取是得到空对象会出现NullPointerException异常,处理该异常
      String s=request.getParameter("s");
      if(s==null){s="";}

1.2.处理汉字信息

(1)对信息重新编码
      request将获取的信息重新编码,用ISO-8859-1进行编码,并将编码存放到一个字节数组中,然后将这个数组转换成字符串。
      String str=request.getParameter("s");
      byte b[]=str.getBytes("ISO-8859-1");
      str=new String(b);
      String str=new String(request.getParameter("s").getBytes("ISO-8859-1"),"utf-8");
    (2)request设置编码
      request在获取信息之前使用setCharacterEncoding()方法将自己的编码设置成utf-8
      request.setCharacterEncoding("utf-8");

1.3常用方法

(1)getProtocol()获取用户向服务器提交信息所使用的通信协议,比如http/1.1
    (2)getServletPath()获取用户请求的JSP页面文件的目录
    (3)getContextPath()获取用户请求的当前Web服务目录
    (4)getContentLength()获取用户提交的整个信息的长度
    (5)getMethod()获取用户提交信息的方式,比如post或get
    (6)getHeader(String s)获取HTTP头文件中由参数s指定的头名字的值。s可取值:accept,accept-language,content-type,accept-encoding,user-agent,host,content-length,connection,cookie等。
    (7)getHeaderNames()获取头名字的一个枚举
    (8)getHeaders(String s)获取头文件中指定头名字的全部值得一个枚举
    (9)getRemoteAddr()获取用户的IP地址
    (10)getServertName()获取服务器的名称
    (11)getRemoteHost()获取用户机的名称(如果不能获取就获取IP地址)
    (12)getServerPost()获取服务器的端口号
    (13)getParmaeterNames()获取用户提交的信息体部分中name参数值的一个枚举

1.4作用域内管理属性

在进行请求转发操作时,把一些数据带到转发后的页面处理。这时,就可以使用request对象的setAttribute()方法将数据设置在request范围内存取。在request作用域中,设置转发数据的方法使用格式如下:request.setAttribute("key",value);
    参数key为String类型的键名。在转发后的页面取数据时,通过这个键名来获取数据;参数value为Object类型的键值,代表需要保存在request范围内的数据。在requet作用域中,获取转发数据的方法使用格式如下:
     Object object=request.getAttribute("name");

1.5获取Cookie

request对象中的getCookies()方法获取Cookie中的数据,
    格式:  Cookie[] cookie= request.getCookies();
    该方法返回值是Cookie数组。

2.response对象(响应对象)

作用:对用户的请求做出动态响应,向用户端发送数据

2.1动态响应contentType属性

使用setContentType(String s)来改变contentType的属性

2.2页面重定向

在某些情况下响应用户时,需要将用户重新引导至另外一个页面,可以使用sendRedirect(URL url)方法实现。
    JSP页面还可以使用response对象中的sendError()方法指明一个错误状态,该方法接受一个错误及一条可选的错误信息。该信息将在内容主体上返回给客户。
    例如: response.sendError(500,”请求页面存在错误”);
    上两个方法都中止当前的请求和响应。
    response对象中用于重定向的方法如下:
    sendError(int number):使用指定的状态码向客户发送错误响应。
    sendError(int number,String msg):使用指定的状态码和描述性消息向客户发送错误响应。
    sendRedirect(String location):指定的重定向位置URL并向客户发送重定向响应,可以使用相对URL。

response状态码
    1xx:主要是实验性质的
    2xx:用来表示请求成功
    3xx:用来表明在请求之前应采取进一步的行动
    4xx:当浏览器给出无法满足的请求时,返回该状态代码
    5xx:用来表示服务器出现问题

2.3缓冲区输出

缓冲可以有效地在服务器与客户之间传输内容。
    HttpServletResponse对象为支持jspWriter对象而启用了缓冲区配置。response对象可以为JSP页面设置缓冲区容量,检测缓冲区的状态。
    response对象中用于相应缓冲的方法如下:
    flushBuffer():强制把缓冲区中内容发送给客户。
    getBufferSize():返回响应所使用的实际缓冲区大小,如果没使用缓冲区,则该方法返回0。
    setBufferSize(int size):为响应的主体设置首选的缓冲区大小。
    boolean isCommitted():表示响应是否已经提交,提交的响应已经写入状态码。
    reset():清除缓冲区存在的任何数据,同时清除状态码。

3.session对象(会话对象)

HTTP是一种无状态协议,一个用户向服务器发起请求,然后服务器返回响应,在服务器端部保留连接的有关信息。
  作用:记录有关连接的信息

3.1创建与获取客户端的session

session.setAttribute(String  key ,Object  obj)
    将Object指定的对象obj添加到session对象中,如果添加对象的关键字相同,则先添加的对象被清除。
    session.getAttibue(String key)
    获取关键字是key的对象。由于任何对象都可以添加到session对象中,取回对象时应强制转化为原来的类型。
    java.util.Enumeration getAttributeNames()
    获取在session中所有对象的名称,该方法返回一个枚举类型的对象

3.2移除删除session对象

removeAttribute()移除相应的对象移除,语法如下:
    void removeAttribute(java.lang.String name)
    参数name为String类型的值,代表移除的对象的名称。
    invalidate()方法删除已经保存到session中所有对象。invalidate()方法的语法如下:
    void invalidate()

3.3超时管理

session.getLastAccessedTime()获取客户端最近访问服务器端的保存时间
    session.getMaxInactiveInterval()获取客户端停止访问服务器端的保存时间
    session.setMaxInactiveInterval(int value)设置客户端停止时session在服务器端的保存时间

3.4其他方法

session.getId()    获取session对象的编号。
    session.getCreationTime()    session的创建时间。
    session.getLastAccessedTime()   最近请求的时间。
    session.getMaxInactiveInterval() 两次请求间隔多长时间此session对象被取消。
    session.isNew()     是否是新创建的session对象。

4.application对象(多客户端共享对象)

作用:保存所有应用系统中的公共数据,web服务器启动并自动创建application对象后,只要没有关闭服务器,appliaction对象一直存在,所有用户可以共享appliaction对象。

4.1常用方法

setAttribute(String key, Object obj)  将Object指定的对象obj添加到application对象中,并为添加的对象指定一个索引
    getAttribute(String name) 获取指定的属性值。
    removeAttribute(String name) 删除指定Application的值。
    getAttributeNames()获取一个包含所有可用属性名的枚举。 getContext(String uripath) 获取指定资源的application对象
    getResource(String path)获取指定资源(文件及目录)URL路径
    getResourceAsStream(String path) 获取指定资源的输入流
    getServlet(String name) 返回指定的Servlet。
    log(String msg) 把指定消息写入Servlet的日志文件。
    getRealPath(".") 返回文件的当前路径。
    getRealPath("/")  返回服务器的主目录。

5.out对象(输出对象)

作用:向web浏览器内输出各种数据类型的内容,并且管理应用服务器上的输出缓冲区,缓冲区默认值是8KB。

5.1常用方法

print()/println()输出各种类型数据。
    clearBuffer()清除缓冲区的数据,并将数据写入客户端。
    clear()清除缓冲区的当前内容,但不将数据写入客户端。
    flush()输出缓冲区中的数据。
    newLine()输出一个换行符号。
    close()关闭输出流。

6.page对象(页面对象)

6.1常用方法

getClass()获取page对象的类。
    hashCode()获取page对象的hash码。
    equals(Object obj)判断page对象是否与参数中的obj相等
    copy(Object obj)把此page对象复制到指定的Object对象中
    clone()克隆当前的page对象
    toString()把page对象转换成String类型的对象

7.pageContext对象(页面上下文对象)

作用:取得任何范围的参数,通过pageContext对象可以获取JSP页面的out、request、response、session、application等对象,或者可以重新定向客户的请求等。

7.1常用方法

setAttribute(String name, Object attribute) :设置默认页面范围或特定对象范围之中的已命名对象。
    getAttribute(String name[,int scope] ):获取name对象的属性,可选参数scope表示在特定范围内。
    removeAttribute(String name [,int scope]):删除指定范围内的某个属性。
    forward(String relativeUrlPath):重定向到其它的页面。
    include(String relativeUrlPath):在当前位置包含另一文件。
    release():释放pageContext对象所占用的资源。
    getServletContext():获取当前页的ServletContext对象。
    getException():获取当前页的Exception对象。

8.config对象(配置对象)

作用:取得服务器的配置信息。config对象被封装为javax.servletConfig接口,通过pageContext.getServletConfig()方法可以获取一个config对象。

8.1常用方法

getServletContext()获取当前的Servlet上下文。
    getInitParameter(String name)获取指定的初始参数的值。
    getInitParameterNames()获取所有的初始参数的值。
    getServletName()获取当前的Servlet名称。

8.2获取初始化参数

1)、在web.xml文件中配置初始化参数:

  <?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>sanyang</servlet-name>
<jsp-file>/index.jsp</jsp-file>
<init-param> <!--设置初始化参数-->
<param-name>email</param-name>
<param-value>wy9wy163@163.com</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>sanyang</servlet-name>
<url-pattern>/index.jsp</url-pattern>
</servlet-mapping>
</web-app>

2)、在JSP页面中通过config对象中的getInitParameter()方法获取在web.xml文件中初始化的参数,程序代码如下:

  <%@ page contentType="text/html; charset=gb2312"%>
<body>
<center>
邮箱地址:<%=config.getInitParameter("email")%>
</center>
</body>

9.exception对象(异常对象)

9.1错误机制

exception异常对象指的是web应用程序所能够识别并能够处理的问题。在Java语言中,通过“try/catch”的关键在来处理异常信息情况,如果在JSP页面中出现没有捕捉到的异常信息,那么系统会自动生成exception对象,并把这个对象传送到page指令元素中设定的错误页面中,然后在错误提示页面中处理相应的exception对象。
    Exexception对象只能在错误页面中才可以使用,并在页面指令元素里存在isErrorPage=true的页面。

9.2常用方法

getMessage()获得当前的错误信息
    getLocalizedMessage()本地化语言的异常错误
    printStackTrace()以标准错误的形式输出一个错误和错误的堆载跟踪
    fillInStackTrace()重写异常的执行栈轨迹
    toString()关于异常错误的简单信息描述

9.3设置错误指定页面

首先,建立一个自定义的错误页面“error.jsp”,即在该页面的开始部分<%@ page%>标识符中添加代码: <%@ page isErrorPage=”true”%>
    然后,将其他页面指向该错误页面。在<%@page%>标识符中添加代码: <%@ page errorPage=”error.jsp”%>

JSP学习笔记(3)-JSP内置对象的更多相关文章

  1. jsp学习笔记之:内置对象

    application对象: 设置一个名为name,值为val的应用内共享的数据 <% application.setAttribute("name",val); %> ...

  2. JavaWeb学习笔记--2.3内置对象

    参考资料:http://www.cnblogs.com/qqnnhhbb/archive/2007/10/16/926234.html 目录 1. JSP内置对象分类2. 属性保存范围 2.1 pag ...

  3. javascript学习笔记 - 引用类型 单体内置对象

    七 单体内置对象 1.Global对象 不属于任何对象的属性和方法,都归于它.全局作用域中定义的变量.函数,都属于Global对象 1.1 URI编码  encodeURI <=>deco ...

  4. 学习笔记:javascript内置对象:字符串对象

    1.字符串的创建   var str = "Hello Microsoft!";   2.字符串属性   constructor  返回创建字符串属性的函数   length    ...

  5. JavaScript学习笔记(12)——JavaScript内置对象

    1.Number Javascript只有一种数字类型,可以有小数也可以没有,也可以使用科学计数法. var z=123e-5; // 0.00123 JavaScript 不是类型语言.与许多其他编 ...

  6. 学习笔记:javascript内置对象:数组对象

    1.数组对象的创建   1.设置一个长度为0的数组  var myarr=new array(); 2.设置一个长度为n的数组  var myarr=new arr(n); 3.声明一个赋值的指定长度 ...

  7. 学习笔记:javascript内置对象:日期对象

    2.日期对象的常用函数 2.日期对象的常用函数   Date 对象方法 方法 描述 Date() 返回当日的日期和时间. getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31). ...

  8. 学习笔记:javascript内置对象:数学对象

    1.数学对象 -Math 2.对象常用属性 3.常用函数 4.对数值类型数据保留小数的函数

  9. JSP学习(三)JSP中的九个内置对象

    JSP中的九个内置对象 NO. 内置对象 类型 1 pageContext javax.servlet.jsp.PageContext 2 request javax.servlet.http.Htt ...

  10. JSP JSP工作原理 JSP语法 JSP声明 JSP注释 JSP指令 jsp九大隐式/内置对象

    1 什么是JSP   1)为什么说,Servlet是一个动态Web开发技术呢?     Servlet是基于服务端的一种动态交互技术,     HttpServletRequest表示客户端到服务端的 ...

随机推荐

  1. Redux其实很简单(原理篇)

    在这一篇文章中,笔者将带大家编写一个完整的Redux,深度剖析Redux的方方面面,读完本篇文章后,大家对Redux会有一个深刻的认识. 核心API 这套代码是笔者阅读完Redux源码,理解其设计思路 ...

  2. jzoj5950

    我們發現如下結論: 1.只有編號小的點才會對編號大的點產生影響 2.當當前點的y坐標大小為1~i最大的,則不會被以前的點影響 於是,維護一個斜率單調遞增的隊列 當當前點的y坐標大小為1~i最大的,則這 ...

  3. QQ个人信息保护 | 攻的对面叫防

    近来我们愈来愈重视个人信息保护,当接到骚扰电话时,你心里或许在想(我手机号怎么又被别人知道的?别人是怎么知道我手机号的?),现在的时代,手机已或不可缺,QQ几乎每个人都在用.而有些人总想保护个人QQ资 ...

  4. zookeeper链接数导致kafka storm不能正常工作

    报错信息: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: org.apache ...

  5. 通过sessionStorage来根据屏幕宽度变化来加载不同的html页面

    因为项目需要,分别写了移动端和PC端的两个html页面,现在需要根据不同的屏幕宽度来加载对应的页面. 先说一下本人的思路-- 刚开始我直接在加载页面的时候判断屏幕宽度,然后加载相应的页面,大家是不是也 ...

  6. javascript数据结构与算法--二叉树遍历(先序)

    javascript数据结构与算法--二叉树遍历(先序) 先序遍历先访问根节点, 然后以同样方式访问左子树和右子树 代码如下: /* *二叉树中,相对较小的值保存在左节点上,较大的值保存在右节点中 * ...

  7. Window History对象

    History 对象属性 length 返回浏览器历史列表中的 URL 数量. History 对象方法 back() 加载 history 列表中的前一个 URL. window.history.b ...

  8. CentOS 安装Scrapy

    本文python版本是python3.5.3,关于升级python和安装pip请到:http://www.cnblogs.com/technologylife/p/6242115.html 安装相关包 ...

  9. java I/O系统总结

    1. InputStream : 从文件.网络.压缩包等中读取 需要的信息到程序中的变量 read();     read(byte []b ); mark(int readlimit); reset ...

  10. linux 系统清除日志 .sh

    clear.sh #!/bin/sh cat /dev/null > /var/log/syslogcat /dev/null > /var/adm/sylogcat /dev/null ...