-
什么是HTTP协议?
浏览器和服务器之间的一种协议
请求协议:从Browser发送到Server的时候采用的一种数据传输协议
响应协议:从Server发送到Browser的时候采用的一种数据传输协议 -
HttpServletRequest接口:
HttpServletRequest extends ServletRequest
HttpServletRequest接口的实现类是web容器实现的,Tomcat服务器有自己的实现
程序员只需要面向HttpServletRequest接口调用方法即可,不需要具体的实现了
HttpServletRequest对象中封装了HTTP请求协议的全部内容
HttpServletRequest对象代表一次请求,一次请求对应一个request对象,所以request对象的生命周期是短暂的。 -
HttpServletRequest接口中的常用方法:
通过key获取一维数组的首元素:String getParameter(String name)
获取整个Map集合:Map getParameterMap()
获取整个Map集合的所有key:Enumeration getParameterNames()
通过map集合的key获取value:String[] getParameterValues(String name)
使用注解形式比使用web.xml的配置方式简单很多:
表单提交的数据,会自动封装到request对象中,request对象中由map集合存这些数据:map集合中的key是name,value是一个字符串类型的一维数组
html文件:注意文件中表单提交的路径
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/28/ServletRequest" method="post">
用户名
<input type="text" name="username"><br>
密码
<input type="password" name="password"><br>
性别
<input type="radio" name="sex" value="m">男
<input type="radio" name="sex" value="f">女 <br>
爱好
<input type="checkbox" name="interest" value="music">音乐
<input type="checkbox" name="interest" value="sport">运动
<input type="checkbox" name="interest" value="study">学习
<input type="checkbox" name="interest" value="sing">唱歌
<input type="checkbox" name="interest" value="read">阅读 <br>
学历
<select name="grade">
<option value="gz">高中</option>
<option value="dz">大专</option>
<option value="db">大本</option>
</select>
简介
<textarea cols="30" rows="10" name="introduce"></textarea><br>
<input type="submit" value="注册">
<input type="submit" value="提交">
</form>
</body>
</html>
java文件:注意注解的路径
package Servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Map;
import java.util.Set;
@WebServlet("/ServletRequest")
public class ServletRequest extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取用户信息,表单提交的,这些数据被自动封装到request对象中了
//从request对象中获取这些信息
String username = req.getParameter("username");
String password = req.getParameter("password");
String sex = req.getParameter("sex");
String interest = req.getParameter("interest");
String introduce = req.getParameter("introduce");
System.out.println(username);
System.out.println(password);
System.out.println(sex);
System.out.println(interest);
System.out.println(introduce);
//获取所有的兴趣爱好
String[] interests = req.getParameterValues("interest");
for(String in:interests){
System.out.println(in);
}
//获取整个参数的Map集合
Map<String, String[]> parameterMap = req.getParameterMap();
Set<String> names = parameterMap.keySet();
for(String name:names){
String[] values = parameterMap.get(name);
System.out.print(name+"=");
for(String value:values){
System.out.print(value+" ");
}
System.out.println();
}
//获取参数Map集合所有的key
Enumeration<String> keys = req.getParameterNames();
while(keys.hasMoreElements()){
String name = keys.nextElement();
System.out.println(name);
}
}
}