Java开发心得:HttpServletRequest基本功能

本文详细介绍了JavaWeb中的HttpServletRequest类,包括其在Servlet服务方法中的重要性、封装请求数据的功能、作为域对象的角色、请求转发和包含操作。讲解了获取请求头数据的方法,如getHeader()、getHeaderNames()、getIntHeader()等。还提到了其他请求相关方法,如getContentLength()、getMethod()等,并特别强调了setCharacterEncoding()方法对POST请求正文编码的影响。最后,讨论了利用getRemoteAddr()进行IP封禁策略的应用。

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

1 HttpServletRequest的功能

HttpServletRequest在JavaWeb中非常重要的一个类。它是Servlet的service()方法的参数之一!所以你必须必须要掌握它!

request的功能可以分为以下几种:

封装了请求头数据;

封装了请求正文数据,如果是GET请求,那么就没有正文;

request是一个域对象,可以把它当成Map来添加获取数据;

request提供了请求转发和请求包含功能。

java教程

2 request获取请求头数据

String value = request.getHeader(“请求头名称”);

request对象可以用来获取请求头数据,当然,这些请求数据都是Tomcat封装到request中去的。我们在service()方法中可以直接来获取!

request与请求头相关的方法有:

String getHeader(String name):获取指定名称的请求头;

Enumeration getHeaderNames():获取所有请求头名称;

int getIntHeader(String name):获取值为int类型的请求头。

3 request获取请求相关的其它方法

request中还提供了与请求相关的其他方法,有些方法是为了我们更加便捷的方法请求头数据而设计,有些是与请求URL相关的方法。

int getContentLength():获取请求正文的字节数,GET请求没有正文,没有正文返回-1;

String getContentType():获取请求类型,如果请求是GET,那么这个方法返回null;如果是POST请求,那么默认为application/x-www-form-urlencoded,其它类型以后再学;

String getMethod():返回请求方法,例如:GET

Locale getLocale():返回当前客户端浏览器支持的Locale。Java.util.Locale表示国家和言语,这个东西在国际化中很有用;

String getCharacterEncoding():获取请求编码,如果没有setCharacterEncoding(),那么返回null。表示使用ISO-8859-1编码;

void setCharacterEncoding(String code):设置请求编码,只对正文有效!注意,对于GET而言,没有正文!!!所以此方法只能对POST请求中的参数有效!

String getContextPath():返回上下文路径,例如:/hello

String getQueryString():返回请求URL中的参数,例如:name=zhangSan

String getRequestURI():返回请求URI路径,例如:/hello/oneServlet

StringBuffer getRequestURL():返回请求URL路径,例如:http://localhost/hello/oneServlet,即返回除了参数以外的路径信息;

String getServletPath():返回Servlet路径,例如:/oneServlet

String getRemoteAddr():返回当前客户端的IP地址;

String getRemoteHost():返回当前客户端的主机名,但这个方法的实现还是获取IP地址;

int getRemotePort():返回客户端的端口号,每次请求都会变;

String getSchema():返回请求协议,例如:http;

String getServerName():返回主机名,例如:localhost

int getServerPort():返回服务器端口号,例如:80

4 request.getRemoteAddr():封IP

可以使用request.getRemoteAddr()方法获取客户端的IP地址,然后判断IP是否为禁用IP,这种方式可以很方便的对多次密码的用户处理。

免费领取Java面试题资料
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值