• Jsp的九个内置对象


     个人博客地址:https://www.vastyun.com

    一、什么是内置对象?
    在jsp开发中,会频繁使用到一些对象。例如HttSession,ServletContext,HttpServletRequest。如果我们每次要使用这些对象都去创建这些对象,就会显得非常麻烦。所以Sun公司设计Jsp时,在jsp页面加载完毕之后就会自动帮开发者创建好这些对象,从而开发者只需要直接使用这些对象调用方法即可。这些创建好的对象就叫内置对象。
    例如:

    1 session.getId();

    不需要再写HttpSession session;
    二、九大内置对象简介

    内置对象名 类型
    request HttpServletRequest
    response  HttpServletResponse
    session HttpSession
    application ServletContext
    config ServletConfig
    out JspWriter
    page Object(this)
    exception Throwable
    pageContext  PageContext

    1.request对象

    该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息。
    request常用的方法:

    getParameter(String arg0);//获取对象提交的表单信息。
    getProtocol();//获取客户端使用的协议。
    getServletPath();//获取客户提交信息的页面。
    getMethod();获取客户提交信息的方法。
    getHeader(Enumeration args);获取Http头文件。
    getRemoteHost();//获取客户机名称。
    getServerName();//获取服务器名称。
    getServerPort();//获取服务端口号。
    //获取客户端提交的所有表单信息所有信息,并输出
    Enumeration enums = request.getParameterNames();
    while(enums.hasMoreElements()){
    String s=(String)enums.nextElement();
    String paramValue = getParameter(s);
    out.write(s+"=" + paramValue);
    }

    2.response对象
    对客户的请求作出动态的响应,向客户端发送请求。这个对象中封装了向客户端发送的数据、发送的响应头、响应状态码。
    response常用方法:

    //通过设置响应头控制浏览器以UTF-8的编码显示数据。
    response.setHeader("text/html;charset=utf-8");
    //设置页面自动刷新时间,设置每隔3秒刷新一次
    response.setHeader("refresh","3"); 
    //设置重定向
    response.sendRedirect("http://baidu.com");

    3.session对象
    用于保存会话数据.
    session常用方法:

    getId();//获取session的Id值,根据浏览器的请求。
    isNew();//判断是否是新的session
    invalidate();//让session失效
    setMaxInactiveInterval(int interval);//设置会话的最大持续时间,单位是秒,负数表明会话永不失效。
    getMaxInActiveInterval();//获取会话的最大持续时间。

    4.application对象
    用于保存所有应用系统中的公有数据,服务器启动并且自动创建application对象以后,只要没有关闭服务器,application对象将一直存在,所有用户可以共享application对象。
    5.config对象
    用于获取服务器初始化参数。
    config常用的方法:

    getInitParameter(String name);//获取默认的参数值
    getInitParameterNames()//返回枚举类型,获取参数名

    6.out对象

    JspWiter类实例,用于向客户端发送文本数据,相当于带缓存的PrintWriter。
    writer();//将内容写到缓冲区,不是输出到页面。向外写出的条件:缓存区满了;刷新缓存区;关闭缓冲区;执行完jsp页面。默认的缓冲区大小为8kb。
    getBufferSize();//获取缓冲区大小
    getRemaining();//缓冲区剩余大小
    clear();//清除缓冲区的当前内容
    flush();//刷新缓冲区,可以将缓冲区的内容展示到jsp页面。
    close();//关闭缓冲区

    7.page对象
    表示当前一个jsp页面,可以理解为一个对象的本身,拜一个jsp当做对象来看待。page对象在开发中几乎不用。
    8.exception对象
    用于抛出异常,主要用于抛出异常的简短信息,如果一个jsp页面要应用此对象,就必须把isErrorPage设置为true,默认情况下是false。
    exception常用方法:

    getMessage();//返回描述异常的消息
    toString();//返回关于异常的简短描述消息

    9.pageContext对象
    pageContext对象时jsp技术中重要的一个对象。这个对象不仅封装了对其他8大隐式对象的引用,它自身还是一个域对象。可以用来保存数据。并且这个对象还封装了web开发中经常设计到的一些操作,例如引入和跳转到其他资源,检索其他域对象中的属性等。
    通过pageContext获取其他对象
    getException方法返回exception隐式对象
    getPage方法返回page隐式对象
    getRequest方法返回request隐式对象
    getResponse方法返回response隐式对象
    getServletConfig方法返回config隐式对象
    getServletContext方法返回application隐式对象
    getSession方法返回session隐式对象
    getOut方法返回out隐式对象

    三、编码举例page.jsp

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2 import="java.util.*"
     3 isErrorPage="true"
     4     pageEncoding="UTF-8"%>
     5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     6 <html>
     7 <head>
     8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     9 <title>Insert title here</title>
    10 </head>
    11 <body>
    12 <%
    13 //-----------------------request对象应用------------------------
    14 //获取对象提交的表单请求
    15 String id = request.getParameter("id");//在地址栏url后面带上参数id=s145
    16 //获取客户端使用的协议
    17 String portValue = request.getProtocol();
    18 //获取客户提交信息的页面
    19 String pagePath = request.getServletPath();
    20 //获取客户提交信息的方法
    21 String methodValue = request.getMethod();
    22 //获取http头信息
    23 String header = request.getHeader("accept");
    24 //获取客户机名称
    25 String remoteValue = request.getRemoteHost();
    26 //获取服务器名称
    27 String serverName = request.getServerName();
    28 //获取表单提交的所有信息,并输出
    29 Enumeration enums = request.getParameterNames();
    30 while (enums.hasMoreElements()){
    31     //获取参数名
    32     String s = (String)enums.nextElement();
    33     //获取参数值
    34     String paramValue = request.getParameter(s);
    35     //输出参数名和值
    36     out.write(s + " = " + paramValue+"<br />");
    37 }
    38 //--------------------------response对象应用--------------------
    39 //设置自动刷新时间
    40 response.setHeader("refresh", "3");
    41 //获取响应头信息
    42 String responseHeader = response.getHeader("refresh");
    43 //设置重定向
    44 //response.sendRedirect("http://vastsum.com");
    45 //--------------------------session应用------------------------
    46 //获取sessionId
    47 String sid = session.getId();
    48 //判断是否为新session
    49 session.isNew();
    50 //让session失效
    51 //session.invalidate();
    52 //设置会话的最大持续时间,单位为秒
    53 session.setMaxInactiveInterval(60);
    54 //获取会话的最大持续时间
    55 int nums = session.getMaxInactiveInterval();
    56 //---------------------------out应用---------------------------
    57 //将内容写出缓冲区
    58 out.write(id+"<br />");
    59 out.write(portValue+"<br />");
    60 out.write(pagePath+"<br />");
    61 out.write(methodValue+"<br />");
    62 out.write(header+"<br />");
    63 out.write(remoteValue+"<br />");
    64 out.write(serverName+"<br />");
    65 out.write(responseHeader+"<br />");
    66 out.write(sid+"<br />");
    67 out.write(nums+"<br />");
    68 //获取缓冲区大小
    69 out.getBufferSize();
    70 //获取缓冲区剩余大小
    71 out.getRemaining();
    72 //刷新缓冲区
    73 out.flush();
    74 //-------------------------exception应用-------------------------
    75 //exception.getMessage();
    76 %>
    77 
    78 </body>
    79 </html>
  • 相关阅读:
    文本特殊符号汇集
    十大编程算法助程序员走上高手之路
    单例模式(Singleton)
    flink time and watermark
    关于maven依赖关系的问题
    幂等
    乐观锁和悲观锁的一个例子
    Elasticsearch logstash filter
    ELK filebeat的安装
    使用 Python 验证数据集中的体温是否符合正态分布
  • 原文地址:https://www.cnblogs.com/vastsum/p/5985060.html
Copyright © 2020-2023  润新知