HTTP

概念
需要遵守的规则!!!
浏览器向我发送请求,我向浏览器做出响应。
基于TCP/IP的一个协议,用于连接web服务器和浏览器。
协议版本:HTTP/1.1
特点
1.遵守一个请求响应模型
2.请求和响应成对存在
3.必须先有请求后有响应
设置编码
Request
请求行
Get:显示传参,大小有限制,没有请求体。
Post:隐式传参,大小没限制,有请求体。
只有表单中的method方法设置为post,其他的都是get请求。
请求头
通常都是键值对方式,一般情况下是一个key对应一个value,有时是一个key对应多个value。
请求体
Post方式,提交的请求参数。
方法
URL:绝对路径,URI:相对路径
req.getRequestURL()
req.getMethod():form表单提交方式
解决中文乱码
req.setCharacterEncoding("utf-8");
req.getParameter("name")的使用
可以在HTML文件中的form表单的Action方法中跳转到该Servlet文件,然后,request中获取参数传的值即为input表单中name中设置的值。
怎么抓包请求头和响应头的?
Response
响应行
状态码:200、302、304、404、500
以上类似于200-299、 300-399
状态描述:响应成功、重定向、查找本地缓存、资源不存在、服务器内部错误。
响应头
通常都是键值对方式,一般情况下是一个key对应一个value,有时是一个key对应多个value。
响应体
页面要显示的内容
解决中文乱码
向浏览器输出信息
resp.getWriter().write("向浏览器输出信息");
重定向
resp.setHeader("任意字符串", "/Day40/index.html");
从前端form表单中拿取数据
Servlet的映射流程
1.Tomcat启动,到WEB-INF下的xml文件中匹配url-pattern
2.匹配到就可以获取到servlet-mapping,可以找到servlet-name
3.通过匹配servelt-name,找到servlet,可以找到servlet-class
4.通过全路径可以加载.class字节码文件,接着运行servlet程序
匹配方式
1.精确匹配,输入访问地址的全路径。例如:
2.模糊匹配,要用到通配符*。例如:
注意事项
1.模糊匹配不能同时使用/和*号
2.精确匹配优先级最高,后缀名的模糊匹配最低
3.要求url不能只含/,不允许和默认的servlet冲突
Servlet的生命周期
生命周期:成员变量,局部变量,类对象,线程
由Tomcat服务器控制的
调用的四个方法
1.构造方法,用于创建对象,只执行一次
2.init方法,初始化对象,只执行一次
3.service方法,调用几次执行几次
4.destroy方法,用于销毁servlet对象只执行一次
Tomcat运行,方法不执行,网页刷新后执行前三个方法,每刷新一次,执行一次service方法,在服务器点击stop时,调用destory方法。
Servlet的自动加载
假如数据量很大,要在Tomcat服务器启动时1和2方法就执行,此时就需要修改xml配置文件,设置自动加载的优先级
在servlet中加入
【HTTP】 数字越小,优先级越高

    推荐阅读