zoukankan      html  css  js  c++  java
  • XPAGES 中CGI变量的获取

    In XPages, CGI variables are also available, but you need to write some code to get them via the JSF context.


    Here is a complete, functional JavasScript example of how to get and print the remote address of the incoming browser request:

    print("Remote Address: " + facesContext.getExternalContext().getRequest().getRemoteAddr());



    This server-side JavaScript library makes most useful CGI variables conveniently available in a new "CGIVariables" JavaScript object: 

    /* 
          This server-side JavaScript library implements a class named "CGIVariables" which allows for easy access 
          to most CGI variables in XPages via JavaScript. 
          For example, to dump the remote users name, IP address and browser string to the server console, use: 
    
    
          var cgi = new CGIVariables(); 
          print ("Username: " + cgi.REMOTE_USER); 
          print ("Address : " + cgi.REMOTE_ADDR); 
          print ("Browser : " + cgi.HTTP_USER_AGENT); 
                  
          Written July 2008 by Thomas Gumz, IBM. 
    */ 
    
    
    function CGIVariables() { 
    
    
          // setup our object by getting refs to the request and servlet objects         
          try { 
                  this.request = facesContext.getExternalContext().getRequest(); 
                  this.servlet = facesContext.getExternalContext().getContext(); 
          } catch(e) { 
                  print (e.message); 
          } 
    
    
          this.prototype.AUTH_TYPE            = this.request.getAuthType(); 
          this.prototype.CONTENT_LENGTH       = this.request.getContentLength(); 
          this.prototype.CONTENT_TYPE         = this.request.getContentType(); 
          this.prototype.CONTEXT_PATH         = this.request.getContextPath(); 
          this.prototype.GATEWATY_INTERFACE   = "CGI/1.1"; 
          this.prototype.HTTPS                = this.request.isSecure() ? "ON" : "OFF"; 
          this.prototype.PATH_INFO            = this.request.getPathInfo(); 
          this.prototype.PATH_TRANSLATED      = this.request.getPathTranslated(); 
          this.prototype.QUERY_STRING         = this.request.getQueryString(); 
          this.prototype.REMOTE_ADDR          = this.request.getRemoteAddr(); 
          this.prototype.REMOTE_HOST          = this.request.getRemoteHost(); 
          this.prototype.REMOTE_USER          = this.request.getRemoteUser(); 
          this.prototype.REQUEST_METHOD       = this.request.getMethod(); 
          this.prototype.REQUEST_SCHEME       = this.request.getScheme(); 
          this.prototype.REQUEST_URI          = this.request.getRequestURI(); 
          this.prototype.SCRIPT_NAME          = this.request.getServletPath(); 
          this.prototype.SERVER_NAME          = this.request.getServerName(); 
          this.prototype.SERVER_PORT          = this.request.getServerPort(); 
          this.prototype.SERVER_PROTOCOL      = this.request.getProtocol(); 
          this.prototype.SERVER_SOFTWARE      = this.servlet.getServerInfo(); 
    
    
          // these are not really CGI variables, but useful, so lets just add them for convenience 
          this.prototype.HTTP_ACCEPT          = this.request.getHeader("Accept"); 
          this.prototype.HTTP_ACCEPT_ENCODING = this.request.getHeader("Accept-Encoding"); 
          this.prototype.HTTP_ACCEPT_LANGUAGE = this.request.getHeader("Accept-Language"); 
          this.prototype.HTTP_CONNECTION      = this.request.getHeader("Connection"); 
          this.prototype.HTTP_COOKIE          = this.request.getHeader("Cookie");         
          this.prototype.HTTP_HOST            = this.request.getHeader("Host");         
          this.prototype.HTTP_REFERER         = this.request.getHeader("Referer"); 
          this.prototype.HTTP_USER_AGENT      = this.request.getHeader("User-Agent"); 
    }



    You can also find this server-side JavaScript library in the Domino 8.5 "discussion8.ntf" template as "xpCGIVariables..jss". 
    Below is a sample XPage which uses the script library to print some CGI variables to the server console: 

    <?xml version="1.0" encoding="UTF-8"?> 
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core" 
          xmlns:xc="http://www.ibm.com/xsp/custom" createForm="false"> 
          <xp:this.resources> 
                  <xp:script src="/xpCGIVariables.jss" clientSide="false"></xp:script> 
          </xp:this.resources> 
          <xp:this.beforePageLoad><![CDATA[#{javascript:var cgi = new CGIVariables(); 
    print ("Username: " + cgi.REMOTE_USER); 
    print ("Address : " + cgi.REMOTE_ADDR); 
    print ("Browser : " + cgi.HTTP_USER_AGENT); 
    }]]></xp:this.beforePageLoad> 
    </xp:view>



    Note: For performance reasons, it is recommended to cache CGI variables (for example, in the sessionScope) once you retrieved the

  • 相关阅读:
    [Windows]wmic查看运行进程的参数
    Java8中的foreach跳出循环break/return
    Python Learning(6)字典
    SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(三): 整合阿里云 OSS 服务 -- 上传、下载文件、图片
    SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(四): 整合阿里云 短信服务、整合 JWT 单点登录
    SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(五): 数据表设计、使用 jwt、redis、sms 工具类完善注册登录逻辑
    Servlet、Jsp
    BIO、NIO、AIO
    HashMap (JDK1.8) 分析
    mysql常见笔试题
  • 原文地址:https://www.cnblogs.com/hannover/p/5013323.html
Copyright © 2011-2022 走看看