zoukankan      html  css  js  c++  java
  • JSP内置对象及常用方法

    JSP内置对象及常用方法

     

    jsp九大内置对象及四个作用域:

    何为作用域

      先让我们看看效果:

      大概流程是这样的,我们访问index.jsp的时候,分别对pageContext, request, session,application四个作用域中的变量进行累加。(当然先判断这个变量是不是存在,如果变量不存在,则要把变量初始化成1)。计算完成后就从index.jsp执行forward跳转到test.jsp。在test.jsp里再进行一次累加,然后显示出这四个整数来。

      从显示的结果来看,我们可以直观的得出结论:

      page里的变量没法从index.jsp传递到test.jsp。只要页面跳转了,它们就不见了。

      request里的变量可以跨越forward前后的两页。但是只要刷新页面,它们就重新计算了。

      session和application里的变量一直在累加,开始还看不出区别,只要关闭浏览器,再次重启浏览器访问这页,session里的变量就重新计算了。

        application里的变量一直在累加,除非你重启tomcat,否则它会一直变大。

    作用域规定的是变量的有效期限

      如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里。

      从把变量放到pageContext开始,到jsp页面结束,你都可以使用这个变量。

      如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期。

      所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过程中可能使用forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这个变量。

      如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。

      所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这中间的过程。这个过程可能包含多个请求响应。也就是说,只要用户不关浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,就可以在当前会话的所有请求里使用。

      如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个应用。

      整个应用是指从应用启动,到应用结束。我们没有说“从服务器启动,到服务器关闭”,是因为一个服务器可能部署多个应用,当然你关闭了服务器,就会把上面所有的应用都关闭了。

      application作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一直可以使用。

      与上述三个不同的是,application里的变量可以被所有用户共用。如果用户甲的操作修改了application中的变量,用户乙访问时得到的是修改后的值。这在其他scope中都是不会发生的,page, request,session都是完全隔离的,无论如何修改都不会影响其他人的数据。

    request常用方法

    l获得客户机信息

     •getRequestURL方法返回客户端发出请求时的完整URL。

     •getRequestURI方法返回请求行中的资源名部分。

     •getQueryString 方法返回请求行中的参数部分。

     •getRemoteAddr方法返回发出请求的客户机的IP地址

     •getRemoteHost方法返回发出请求的客户机的完整主机名

     •getRemotePort方法返回客户机所使用的网络端口号

     •getLocalAddr方法返回WEB服务器的IP地址。

     •getLocalName方法返回WEB服务器的主机名

     •getMethod得到客户机请求方式

    response对象

    response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。

    1  String getCharacterEncoding() 返回响应用的是何种字符编码

    2  ServletOutputStream getOutputStream() 返回响应的一个二进制输出流

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

    4  void setContentLength(int len) 设置响应头长度

    5  void setContentType(String type) 设置响应的MIME类型

    6  sendRedirect(java.lang.String location) 重新定向客户端的请求

     

    session对象

    session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例

    1  long getCreationTime() 返回SESSION创建时间

    2  public String getId() 返回SESSION创建时JSP引擎为它设的惟一ID号

    3  long getLastAccessedTime() 返回此SESSION里客户端最近一次请求时间

    4  int getMaxInactiveInterval() 返回两次请求间隔多长时间此SESSION被取消(ms) 

    5  String[] getValueNames() 返回一个包含此SESSION中所有可用属性的数组

    6  void invalidate() 取消SESSION,使SESSION不可用

    7  boolean isNew() 返回服务器创建的一个SESSION,客户端是否已经加入 

    8  void removeValue(String name) 删除SESSION中指定的属性

    9  void setMaxInactiveInterval() 设置两次请求间隔多长时间此SESSION被取消(ms)


    jsp动作及作用
    JSP共有以下6种基本动作:
        jsp:include:在页面被请求的时候引入一个文件;
        jsp:useBean:寻找或者实例化一个JavaBean。;
        jsp:setProperty:设置JavaBean的属性。;
        jsp:getProperty:输出某个JavaBean的属性;
        jsp:forward:把请求转到一个新的页面;
        jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记
  • 相关阅读:
    动态规划——Best Time to Buy and Sell Stock IV
    动态规划——Split Array Largest Sum
    动态规划——Burst Ballons
    动态规划——Best Time to Buy and Sell Stock III
    动态规划——Edit Distance
    动态规划——Longest Valid Parentheses
    动态规划——Valid Permutations for DI Sequence
    构建之法阅读笔记05
    构建之法阅读笔记04
    构建之法阅读笔记03
  • 原文地址:https://www.cnblogs.com/liubin1988/p/8999195.html
Copyright © 2011-2022 走看看