编写步骤
1、编写表格,提供表单字段:username、password、hobby、以post方式提交
<form action="/test/login" method="post">
用户名:<input type="text" name="username" value="jack"/><br/>
密码:<input type="password" name="password" value="123456"/><br/>
爱好:<input type="checkbox" name="hobby" value="读书" checked="checked"/>读书
<input type="checkbox" name="hobby" value="写词" checked="checked"/>写词
<input type="checkbox" name="hobby" value="朗诵"/>朗诵<br/>
<input type="submit" value="post提交"><br/>
</form>
2、编写Servlet实现类,使用对应方法获得请求参数,并处理POST中文乱码。
public class Demo01Servlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//请求参数中文乱码
request.setCharacterEncoding("UTF-8");
//1、使用参数名获得一个值
//1.1、获得用户名
String username = request.getParameter("username");
//1.2、获得密码
String password = request.getParameter("password");
System.out.println(username + " : " + password);
//2、使用参数名获得一组值
String[] hobbies = request.getParameterValues("hobby");
System.out.println(Arrays.toString(hobbies));
//3、获得所有数据,遍历Map
System.out.println("-----------------");
Map<String,String[]> allData = request.getParameterMap();
for(Map.Entry<String,String[]> entry : allData.entrySet()){
System.out.println(entry.getKey());
System.out.println("--->");
System.out.println(Arrays.toString(entry.getValue()));
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/*开发中我们发现,doPost和doGet两个方法编写的内容相同
*所以常使用一个调用另一个,此处我们使用doPost 调用 doGet
*所有的内容之后都编写doGet方法中
*/
doGet(request, response);
}
}
3、编写Servlet配置文件
<servlet>
<servlet-name>Demo01Servlet</servlet-name>
<servlet-class>com.klh.servlet.Demo01Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Demo01Servlet</servlet-name>
<url-pattern>/demo01Servlet</url-pattern>
</servlet-mapping>
4、测试,访问“http://localhost:8080/test/form.html”,并提交表单,控制台显示信息。