• JSP学习笔记(3)-JSP内置对象


      有些对象不用声明就可以在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”%>

  • 相关阅读:
    Spark机器学习基础三
    Spark机器学习基础二
    如何在Windows上的Jupyter Notebook中安装和运行PySpark
    Spark机器学习基础一
    基于卷积神经网络CNN的电影推荐系统
    相似度计算方法
    调参贝叶斯优化(BayesianOptimization)
    isStatic:检测数据是不是除了symbol外的原始数据
    获取当前页面url指定参数值
    Vue.js 运行环境搭建详解(基于windows的手把手安装教学)
  • 原文地址:https://www.cnblogs.com/pinnsvin/p/5517759.html
Copyright © 2020-2023  润新知