文章目录
HttpServletRequest
概述
service方法中的request的类型是ServletRequest,而doGet/doPost方法的request的类型是HttpServletRequest,HttpServletRequest是ServletRequest的子接口,功能和方法更加强大。
运行流程
通过request获得请求行
- 获得客户端的请求方式:String getMethod()
- 获得请求的资源:
String getRequestURI() – 获取请求URI
StringBuffer getRequestURL()
String getContextPath() – 获取虚拟目录
String getServletPath() – 获取Servlet路径
String getQueryString() – 获取get方式请求参数
username=zhangsan&password=123
String getRemoteAddr() – 获取客户机的IP地址
通过request获得请求头
- long getDateHeader(String name)
- String getHeader(String name)
- int getIntHeader(String name)
- Enumeration getHeaderNames() – 获取所有的请求头名称
常⻅的请求头:
- User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息
作用:可以在服务器端获取该头的信息,解决浏览器的兼容性问题 - Referer:告诉服务器,我(当前请求)从哪里来?
作用:防盗链
通过request获得请求体
请求体:只有POST请求方式,才有请求体,在请求体中封装了POST请求的请求参数。
步骤:
- 获取流对象
BufferedReader getReader():获取字符输入流,只能操作字符数据
ServletInputStream getInputStream():获取字节输入流,可以操作所有类型数据 - 从流对象中拿数据
request的其他功能
获取请求参数通用方式
- String getParameter(Stri