HttpServletRequest的应用

来源:互联网 发布:linux 查询root密码 编辑:程序博客网 时间:2024/05/17 08:42
1、WEB客户端发送给WEB服务器的HTTP请求消息分为三个部分:
    请求行 POST /demo/login HTTP/1.1
    请求消息头
    消息正文(也叫实体内容) username=xxxx&password=1234
2、Servlet API中定义的ServletRequest接口类用于封装请求消息。 
3、HttpServletRequest是专用于HTTP协议的ServletRequest子接口,它用于封装HTTP请求消息。 

4、在service()方法内部调用HttpServletRequest对象的各种方法来获取请求消息。 

获取请求行的相关信息

HTTP请求消息的请求行包括请求方式、资源路径和HTTP协议版本:
GET /it315/servlet/RequestURI?param1=a&param2=b HTTP/1.1
getMethod方法返回HTTP请求消息中的请求方式。
getRequestURI方法返回请求行中的资源名部分。
getQueryString 方法返回请求行中的参数部分。
getProtocol方法返回请求行中的协议名和版本。
getContextPath方法返回请求资源所属于的WEB应用程序的路径。
getPathInfo方法返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头。
getPathTranslated方法返回URL中的额外路径信息所对应的资源的真实路径。 
getServletPath方法返回Servlet的名称或Servlet所映射的路径。

获取网络连接信息

getRemoteAddr方法返回发出请求的客户机的IP地址,其格式为“192.168.0.3”这种形式的字符文本。 (*) 
getRemoteHost方法返回发出请求的客户机的完整主机名,即“pc1.it315.org”这种格式。
getRemotePort方法返回发出请求的客户机所使用的网络接口的端口号。
getLocalAddr方法返回WEB服务器上接收当前请求的网络接口的IP地址。
getLocalName方法返回WEB服务器上接收当前请求的网络接口的IP地址所对应的主机名。
getLocalPort方法返回WEB服务器上接收当前请求的网络接口的端口号。
getServerName方法返回当前请求所指向的主机名。 
getServerPort方法返回当前请求所连接的服务器端口号。
getScheme方法返回请求的协议名,例如http、https或ftp。
getRequestURL方法返回客户端发出请求时的完整URL。 

客户端身份认证

当客户端访问WEB服务器时, WEB服务器可以发送401(Unauthorized)响应状态码和WWW-Authenticate响应头来要求客户端进行身份认证。 
客户端可以再次发出请求,并通过Authorization请求头来提供用户名和密码信息。 
服务器对Authorization请求头中的身份信息进行认证,并根据认证结果来决定是否提供服务。
WWW-Authenticate响应头中可以指定两种认证方式:BASIC和DIGEST。
对于BASIC验证方式,客户端需要把用冒号(:)分隔的用户名和密码进行Base64 编码之后传送给WEB服务器。
举例:用户名为“zxx”和密码为“123456”的认证头信息
Authorization: Basic enh4OjEyMzQ1Ng==