HttPServletRequest接口详解

可以知道我们在重写doget方法时,里面有HttpServletRequest request,点进HttpServletRequest发现他只是一个接口并且继承了ServletRequest

 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    }
public interface HttpServletRequest extends ServletRequest{}


并且发现ServletRequest也是一个接口,但是他上面没有父接口了

public interface ServletRequest{}


我们发现在doget方法下面可以直接使用request来调用很多方法,所以
肯定是谁实现类并且创建了对象。
所以做一个测试,我们输出request,
发现这个实现了org.apache.catalina.connector.RequestFacade 实现了HttpServletRequest接口,
  

public class RequestFacade implements HttpServletRequest {}


说明tomcat服务器实现了这个HttpServletRequest接口,说明tomat服务器实现了Servlet规范。具体了解就OK。所以我们只需要面向接口去调方法就好了
根据之前我们在博客中提到的HTTP的请求协议,实际上就是用户在发送请求的时候,遵循了HTTP协议,发送的是HTTP的请求协议,Tomcat服务器将HTTP协议中的信息以及数据全部解析出来,然后服务器会把这些信息封装到 HttpServletRequest 对象中,传给javaweb程序员

注意:对于request对象生命周期,用户一次请求对应一个request和response对象,用户第二次请求的时候这两个对象就不是之前的那个了,两次请求则对应两个对象

ServletRequest接口中常用的方法

Map<String, String[]> getParameterMap();

Enumeration<String> getParameterNames(); 
String[] getParameterValues(String var1); 

String getParameter(String var1); 


首先我们可以看看ServletRequest里面的方法,这四个方法是获取前端浏览器用户提交数据很重要的方法。我们一般前端提交数据之后,举个例子
前段提交的数据格式:username=zjx&userpwd=123&aihao=eat&aihao=sleep

对于这种我们可以采用Map集合来存储,Map<String String>,key存储String,value来存储第二个

但是我们知道这里:key(userpwd) value(123)

                                 key(username) value(zjx)

                                 key(aihao)  value(eat)

                                 key(aihao) value(sleep)

这样会发现当key重复的时候value会覆盖,所以我们采用Map<String String[]>  


Map<String, String[]> getParameterMap();  (获取Map)
Enumeration<String> getParameterNames();  (获取key)

String[] getParameterValues(String var1);        (通过String key来获取value)

String getParameter(String var1);   这个是最常用的方法,方便我们开发,我们知道大部分数组只有一个元素,那么可以提供这个方法通过key来获取一个value,而这个value不是一个数组,是一个元素。

通过以上四个函数我们也可以看出,前端表单提交数据的时候,如果提交的是数字,那么其实是以“120”字符串的方式发出的,那么服务器端获取的一定是字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值