Servlet技术浅析(三)之-----ServletRequest接口和HttpServletRequest接口

ServletRequest接口

简述:

在Servlet接口中的service(ServletRequest request , ServletResponse response)方法中有一个ServletRequest类型的参数。ServletRequest类表示来自客户端的请求。当Servlet容器接收到客户端要求访问特定Servlet的请求时,容器先解析客户端的原始请求数据,把它包装成一个ServletRequest对象。当容器调用Servlet对象的service()方法时,就可以把ServletRequest对象呢作为参数传给service()方法。

请求对象方法

ServletRequest接口提供了一系列用于读取客户端请求数据的方法,如下:
1)getContentLength():返回请求正文的长度。如果请求正文的长度位置,则返回-1.
2)getContentType():获得请求正文的MIME类型。如果请求正文的类型未知,则返回null。
3)getInputStram():返回用于读取请求正文的输入流。
4)getLocalAddr():返回服务器短短的IP地址。
5)getLocalName():返回服务器端的主机名。
6)getLocalPort():返回服务器端的FTP端口号。
7)getParameter(String name):根据给定的请求参数名,返回来自客户请求中的匹配的请求参数值。
8) getProtocal():返回客户端和服务器端通信所用的协议的名称及版本号。
9)getReader():返回用户读取字符串形式的请求正文的BufferedReader对象。
10)getRemoteAddr():返回客户端的IP地址。
11)getRemoteHost():返回客户端的主机名。
12)getRemotePort():返回客户端的FTP端口号。
下面三个方法用户在请求范围内存取共享数据的方法:
1)setAttribute(String name , java.lang.Object object):在请求范围内保存一个属性,参数name标识属性名,参数object标识属性值。
2)getAttribute(String name):根据name参数给定的属性名,返回请求范围内的匹配的属性值。
3)removeAttribute(String name):从请求范围内删除一个属性。

HttpServletRequest接口

HttpServletRequest接口是ServletRequest接口的子接口。
HttpServlet类的重载service()方法及doGet()和doPost()等方法都有一个HttpServletRequest类型的参数,如:
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException{........}

响应方法

HttpServletRequest接口提供了用于读取HTTP请求中的相关信息的方法:
1)getContextPath():返回客户端所请求访问的web应用的URL入口。例如,如果客户端访问的URL为http://localhost:8080/helloapp/info,那么该发放返回“/helloapp”。
2)getCookies():返回HTTP请求中的所有的Cookie。
3)getHeader(String name):返回HTTP请求头部的特定项。
4)getHeaderNames():返回一个Enumeration对象,它包含了HTTP请求头部的所有项目名。
5)getMethod():返回HTTP请求方式,如post,或get。
6)getRequestURI():返回HTTP请求的头部的第1行中的URI。
7)getQueryString():返回HTTP请求中的查询字符串,即UTL中的“?”后面的内容。例如,如果客户端访问的URL为
http://localhost:8080/htlloapp/info?username=tom
,那么该方法返回“username=tome”。

根据SUN的Servlet API来创建的Servlet,无需费力的解析原始HTTP请求。解析原始HTTP请求的工作完全由Servlet容器来代劳。Servlet容器把HTTP请求包装成HttpServletRequest对象,Servlet只需调用该对象的getXXX()方法,节能轻轻松松地读取到HTTP请求中的各种数据。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值