Java™ Servlet 规范:javax.servlet.ServletRequest

本文详细介绍了ServletRequest对象在JavaWeb中的作用,包括参数处理、内容长度获取、字符编码、MIME类型、协议信息以及客户端地址获取等关键功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 概述

        使用javax.servlet.ServletRequest定义一个对象,可以向servlet提供客户端信息。servlet容器创建ServletRequest对象,将其作为参数传递给servlet的service方法。

        SerlvetRequest对象提供了包含参数名及参数值,属性以及输入流在内的数据。继承自ServletRequest的接口可以提供特定协议的额外数据(例如,HTTP数据由javax.http.HttpServletRequest提供)。

 getContentLength方法

        返回由输入流提供的请求体的长度(以字节为单位),如果长度未知,则返回-1。对于HTTP servlet与CGI变量CONENT_LENGHT的值相同。

        返回代表请求体长度的整数,如果长度不明或大于Integer.MAX_VALUE则返回-1。

getContentLengthLong

        getContentLength返回的是int类型,对于一些过长的数据会返回-1,使用该方法可以获取正确的长度。

 getCharacterEncoding方法

        返回请求体中使用的字符编码,如果没有指定字符编码,方法返回null。将按照以下的优先级顺序探测指定的编码:

  1.  每个请求
  2.  部署描述符中默认指定的,或者ServletContext.setRequestCharacterEncoding(String)
  3.  通过容器配置指定的容器默认编码

getContentType

        返回请求体的MIME类型,如果类型未知则返回null。对于HTTP servlet跟CGI变量CONTENT_TYPE的值一样。

getProtocol

        返回请求体的协议名称及版本,格式如下:协议/主版本.小版本,例如HTTP/1.1。对于HTTP servlet 该值与CGI的变量SERVER_PROTOCOL值一样。

getScheme

        返回生成请求所使用schema名,例如 http,https, ftp。不同的schema有不同的生成URL的规则。

getServerName

        返回请求发往的服务器的主机名。它是请求头Host中“:”之前的部分,可以是以及解析过的服务器名,或者服务器的IP地址。

getServerPort

        返回请求发往的端口号。是请求头Host值中“:”之后的部分,是客户端连接被接收的服务器端口。

getRemoteAddr

        返回客户端的IP地址或发送请求的最后一个代理的IP地址。对于HTTPservlet跟CGI变量REMOTE_ADDR部分是一样的。

getRemoteHost

        返回发送请求的客户端的全标识名或者最后一个代理的全限定名。如果引擎没有或者不能解析主机名(为提高性能),返回的是以逗号分隔的IP地址。对于HTTPservlet其值与CGI变量的REMOTE_HOST一致。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值