2. 服务器处理POST与GET请求
1 什么是POST与GET请求
- 相同点:是向服务器上的某个url请求页面的两种方式,都可向这个url传递键值对参数,来获得不同的响应结果
- 不同点
- POST请求的键值对参数在HTTP包头的其他部分。例如向login页面以get方式提交用户名、密码信息不会再url中体现。

- GET请求的键值对参数在url后面。例如向login页面以get方式提交用户名、密码信息,会在url后面加上?开头,键值对之=分割,不同的键值对之间用&分割。合起来叫做查询字符串。

- POST请求的键值对参数在HTTP包头的其他部分。例如向login页面以get方式提交用户名、密码信息不会再url中体现。
- 应用场景
- post场景
//get场景://form默认的提交方式//如果通过一个超链访问某个地址//如果在地址栏直接输入某个地址//ajax指定使用get方式的时候
- get场景
//post场景:在form上显示设置 method="post"的时候、ajax指定post方式的时候
2 Servlet处理POST与GET请求
准备工作
- 新建Servlet子类

public class LoginServlet extends HttpServlet {}
- web.xml指定url映射
<!-- login登陆界面 --><servlet><servlet-name>LoginServlet</servlet-name><servlet-class>LoginServlet</servlet-class></servlet><servlet-mapping><servlet-name>LoginServlet</servlet-name><url-pattern>/login</url-pattern></servlet-mapping>
- web目录下创建静态页面向login这个url发送post/get请求

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>登录页面</title></head><body><form action="login" method="post">账号: <input type="text" name="name"> <br>密码: <input type="password" name="password"> <br><input type="submit" value="登录"></form></body></html>
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>登录页面</title></head><body><form action="login" method="get">账号: <input type="text" name="name"> <br>密码: <input type="password" name="password"> <br><input type="submit" value="登录"></form></body></html>
可以通过System.out.println在tomcat控制台观察控制台输出
2.1 登陆页面的POST请求
- 在LoginServlet类中重写doPost方法表示向该url提出post请求时调用这个方法
- 获得提交的参数,并且判断
- 在返回的页面上写上内容
//post获取表单数据String name = request.getParameter("name");String password = request.getParameter("password");System.out.println("name:" + name);System.out.println("password:" + password);//在response对象上响应//在页面上显示的html文本String html = null;if ("admin".equals(name) && "123456".equals(password))html = "<div style='color:green'>success</div>";elsehtml = "<div style='color:red'>fail</div>";PrintWriter pw = response.getWriter();pw.println(html);
2.2 登陆页面的GET请求
- 在LoginServlet类中重写doPost方法表示向该url提出post请求时调用这个方法
- 获得提交的参数,并且判断
- 在返回的页面上写上内容
String name = request.getParameter("name");String password = request.getParameter("password");System.out.println("name:" + name);System.out.println("password:" + password);//在response对象上响应//在页面上显示的html文本String html = null;if ("admin".equals(name) && "123456".equals(password))html = "<div style='color:green'>success</div>";elsehtml = "<div style='color:red'>fail</div>";PrintWriter pw = response.getWriter();pw.println(html);
3 基本调用流程
- get请求

- post请求同理
