Servlet 处理HTTP请求
1.GET/POST 提交方法:
区别:
get:静态的,不重要的,长度不超过255个字符,会在地址栏显示
post:大量的,敏感信息,不会被浏览器缓存,地址栏不可见
2.获取HTTP协议求行:
getRequestURI()请求资源:/web01/index.html
getRequestURL()包括协议,服务器名,IP,端口号,资源路径:http://127.0.0.1:8080/web01/index.html
getServletPath()获取Servlet映射路径
3.请求转发
一个请求,多个Servlet处理,公用一个request和response对象,响应由最后一个Servlet响应
重定向由客户端完成
请求转发由服务器完成,服务器内部进行处理
请求范围:多个Servlet处理同个请求转发的时候,变量都可以访问,都是此请求对象
4.文件上传
表单:1、必须采用POST提交,2、必须指定编码类型为:multipart/form-data
enctype="multipart/form-data" method="post"
5、web应用程序状态管理
web服务器是不记录链接状态的,比如在购物,付账,登录,都不记录状态,
对于web服务器来说每次请求都是一个新的请求
解决web应用程序状态管理的解决方案:
1).表单隐藏字段:可以存储固定发送个服务器的固定值和名称,常用于会话跟踪,。。。
缺点:只有每个页面都是动态生成的时候才有效
2).Cookie:保存到客服端
Cookie是Web服务器发送到客服端浏览器的的简短文本信息。每次请求对比信息
但是用户是可以看到的,可能被修改,别人也可以得到,对于敏感信息,一般不用Cookie
3).URL重写:客户端讲一些额外的数据追加到表示会话的每一个URL地址末尾
用于浏览器不支持Cookie或者永辉禁用了Cookie,这是一种优秀的解决方案
缺点:服务器端需要完成许多简单却繁琐的处理过程
4).Session会话跟踪
Session对象就是服务器Wie客户端创建并维护的用于存放客户状态数据对象。该对象保存在服务器上。
缺点:数量少可以,数量大服务器要维持需要耗费大量资源,会减少并发量。