HttpServletRequest 其实就是 tomcat 为我们封装的请求对象;
HttpServletRequest 是 ServletRequest 接口的子接口,表示 HTTP 协议的请求对象;包含了获取各自请求信息的方法;
常见的方法
String getContextPath():获取上下文路径,<Context path="上下文" ../>
String getHeader(String headName):根据指定的请求头获取对应的请求头的值.
String getRequestURI():返回当期请求的资源名称. 上下文路径/资源名
StringBuffer getRequestURL():返回浏览器地址栏的内容
String getRemoteAddr():返回请求服务器的客户端的IP
简单演示一下
(页面)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
< action="/teacher" method="post">
账户:<input type="text" name="username"/><br/>
密码:<input type="password" name="password"/><br/>
爱好:<input type="checkbox" name="likes" value="1"/>吹牛p
<input type="checkbox" name="likes" value="2"/>听别人吹牛p
<input type="checkbox" name="likes" value="3"/>看妞
<input type="submit" name="提交"/>
</from>
</body>
</html>
(后台)
@Override
protected void service(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
// 接收前台传过来的值
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println("账户:"+username);
System.out.println("密码:"+password);
//接收多个值
String[] likes = req.getParameterValues("likes");
System.out.println("爱好:"+ Arrays.asList(likes));
// 获取服务端的ip 谁的电脑访问我我就获取谁的id
String host = req.getHeader("Host");
System.out.println("当前服务端ip:" + host);
// 获取客户端的ip
String remoteHost = req.getRemoteHost();
System.out.println("当前客户端ip:" + remoteHost);
// 上下文+ url-pattern
String requestURI = req.getRequestURI();
// 协议://ip:端口+上下文+url-pattern
StringBuffer requestURL = req.getRequestURL();
System.out.println("requestURI" + requestURI);
System.out.println("requestURL" + requestURL);
// 获取到所有的参数名
Enumeration<String> parameterNames = req.getParameterNames();
// 类似迭代器 一样遍历
while (parameterNames.hasMoreElements()) {
// 获取到 参数名
String paramName = parameterNames.nextElement();
// 根据参数名获取到 参数值
String paramValue = req.getParameter(paramName);
System.out.println(paramName + " " + paramValue);
}
}