zoukankan      html  css  js  c++  java
  • Java Server Pages 内置对象

    JSP九大内置对象:

         a、JSP内置对象是Web容器创建的一组对象,【不使用new关键字】就可以使用的内置对象。例如:out

         b、JSP九大内置对象:

             五大常用对象:   out,request,response,session,application

             其余四大对象:   Page,pageContext,exception,config

    1.out内置对象:

    2.request内置对象,常用方法如下:

         request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,

         主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。

         request对象的作用域为一次请求。

        a.  <%request.setCharacterEncoding("utf-8"); %>//解决中文乱码,但不能解决URL传递中文出现的乱码

            【<a href="request.jsp?username=李四">测试url传参数</a>】

             其解决方法为:在server.xml中修改Connector,在里面添加:URIEncoding="utf-8"

        b.  String getParameter(String xxx) 返回xxx指定参数的参数值

        c.  String[] getParameterValues(String xxx) 返回包含参数xxx的所有值的数组

        d.  void setAttribute(String,Object);存储此请求中的属性

        e.  int getServerPort();//返回服务器接受此请求所用的端口号

        f.  String getCharacterEncoding();//返回字符编码方式

        g.  void setCharacterEncodinng();//设置请求的字符编码方式

        h.  int getContentLength();//返回请求体的长途(以字节数)

        i.  String getRemoteAddr();//返回发送此请求的客户端IP地址

        j.  String getRealPath(String path);//返回虚拟路径的真实路径

        k.  String request.getContextPath();//返回上下文路径

    3.response内置对象

       response 代表的是对客户端的响应,它是HttpServletResponse类的实例。

       主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。

       response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其它页面的response对象对当前页面无效。

       常用方法如下:

                         a. String getCharacterEncoding();返回响应用是何种字符编码

                         b. void setContentType(String type);设置响应的MIME类型

                         c. PrintWriter getWriter();返回可以向客户端输出字符的一个对象

                         d. response.sendRedirect("xxx.jsp"); 请求客户端重定向:如定向到xxx.jsp页面

                         注意:通过response.getWriter()获取的PrintWriter对象,在打印输出时【提前】于内置的out对象。

                         不过在写好out.println()之后,可以通过flush()方法将缓冲区内容强制写出,这样就会把文字在前面显示。

    4.session内置对象(存在服务器内存中):

        什么是session:HttpSession类的实例,从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。

                             当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,

                             服务器应当通过某种办法知道这是同一个客户,这就需要session对象。

        session对象的ID:当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,

                             JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。

                             当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,

                             直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。

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

       session对象存在一定时间过期问题,所以存在session中的名值对会在一定时间后失去,可以通过更改session有效时间来避免这种情况。

       同时编程时尽量避免将大量有效信息存储在session中,request是一个不错的替代对象。

       session内置对象常用方法:

       a.long getCreationTime();//返回session创建时间

       b.public String getId();//返回session创建时JSP引擎为它设的唯一ID号

       c.public Object setAttribute(String name,Object value);//使用指定名称将对象绑定到此会话

       d.public Object getAttribute(String name);//返回此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null

       e.String[] getVauleNames();//返回一个包含session中所有可用属性的数组

       f.int getMaxInactiveInterval();//返回两次请求间隔多长时间此session被取消(单位秒)

    session生命周期:分为三步,一:创建 二:活动 三:销毁

       一.创建session的过程其实就是上文中介绍sessionID的过程。

       二. 活动:

            ①某次会话当中通过超链接打开的新页面属于同一次会话

            ②只要当前会话页面没有全部关闭,重新打开的浏览器窗口访问同一个项目资源时属于同一次会话

            ③除非本次会话的所有页面都关闭后在重新访问某个JSP或者servlet将会创建新的会话

            注意:注意此时原有会话还存在,只是这个旧的Session仍然存在于服务端,只不过再也没有客户端会携带它然后交给服务端校验

       三. 销毁:session的销毁只有三种方式

            ①调用session.invalidate()方法

            ②Session过期(超时),Tomcat默认设置时间为30分钟,可以通过session.setMaxInactiveInterval(时间);单位是秒,来设置session的时长。

            ③服务器重新启动

            在web.xml文件中配置超时会话销毁也可以

                <!-- 设置会话一分钟后过期,注意此处的单位为分钟-->

               <session-config>

                     <session-timeout>1</session-timeout>

               </session-config>

            

    5.Application内置对象

        a、实现了用户间数据的共享,可存放全局变量。(类似静态对象)

        b、开始于服务器启动,终止于服务器的关闭(生命周期)

        c、在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行操作

        d、在任何地方对application对象属性进行操作,都将影响到其他用户对此的访问

        e、application对象是ServletContext类的实例

        Application对象常用方法:

        a.pblic void setAttribute(String name,Object value);使用指定名称将对象绑定到此会话

        b.public Object getAttribute(String name);返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null.

        c.Enumeration getAttributeNames();返回所有可用属性那个名的枚举

        d.String getServerInfo();返回JSP(SERVER)引擎及版本号6:page内置对象

        page对象就是指向当前JSP页面本身,有点像类中的this指针,它是java.lang.Object类的实例。常用方法如下:

        a. class getClass(); //返回此Object类

        b. int hashCode(); //返回此Object的hash码

        c. boolean equals(Object obj); //判断此Object是否与指定的Object对象相等

        d. void copy(Object obj); //把此Object复制到指定的Object对象中

        e. Object clone(); //克隆此Object对象

        f. String toString(); //把此Object对象转换为String类的对象

        g. void notify(); //唤醒一个等待的线程

        h. void notyfyAll(); //唤醒所有等待的线程

         i. void wait(int timeout); //使一个线程处于等待直到timeout结束或被唤醒

         j. void wait(); //使一个线程处于等待直到被唤醒

    7.pageContext内置对象

         * pageContext对象提供了对JSP页面内所有的对象及名字空间的访问

         * pageContext对象可以访问到本页所在的session,也可以本页所在的application的某一属性值

         * pageContext对象相当于页面中所有功能的集大成者

         * pageContext对象的本类名也叫pageContext

         *JspWriter getOut(); 返回当前客户端响应被使用的JspWriter流(out)

         *HttpSession getSession(); 返回当前页面中HttpSession对象(session)

         *Object getPage(); 返回当前页面的Object对象(Object)

         *ServeletRequest getRequest(); 返回当前页面的ServletRequest对象(request)

         *ServeletResponse getResponse(); 返回当前页面的ServletResponse对象(response)

         *void setAttribute(String name,Object attribute); 设置属性及属性值

         *void getAttribute(String name,int scope); 在指定范围内取属性的值

         *int getAttributeScope(String name); 返回某属性的作用范围

         *void forward(String relativeUrlPath); 使当前页面重导到另一页面

         *void include(String relativeUrlPath); 在当前位置包含另一文件

    8.config内置对象

        config对象是在一个servlet初始化时,JSP引擎向它传递信息用的,

        此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)

        常用方法:

        a.ServletContext getServletContext();返回含有服务器相关信息的ServletContext对象

        b.String getInitParameter(String name);返回初始化参数的值

        c.Enumeration getInitParameterNames();返回Servlet初始化所需所有参数的枚举

    9.Execption对象

        exception对象是一个异常对象,当一个页面在运行过程中规发生了异常,就会产生这个对象。

        如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。

        实际上是java.lang.Throwable的对象,常用方法如下:

        a. String getMessage();返回描述异常的消息

        b. String toString();返回关于异常的简短描述消息

        c. void printStackTrace();显示异常及其栈轨迹

        d. Throwable FillInStackTrace();重写异常的执行栈轨迹

        使用方法:

        a. 在可能会抛出异常的页面page指令里,设置errorPage="xxx.jsp",表示出现异常将抛给xxx页面去处理

        b. 在xxx页面里,要使用Exception对象,需要把page指令里的isErrorPage属性设置为true。

  • 相关阅读:
    !clrstack未显示任何方法名
    !dumpheap参数和SOS帮助系统的一些一般信息
    WinDbg Script---显示RCW对象引用的COM对象
    为什么不能将2个调试器附加到1个进程
    什么是互操作调试(Interop-Debugging)?
    为什么托管调试与本机调试不同?
    在WinDBG中管理源代码窗口
    如何从转储文件确定 /LARGEADDRESSAWARE
    Dump文件数据存储格式(九)
    Windbg命令系列---!cpuid(CPU信息)
  • 原文地址:https://www.cnblogs.com/zhangygl/p/4298387.html
Copyright © 2011-2022 走看看