JSP(Java Server Page)九大内置对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP(Java Server Page)九大内置对象相关的知识,希望对你有一定的参考价值。

× Web程序的请求相应模式(请求[request]、响应[response])

× form method="get"和method="post"提交方式的区别
                                                                   
        1.get:以明文形式通过url进行参数的传递,数据能在url获取,提交的数据最多不超过2KB,安全性低但效率比post高。        
            适用于提交数据量不大,安全性不高的数据。eg:搜索、查询等                            
        2.post:将用户提交的信息封装在html HEAD内。                                      
            适用提交数据量大,安全性高的用户信息。eg:注册、修改、上传                             
                                                              

×请求转发与请求重定向的区别

操作名 行为 方法 描述
请求重定向 客户端行为 response.sendRedirect("url path"); 相当于两次请求,前一次的请求对象不会被保存,且url地址会发生变化
请求转发 服务端行为 request.getRequestDispatcher("urlpath").forward(request,response); 一次请求,转发后请求对象会被保存,地址栏不会变化

通俗易懂点讲:
  重定向:这事不归我管,你自己走去XXX弄   (客户端行为)
     转发:这事不归我管,但我能帮你转交给XXX(服务端行为)

 

九大内置对象(out、request、response、session、application、page、pageContext、exception)

1.out对象(JspWriter类的实例,向客户端[浏览器]输出内容常用的对象)

  常用方法:

  1. void println(); 向客户端打印字符串。

  2. void clear(); 清除缓存区的内容,如果在flush之后调用会抛出异常。

  3. void clearBuffer(); 清除缓冲区的内容,如果在flush之后调用不会抛出异常。

  4. void flush(); 将缓冲区内容输出到客户端。

  5. int getBufferSize(); 返回缓冲区以字节数的大小,若不设缓冲区则为0。

  6. int getRemaining() 返回缓冲区剩余可用空间大小。

  7. boolean isAutoFlush(); 当缓冲区满时,是否自动清空,若否,则抛出异常。

  8. void close(); 关闭输出流。

 2.request对象  |—1.HttpServletRequest的实例对象;
          |—2.客户端的请求信息被封装到该对象中,通过该对象获取信息,并且做出响应;
          |—3.该对象具有请求域,即在完成用户请求之前,该对象一直有效;

  常用方法:

  1. String getParameter(String param); 返回指定参数param的参数值。

  2. String[] getParameterValues(String param); 返回包含参数param的所有参数值的数组。

  3. void setAttribute(String param,Object obj); 将obj对象以param指明保存到request对象中。

  4. Object getAttribute(String param); 返回指定参数名的属性值。

  5. String getContextType(); 得到请求体的MIME类型

  6. String getProtocol(); 返回请求体的协议类型以及版本号

  7. String getServerName(); 返回接收请求体的服务器主机名

  8. int getServerPort(); 返回接收请求体的服务器的端口号

  9. String getCharacterEncoding(); 返回字符集编码

  10. void setCharacterEncoding(); 设置字符集编码

  11. int getContentLength(); 以字节数返回请求体的长度

  12. String getRemoteAddr(); 返回发送该请求的客户端IP地址

  13. String getRealAddr(); 返回虚拟路径的真实地址

  14. String getContextPath(); 返回上下文路径(项目名)

 3.response对象   |—1.HttpServletResponse的实例对象; 
              |—2.response对象包含了响应客户端请求的有关信息,但在JSP中很少直接使用它;
              |—3.该对象具有请求域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其它页面的response对象对当前页面无效;

  常用方法:

  1. String getCharacterEncoding(); 返回响应使用的字符编码
  2. void setContentType(String type); 设置响应的MIME类型
  3. PrintWriter getWriter(); 返回可以向客户端输出字符的一个对象
    注意:PrintWriter与内置对象out的区别
  4. sendRedirect(java.lang.String location); 重定向,重新定向客户端请求。

 4.session对象  |—1.HttpSession的实例(表示客户端与服务器的一次会话); 
            |—2.session是指用户浏览网站时,从进入网站开始便会产生session,直到浏览器关闭时,session也便随之销毁;
            |—3.session实际上是一个特定的时间观念;

  常用方法:

  1. long getCreationTime(); 返回session创建时的时间(单位 毫秒)
  2. String getId(); 返回session的ID(ID为JSP引擎设置)
  3. Object setAttribute(String name,Object obj); 使用指定名称将对象捆绑在此次会话中(设置自定义属性[name]、属性值[obj])
  4. Object getAttribute(String name); 返回此次会话中指定属性名的属性值,若不存在,返回null
  5. String[] getValueNames(); 返回一个包含此session中所有可用属性的数组
  6. int getMaxInactiveInterval; 返回该session的最大期限[单位 秒](若两次请求间隔超过期限时间,则该session将被销毁)
  7. voidsetMaxInactiveInterval(int second);设置session的最大期限[单位 秒]

   × session的生命周期

    『 1. 创建 - 当浏览器登录页面时便创建session

      2. 活动

      3. 销毁  - 方式一:session.invalidate();

         - 方式二:session超出最大期限 --- Tomcat默认期限为30分钟
         设置最大期限:
             1) 调用方法[setMaxInactiveInterval]
             2) 在web.xml配置 [ 单位 分钟] 
               <session-config>
                <session-timeout>10</session-timeout>
              </session-config> 

         - 方式三:服务器重启

      注意:当关闭该session相关的所有页面时,再次打开页面将会创建新的session

 5.Application对象   |—1.ServletContext的实例(实现用户间数据的共享,可存放全局变量); 
              (说白了就是游走于整个web应用的对象撒~)
               |—2.application对象随着服务器的启动而产生,随着服务器的关闭而消亡;
               |—3.在任何地方对application对象操作,都会影响其他用户的访问;

   常用方法:

  1. void setAttribute(String name,Object obj); 设置自定义属性[name]、属性值[obj]
  2. Object getAttribute(String name); 返回指定属性名的属性值,若不存在,返回null
  3. Enumeration getAttributeNames(); 返回所有可用属性名的枚举
  4. String getServerInfo(); 返回JSP(servlet)引擎号以及版本号

 6.page对象(指JSP页面本身)

  常用方法:

  1. class getClass(); 返回该Object的Class
  2. int hashCode(); 返回该Object的hash码
  3. boolean equals(Object obj); 判断该Object是否与指定的Object相等
  4. void copy(Object obj); 将该Object拷贝到指定的Object中
  5. Object clone(); 克隆该Object,返回新的Object
  6. String toString(); 将该Object对象转换成String对象
  7. void notify(); 唤醒一个等待的线程
  8. void notifyAll(); 唤醒所有等待的线程
  9. void wait(int timeout); 使一个线程处于等待状态,直到timeout结束或者被notify(唤醒)
  10. void wait(int timeout); 使一个线程处于等待状态,直到被notify(唤醒)

 7.pageContext对象   |—1.pageContext的实例(对JSP页面所有对象以及名称空间的访问); 
                 |—2.能获取当前页面的session、application;

  常用方法:

  1. JspWriter getOut(); 返回当前客户端响应被使用的JspWriter流(out)
  2. HttpSession getSession(); 返回当前页中的HttpSession对象(session)
  3. Object getPage(); 返回当前页的Object对象(page)
  4. ServletRequest getRequest(); 返回当前页面的ServletRequest对象(request)
  5. ServletResponse getResponse(); 返回当前页面的ServletResponse对象(response)
  6. void setAttribute(String name,Object); 设置自定义属性[name]、属性值[obj]
  7. Object getAttribute(String name,int scope); 返回指定范围内指定属性名的属性值,若不存在,返回null
  8. int getAttributeScope(String name); 返回某属性的作用范围
  9. void forward(String utlPath); 转发到urlPath页面
  10. void include(String utlPath); 当前位置包含另一个文件

 8.config对象(当servlet初始化时,JSP引擎向它传递信息,包括参数(形式以键值对呈现)以及服务器的有关信息
    说白了就是在serlvet初始化的时候将config以参数形式传递给servlet的构造方法

  常用方法:

  1. ServletContext getServletContext(); 返回含有服务器相关信息的SerlvetContext对象
  2. String getInitParamter(String name); 返回初始化参数的值
  3. Enumeration getInitParamterNames(); 返回Serlvet初始化所需所有参数的枚举

 9.exception对象(异常对象,当一个页面运行过程中发生异常,便会产生该对象)
    当一个JSP要应用该对象,则必须在page指令内将isErrorPage设为true,且在可能会发生错误的页面的page指令中设置 errorPage="JspPageName" 来指定该页面

  常用方法:

  1. String getMessage(); 返回描述异常的消息
  2. String toString(); 返回关于异常的简短描述信息
  3. void printStackTrace(); 显示异常以及其栈轨迹
  4. Throwable FillInStakTrace(); 重写异常的执行栈轨迹





























以上是关于JSP(Java Server Page)九大内置对象的主要内容,如果未能解决你的问题,请参考以下文章

面试题:jsp九大内置对象

jsp九大内置对象是哪些?

JSP中的九大内置对象

JSP中的九大内置对象

JSP九大内置对象与Servlet学习笔记[转]

JSP基础--九大内置对象