一.HTTP协议
1.什么是HTTP协议?
- 就是W3C制定的一个规范
- 规定了浏览器和服务器如何通信,通信的数据格式
- 建立连接
- 发送请求
- 接受响应
- 关闭连接
一个请求一次连接,尽量降低服务器的压力
3.请求数据结构- 请求行:请求的基本信息
- 消息头:对实体内容的描述
- 实体内容:浏览器向服务器发送的业务数据
- 状态行:响应的基本信息
- 消息头:对实体内容的描述
- 实体内容:服务器向浏览器发送的业务数据
- 通信的步骤由浏览器和服务器自动实现
- 请求数据中的请求行,消息头由浏览器自动填写
- 响应数据中的状态行,消息头通常由服务器自动填写
- 请求数据中的实体内容由我们提供
- 响应数据中的实体内容由我们提供
通过request处理请求数据,通过response处理响应数据
二.注册案例
注册
账号:
密码:
性别:
男
女
兴趣:
美食
竞技
社交
package web;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RegServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
//采用方案三解决POST请求乱码问题
req.setCharacterEncoding("utf-8");
/*
* 处理请求的一般流程
* 1.接收参数
*/
String name = req.getParameter("username");
String pwd = req.getParameter("pwd");
String sex = req.getParameter("sex");
String[] interests = req.getParameterValues("interest");
//采用方案一解决乱码问题
// byte[] bs = name.getBytes("iso8859-1");
// name = new String(bs,"utf-8");
//2.处理业务
//3.发送响应
System.out.println(name);
System.out.println(pwd);
System.out.println(sex);
if(interests!=null){
for(String interest:interests){
System.out.println(interest);
}
}
//3.发送响应
res.setContentType("text/html;charset=utf-8");
PrintWriter w = res.getWriter();
w.println("ok,"+name+"
");
w.close();
}
}
servlet2
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
reg
web.RegServlet
reg
/reg
三.请求方式
1.什么是请求方式?
- 就是浏览器向服务器发送请求时传递数据的方式
- get
- post
- 采用路径传参
- 参数在传递过程中可见,隐私性差
- 路径大小有限制,所有传递的参数大小受限
所有的请求默认都是GET请求
2)POST- 采用实体内容传参
- 参数在传递过程中不可见,隐私性好
- 实体内容专门用来传参,大小不受限制
在表单上加method="post"
3)建议- 参数需要保密时用POST
- 参数较多时用POST