Request对象详细介绍
版权声明:本文为博主原创文章,未经博主允许不得转载。
1.Request对象
是当客户端向服务器端发送请求时,服务器为本次请求创建request对象,并在调用Servlet的service方法时,将该对象传递给service方法。Request对象中封装了客户端发送过来的所有的请求数据。
2.Request常用的API
Request对象的类型是HttpServletRequest,该类中定义了很多与http协议相关的方法,比如获取请求头信息,请求方式,客户端ip地址等信息。下面是常用的API.
(1)常用信息
String getRemoteAddr():获取客户端ip地址
String getMethod():获取客户端请求方式。例如:get或post
(2)获取请求头信息
String getHeader(String name):获取单值的请求头的值。
int getIntHeader(String name):获取单值int类型的请求头的值
3.Request获取请求参数方法
request对象获取请求参数的方法有以下几个,详情请看表1-1:
表1-1 request获取请求参数方法介绍
方法名 |
方法介绍 |
String getParameter(String name ) |
获取指定名称的请求参数值,适用于单值的请求参数 |
String[] getParameterValues(String name) |
获取指定名称的请求参数值,适用于多值的请求参数 |
Enumeration<String> getParameterNames() |
获取所有的请求参数名称 |
Map<String,String[]> getParameterMap() |
获取所有请求参数,其中参数名作为map的key,参数值作为map的value. |
牛刀小试
客户端表单
- <span style="font-family:SimSun;font-size:18px;"><body>
- <h1>测试</h1>
- <hr/>
- <form action="/Test/ParamServlet" method="post">
- 用户名:<input type="text" name="username"/><br/>
- 密 码:<input type="password" name="password"/><br/>
- 爱 好:<input type="checkbox" name="hobby" value="cf"/>吃饭
- <input type="checkbox" name="hobby" value="sj"/>睡觉
- <input type="checkbox" name="hobby" value="ddm"/>打代码
- <br/>
- <input type="submit" value="提交"/>
- </form>
- </body>
- </span>
服务器端接收
- <span style="font-family:SimSun;font-size:18px;">public class ParamServlet extends HttpServlet {
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- System.out.println("GET: " + request.getParameter("xxx"));
- System.out.println("GET: " + request.getParameter("yyy"));
- }
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- String username = request.getParameter("username");
- String password = request.getParameter("password");
- String[] hobby = request.getParameterValues("hobby");
- System.out.println(username + ", " + password + ", " + Arrays.toString(hobby));
- }
- }
- </span>
4.Request获取请求路径方法介绍
Request对象中包含的是请求信息。下面以一个路径为例子,为大家展示请求路径的几个方法。
地址:http://localhost:8080/Test/login?username=zhangsan.
Request对象通过以下方法来获取请求路径。
(1)String getServerName():获取服务器名:localhost
(2)String getServerPort():获取服务器端口号:8080
(3)String getContextPath():获取项目名:Test
(4)String getServletPath():获取Servlet路径:/login
(5)String getQueryString():获取参数部门,即问号后面的部分:username=zhangsan
(6)String getRequestURL():获取请求URL
下面用一张图来展示一下
- 4楼 韩欣桐_fighter 2015-11-25 20:54发表 [回复]
- 很细致的总结!
- 3楼 永远的肥仔 2015-05-31 19:18发表 [回复]
- Request对象仅仅停留在视频中 很不懂的
- 2楼 cherie_xj 2015-05-01 17:13发表 [回复]
- request只在视频中学过一点,没有深入研究
- 1楼 倪文杰 2015-03-27 22:52发表 [回复]
- 图文并茂,学习了