虚拟路径问题没有搞清楚,折腾了好久.
总的来说:login.html(action)和loginServlet(@webServlet)的虚拟路径相差一个/day14。同时二者在浏览器的访问时,都必须加上虚拟路径(/day14)
* 路径写法:
. 路径分类
. 相对路径:通过相对路径不可以确定唯一资源
* 如:./index.html
* 不以/开头,以.开头路径 * 规则:找到当前资源和目标资源之间的相对位置关系
* ./:当前目录
* ../:后退一级目录
. 绝对路径:通过绝对路径可以确定唯一资源
* 如:http://localhost/day15/responseDemo2 /day15/responseDemo2
* 以/开头的路径 * 规则:判断定义的路径是给谁用的?判断请求将来从哪儿发出
* 给客户端浏览器使用:需要加虚拟目录(项目的访问路径)
* 建议虚拟目录动态获取:request.getContextPath()
* <a> , <form> 重定向...
* 给服务器使用:不需要加虚拟目录
* 转发路径
有两种配置方法、
第一种:
在上图不配置项目名,只加斜杠(经过测试不加/也可以)。
注意这里login.html要跳转到/loginServlet,
第二种:
这里随便起了一个/day14的虚拟路径。
那么在login.html中访问路径就应该加上/day14(否则访问会报404)
但是loginServlet却不用加day14,
login.html提交后会自动跳转到/day14/loginServlet
常见错误分类:
1. 1xx:服务器就收客户端消息,但没有接受完成,等待一段时间后,发送1xx多状态码
2. 2xx:成功。代表:200
3. 3xx:重定向。代表:302(重定向),304(访问缓存)
4. 4xx:客户端错误。
* 代表:
* 404(请求路径没有对应的资源) (一定要去检查浏览器输入的路径是不是与Tomcat中部署的路径一致!!!!)
* 405:请求方式没有对应的doXxx方法
5. 5xx:服务器端错误。代表:500(服务器内部出现异常)(代码写的有问题)