1. HttpServletRequest类
每次只要有请求进入Tomcat服务器,Tomcat服务器会把请求过来的HTTP协议信息解析好封装到Request对象中,然后传递到service(doGet或doPost)方法中供我们使用。然后可以通过HttpServletRequest对象获取所有的请求信息。
servlet代码:
public class HttpServletRequest01 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1.getRequestURI():获取请求的工程路径
System.out.println("1.请求资源路径:"+req.getRequestURI());
//2.getRequestURL():获取请求的绝对路径
System.out.println("2.请求绝对路径:"+req.getRequestURL());
//3.getRemoteHost():获取客户端ip
System.out.println("3.客户端ip:"+req.getRemoteHost());
//4.getMethod():获取请求的方式(get/post)
System.out.println("4.请求方式:"+req.getMethod());
//5.获取请求参数
String name = req.getParameter("name");
String sex = req.getParameter("sex");
String country = req.getParameter("country");
String []hobby = req.getParameterValues("hobby");
System.out.println("姓名:"+name);
System.out.println("性别:"+sex);
System.out.println("国籍:"+country);
System.out.println("兴趣爱好:"+ Arrays.asList(hobby));
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="http://localhost:8088/servlet01_war/HttpServletRequest01" method="get">
姓名:<input type="text" name="name"><br/>
性别:<input type="radio" name="sex" value="boy">男<input type="radio" name="sex" value="girl">女<br/>
国籍:<select name="country">
<option name="country">--请选择国籍--</option>
<option name="country" selected="selected">中国</option>
<option name="country">美国</option>
<option name="country">意大利</option>
<option name="country">俄罗斯</option>
</select><br/>
兴趣爱好:<input type="checkbox" name="hobby" value="java">java
<input type="checkbox" name="hobby" value="c++">c++
<input type="checkbox" name="hobby" value="python">python
<input type="checkbox" name="hobby" value="js">javascript<br/>
<input type="submit" value="提交">
</form>
</body>
</html>
运行结果
2.HttpServletRequest类常用方法
(1)getRequestURI():获取请求的工程路径,可以获取你部署的该工程的路径。
这就是我的部署的web工程路径,用getRequestURI()就可以得到了
(2)getRequestURL():获取请求的绝对路径
(3)getRemoteHost():获取客户端ip
如果客户端用localhost访问,得到的是127.0.0.1
如果用同一局域网不同ip访问,就能得到客户端真实ip
(4)getMethod():获取请求的方式(get/post)
请求有get和post,但大多数是get请求
3.HttpServletRequest获取请求参数的方法
网页数据的对应请求参数
得到的对应提交信息
getParameter()是获取单个参数信息,如以上的姓名,性别国籍
而getParameterValues()获取多个参数信息,如以上的兴趣爱好为多个