一、
1、完整的URL = web应用的Context Path +每个资源自己的Servlet Path
2、
3、常见错误
Tomcat 没有启动起来 无法建立连接
资源URL错误 HTTP:404
资源处理时,服务器内部出现问题(动态资源里代码出现异常) HTTP:500
4、通过开发者工具看到响应是200,但浏览器上什么都没有显示。
刚资源,响应行和响应头是正确的,响应体(正文)可能是空的,或者是其他导致空白的内容(比如html中<body>下为空)
HTTP响应 = 控制数据 + 负荷数据
=响应行 + 响应头 +响应体
5、405 Method Not Allowed :客户端的问题。使用了错误的HTTP访问某个资源(URL对应的资源存在,当方法不对)
6、想通过post方法访问某个资源:
①通过form表单,指定method属性;②通过js的代码做到;
二、servlet运行的基本原理
1、Tomcat = HTTP 服务器(对接浏览器) + Servlet容器(对接web应用)
2、层次关系
应用层----HTTP协议
Tomcat + Web 应用都是工作在 网络层次的 应用层上
Tomcat + Web 应用在OS看起来都是一个普通的程序【用户态】
3、整体框架
Tomcat的工作:
①通过网络读取并解析HTTP请求
②判断请求动态 or 静态资源
③动态资源找到对应Servlet对象去处理,找不到404
静态资源找到路径下对应的文件,找不到404
④ 动态资源,明确HTTP的方法是什么,根据不同的方法,调用doGet /doPost
⑤【web应用的职责】负责根据请求内容 填充 响应对象
⑥根据响应对象,组装HTTP响应数据
⑦通过网络把响应发送给浏览器
HTTP协议规定的请求的默认编码不是utf-8的,所以通过utf-8发送中文是不对的(乱码),我们需要在代码中指定请求的字符集编码。
三、GET & POST
1、GET的参数是通过URL提交(指的就是query string);POST的参数是通过请求体提交
不严谨:①假设了一定form表单的提交常见
②get的只能放在query string中,但post既可以在query string中,也可以在请求体中
2、GET能提交的参数有长度限制,POST没有
不严谨:假设了URL的长度限制(标准中没有规定长度限制,不同浏览器或者web服务器确实有长度限制)
3、POST 比GET安全
不严谨:post的参数放在请求体中,不至于一眼就看到,但通过抓包工具(开发者工具也算)都可以看到,应该用HTTPS才安全。
四、
读取用户通过form表单提交的参数(无论get or post)