美文网首页
17.2JSP内置对象

17.2JSP内置对象

作者: 孔垂云 | 来源:发表于2017-05-21 17:24 被阅读0次

    一、JSP运行原理

    每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理。JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet) ,然后按照servlet的调用方式进行调用。

    由于JSP第一次访问时会翻译成servlet,所以第一次访问通常会比较慢,但第二次访问,JSP引擎如果发现JSP没有变化,就不再翻译,而是直接调用,所以程序的执行效率不会受到影响。

    JSP引擎在调用JSP对应的_jspServlet时,会传递或创建9个与web开发相关的对象供_jspServlet使用。JSP技术的设计者为 便于开发人员在编写JSP页面时获得这些web对象的引用,特意定义了9个相应的变量,开发人员在JSP页面中通过这些变量就可以快速获得这9大对象的引 用。

    二、认识九个内置对象

    • 1.pageContext javax.servlet.jsp.PageContext
    • 2.request javax.servlet.http.HttpServletRequest
    • 3.response javax.servlet.http.HttpServletResponse
    • 4.session javax.servlet.http.HttpSession
    • 5.application javax.servlet.ServletContext
    • 6.config javax.servlet.ServletConfig
    • 7.out javax.servlet.jsp.JspWriter
    • 8.page java.lang.Object
    • 9.exception java.lang.Throwable

    这里面最常用的是request、response、session

    1.request对象

    request对象是javax.servlet.http.HttpServletRequest 类的实例。每当客户端请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表这个请求。request对象提供了一系列方法来获取HTTP头信息,cookies,HTTP方法等等。客户端的请求信息被封装在request对象中,通过它才能了解到用户的需求,然后做出响应。它是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求之前,该对象一直有效。常用方法如下:

    String getParameter(String name) 返回name指定参数的参数值
    String[] getParameterValues(String name) 返回包含参数name的所有值的数组
    void setAttribute(String, Object) 存储此请中的属性
    object getAttribute(String, Object) 返回指定属性的属性值
    String getContentType() 得到请求体的MIME类型
    String getProtocol() 返回请求用的协议类型及版本号
    String getServerName() 返回接受请求的服务器主机名
    

    2.response对象

    response对象是javax.servlet.http.HttpServletResponse类的实例。当服务器创建request对象时会同时创建用于响应这个客户端的response对象。同时response对象具有页面(Page)作用域,即访问一个页面时,该页面的response对象只对本次访问有效,其他页面的response对象对当前页面无效。

    response对象也定义了处理HTTP头模块的接口。通过这个对象,开发者们可以添加新的cookies,时间戳,HTTP状态码等等。

    常用方法:

    String setCharacterEncoding()//设置响应字符编码格式
    String getCharacterEncoding()//获取响应字符编码格式
    void setContentType(String type)//设置响应MIME类型
    sendRedirect([Java](http://lib.csdn.net/base/javase).lang.String location)//请求重定向
    PrintWriter getWriter()//获取打印输出对象
    

    3.Session对象

    当用户打开浏览器,访问某个网站时,服务器就会在服务器的内存为该浏览器分配一个空间,改空间被这个浏览器独占。这个空间就是session空间,该控件中的数据默认存储时间为30min,可以修改。session.setMaxInactiveInterval(n秒);

    如何使用Session:

    1 得到session
      在servlet中:HttpSession hs=request.getSession(true);
      JSP中,session是一个内置对象,可以直接使用、
    2 向session添加属性
      servlet中:hs.setAttribute(String name,Object o)
      JSP中 session.setAttribute(String name,Object o)
    3 从session得到某个属性
      servlet中:hs.getAttribute(String name);
      JSP中: session.getAttribute(String name);
    4 从session删除某个属性
      servlet中:hs.removeAttribute(String name);
      JSP中:session.removeAttribute(String name);
    

    在实际开发中,这三个对象几乎处处用到,学习web开发的首要条件就是学会这三个对象的使用。

    相关文章

      网友评论

          本文标题:17.2JSP内置对象

          本文链接:https://www.haomeiwen.com/subject/gvomxxtx.html