6.1 cgi变量概述
如果你是从传统的cgi编程转而学习java servlet,或许已经习惯了“cgi变量”这一概念。cgi变量汇集了各种有关请求的信息:
部分来自http请求命令和请求头,例如content-length头;
部分来自socket本身,例如主机的名字和ip地址;
也有部分与服务器安装配置有关,例如url到实际路径的映射。
6.2 标准cgi变量的servlet等价表示
下表假定request对象是提供给doget和dopost方法的httpservletrequest类型对象。
| cgi变量 | 含义 | 从doget或dopost访问 |
| auth_type | 如果提供了authorization头,这里指定了具体的模式(basic或者digest)。 | request.getauthtype() |
| content_length | 只用于post请求,表示所发送数据的字节数 | 严格地讲,等价的表达方式应该是string.valueof(request.getcontentlength())(返回一个字符串)。但更常见的是用request.getcontentlength()返回含义相同的整数 |
| content_type | 如果指定的话,表示后面所跟数据的类型。 | request.getcontenttype() |
| document_root | 与http://host/对应的路径。 | getservletcontext().getrealpath("/") 注意低版本servlet规范中的等价表达方式是request.getrealpath("/")。 |
| http_xxx_yyy | 访问任意http头。 | request.getheader("xxx-yyy") |
| path_info | url中的附加路径信息,即url中servlet路径之后、查询字符串之前的那部分。 | request.getpathinfo() |
| path_translated | 映射到服务器实际路径之后的路径信息。 | request.getpathtranslated() |
| query_string | 这是字符串形式的附加到url后面的查询字符串,数据仍旧是url编码的。在servlet中很少需要用到未经解码的数据,一般使用getparameter访问各个参数。 | request.getquerystring() |
| remote_addr | 发出请求的客户机的ip地址。 | request.getremoteaddr() |
| remote_host | 发出请求的客户机的完整的域名,如java.sun.com。如果不能确定该域名,则返回ip地址。 | request.getremotehost() |
| remote_user | 如果提供了authorization头,则代表其用户部分。它代表发出请求的用户的名字。 | request.getremoteuser() |
| request_method | 请求类型。通常是get或者post。但偶尔也会出现head,put, delete,options,或者 trace. | request.getmethod() |
| script_name | url中调用servlet的那一部分,不包含附加路径信息和查询字符串。 | request.getservletpath() |
| server_name | web服务器名字。 | request.getservername() |
| server_port | string.valueof服务器监听的端口。 严格地说,等价表达应该是返回字符串的(request.getserverport())。 | 但经常使用返回整数值的request.getserverport()。 |
| server_protocol | 请求命令中的协议名字和版本(即http/1.0或http/1.1) | request.getprotocol() |
| server_software | servlet引擎的名字和版本。 | getservletcontext().getserverinfo() |
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器