JSP隐含对象(又称内置对象),是指可以不加声明和创建就可以在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量。
在JSP中一共预先定义了九个隐含对象,分别为request, response, pageContext, session, application, out, config, page和exception。
JSP隐含对象的类型如下表所示:
隐含对象 | 类型 | 作用域 |
---|---|---|
request | javax.servlet.http.HttpServletRequest | request |
response | javax.servlet.http.HttpServletResponse | page |
pageContext | javax.servlet.jsp.PageContext | page |
session | javax.servlet.http.HttpSession | session |
application | javax.servlet.ServletContext | application |
out | javax.servlet.jsp.JspWriter | page |
config | javax.servlet.ServletConfig | page |
page | java.lang.Object | page |
exception | java.lang.Throwable | page |
request
request对象代表的是javax.servlet.http.HttpServletRequest类的对象,它封装了由客户端生成的HTTP请求的所有细节,主要包括HTTP头信息、系统信息、请求方式和请求参数等。通过request对象提供的相应方法可以处理客户端浏览器提交的HTTP请求中的各项参数。
request获取客户端信息的常用方法如下表所示:
方法 | 功能 |
---|---|
getHeader(String name) | 获得HTTP协议定义的文件头信息 |
getHeaders(String name) | 返回指定名字的request Header的所有值,其结果是一个枚举型的实例 |
getHeadersNames() | 返回所有request Header的名字,其结果是一个枚举型的实例 |
getMethod() | 获得客户端向服务器端传送数据的方法,如get、post、header、trace等 |
getProtocol() | 获得客户端向服务器端传送数据所依据的协议名称 |
getRequestURI() | 获得发出请求字符串的客户端地址,不包括请求的参数 |
getRequestURL() | 获得发出请求字符串的客户端地址 |
getRealPath() | 返回当前请求文件的绝对路径 |
getRemoteAddr() | 获取客户端的IP地址 |
getRemoteHost() | 获取客户端的主机名 |
getServerName() | 获取服务器的名字 |
getServerPath() | 获取客户端所请求的脚本文件的文件路径 |
getServerPort() | 获取服务器的端口号 |
getParameter() | 获取客户端通过表单提交过来的参数值 |
getScheme() | 获取请求使用的模式(协议)名字 |
例:
request.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head><title> request内置对象的实例 </title></head>
<body>
<form aciton="request.jsp">
Get request results:
<input type="text" name="myname">
<input type="submit" name="get value">
</form>
获取客户提交信息的方式:<%=request.getMethod()%> <br>
获取请求信息中的协议名名字和版本号:<%=request.getProtocol()%> <br>
获取发出请求字符串的客户端地址:<%=request.getRequestURI()%> <br>
获取发出请求字符串的客户端地址:<%=request.getRequestURL()%> <br>
获取提交请求的客户端的IP地址:<%=request.getRemoteAddr()%> <br>
获取服务器的端口号:<%=request.getServerPort()%> <br>
获取接受请求的服务器名称:<%=request.getServerName()%> <br>
获取客户端所请求的脚本文件的文件路径:<%=request.getServletPath()%> <br>
获取Http协议定义的文件头信息Host的值:<%=request.getHeader("host")%> <br>
获取Http协议定义的文件头信息User-Agent的值:<%=request.getHeader("user-agent")%> <br>
获取Http协议定义的文件头信息accept-language的值:<%=request.getHeader("accept-language")%> <br>
获取请求文件的绝对路径:<%=request.getRealPath("request.jsp")%> <br>
获取客户端通过表单提交过来的参数值:<%=request.getParameter("myname")%> <br>
获取客户端的主机名:<%=request.getRemoteHost()%> <br>
获取请求中使用的模式(协议)名字:<%=request.getScheme()%> <br>
</body>
</