1.http协议
超文本传输协议。
定义浏览器与web服务器之间数据传输的方式与数据格式。
2.数据传输方式
浏览器——发送请求——→web服务器
↑丨
↖丨处理请求
↖←——返回响应←—————↓
并立即关闭
浏览器再次发送请求时需要重新建立连接
3.数据格式
①请求数据包请求方式——主要应用get和post两种,其余略
————get————
get方式:
& 表单默认提交的方式
& 直接在浏览器地址栏输入地址
& 通过链接访问某个地址
get特点:
& 在地址栏会显示请求数据不安全
& 请求数据会放到请求资源路径后面
& 浏览器有可能缓存get方式访问过的数据。cookie
————post————
post方式:
& 设置表单method=“post”
post特点:
& 数据不会再地址栏显示安全
& 数据会存放到实体内容里
& post方式一般用于向服务器提交数据
————get和post的优缺点比较————
get的缺点:
& 提交的数据量有限(因为只能存放到请求行之后)
& 不安全(在浏览器地址栏能看到数据)
post的优点:
& 数据量大,因为数据存放在实体内容中
& 相对安全。(但实体内容中的数据仍然没有加密,可以借助工具看到)
其他:虽然post很多方面优于get,但实际操作中,因为get操作简单,响应迅速,所以通常在发送简单的和不涉及安全的数据请求时,用get,而诸如提交登录用户名和密码等数据时,使用post方式
使用get处理form
重定向(客户端根据服务器端响应回来的地址重新发送请求:发生在客户端)使用response.sendRedirect(“error.html”)来进行重新定向
重定向的特点:
& 地址任意
& 浏览器地址栏的地址会变成重定向的地址
& 相对于服务器端,一件事情已经做完
& 在重定向之前,不能有任何的的输出。如果缓存当中有数据,重定向之前,会先清除缓存中的数据
服务器处理url
例如:对于http://ip:port/appname/test
浏览器会依据ip、port链接服务器,
然后将/appname/test存放到请求数据包的请求行
处理appname/test的步骤:
1.服务器查看appname对应的应用,弱没有,则返回404。有的话,下一步
2.在web.xml文件中,使用/test与url-pattern进行匹配
& 精确匹配:要求完全匹配。action=”login”
& 模糊匹配(使用通配符*)
如:/some/*
& 后缀匹配
不能以/ 开头。
如:*.do表示以.do结尾的请求
3.如果仍然不匹配,会查询静态资源。如果找到该资源,则返回,找不到,返回404
servlet的生命周期与核心的类与接口
——核心类与接口——
#Servlet接口
& 所有的Servlet,必须实现该接口。
& 该接口定义了三个方法:
init(ServletConfig config):初始化方法//ServletConfig 容器自动加载生成
service(ServletRequest request,
ServletResponse response):处理请求,将结果响应给客户端
destroy():销毁资源.
#GenericServlet抽象类↓
service(HttpServletRequest request,
HttpServletResponse response){
if(request.getF.eqluals(post)){
doPost(request,response);
}else if(get){
doGet(request,response);
}
}