Web服务
- 负责建立底层的网络连接
- 负责将客户端请求的文件返回给服务端
- web服务器又称为web容器,web容器负责装组件, web服务软件通过解析请求路径,找到对应的Servlet做出响应
什么是Servlet
- Servlet是用于扩展web服务软件业务功能的组件,每一种业务都需要对应一个单独的Servlet.
Get请求和Post请求的区别
- Get: 当通过浏览器地址栏/超链接/form表单指定get请求方式,这几种方式发出的请求都是Get请求
1)请求参数在请求地址栏的后面,不建议传递敏感数据
2)请求大小有限制,只能传递4k以内的数据 - Post:只有在form表单中添加了method=post 发出的请求菜是post请求
1)请求参数在请求体里面(用户看不到),相对get请求安全性更高
2)请求参数大小没有限制 - 一般情况下使用Get请求,只有涉及到敏感信息或上传文件请求时才使用Post请求
servlet运行的详细步骤
- 浏览器依据IP地址建立连接与容器的连接
- 浏览器将请求数据打包
- 容器解析请求数据包,封装对象
- 容器依据路径找到Servlet创建对象
- 容器调用Servlet对象的service方法
- 容器将响应打包发给浏览器
- 浏览器取出结果,生成页面
重定向
- 服务器向浏览器发送一个302状态码Location消息头(该消息头的值是一个地址,称为重定向地址),浏览器收到后会立即向重定向地址发出请求
重定向的原理
- 访问AddEmp
- 执行数据插入操作
- 执行结束后重定向代码发回一个数据包,包里面包括302状态码和一个消息头Location
- 浏览器收到后会立即向服务器的ListEmp发出请求
重定向的特点
- 重定向的地址可以是任意的地址
- 重定向之后,浏览器地址栏会发生改变
- 重定向过程中涉及到Web组件不会共享同一个request和response对象
请求资源路径
- 什么是请求资源路径
- web服务器对请求地址的处理过程
匹配Servlet规则
精准匹配
- 通过将历经资源路径中的具体资源名称与web.xml文件中的"url-pattern"进行对比,严格匹配相等后找到对应资源并执行
- 如:
尽管应用中有abc.html这个具体的页面,也会执行url-pattern对应的Servlet,而不是返回具体的abc.html页面
通配符匹配
- 使用" * "来匹配0或多个字符
- 如:
- 代表任何不同url地址都匹配成功
- http://ip:port/appName/abc.html 匹配成功
- http://ip:port/appName/abc/def/gh 也匹配成功
后缀匹配
- 不能使用斜杠开头,使用" *. "开头的任意多个字符
- 如 : 会匹配以" .do " 结尾的请求
- http://ip:port/appName/abc.do 匹配成功
- http://ip:port/appName/abc/abc/abc/abc.do 也匹配成功