Javaweb相关03

响应普通文本文件和二进制数据文件时,
分别用writer()和outputstream()传输

浏览器和表单只支持GET和POST请求,
浏览器向服务器发送请求的方式:
1、地址栏输入url GET请求
2、超链接的href GET请求
3、表单提交的action GET/POST请求
4、Ajax GET/POST请求

GET方法只支持提交文本,且长度小于255,数据会缓存在浏览器url历史中,
POST方法可以提交文本和二进制数据,且数据长度没有限制,数据不会被浏览器保存。

注解@
@WebServlet(urlPattern="")也可以配置servlet
但注解或者配置文件无法同时使用
当文件过多以后维护起来相对于配置文件更加麻烦

获取请求头的通用方法为getHeader();其余的方法只是简化

在使用form表单提交的时候,如果有需要上传的二进制数据文件,因为默认的form表单提交的是url格式,
只能传输普通文本,所以需要加enctype属性来改变编码格式(二进制:multipart/form-data),在获取
时需要加上注解@MultipartConfig来开启文件上传开关,使得普通文本数据也能获取。

回写二进制数据文本的时候需要注意src地址填写url地址而不是物理地址。

页面转发(内部转发)与重定向:
都可以跳转页面和servlet对象;
页面转发只有一次请求一次响应。
页面转发其url不会改变,是服务器内的跳转,由请求对象执行,

相比于ServletContext,使用Request对象作为仓库保存信息更加安全,其使用方法与ServletContext相同

关于实现用户状态追踪
1、隐藏表单域:input type=“hidden”;
缺陷:servlet中有静态页面会终止传输。
2、cookie技术:在服务器端生成cookie对象(key-value保存),cookie对象存放在响应头中,发送给浏览器;
浏览器取出cookie对象,以文件形式保存到本地,在下一次发送时同时传输cookie对象;
将客户信息保存在客户端;
生命周期由setMaxAge()方法决定。:>0:存在时间,=0:立即销毁 ,<0,关闭浏览器销毁
3、URL重写:在用户禁用cookie时,通过url重写保存SessionId;

4、Session技术:在服务器端创建session对象保存用户数据,为该对象创建SessionId,与对象一一对应;
将sessionId以cookie的形式响应给浏览器,以文件形式保存到本地,服务器通过sessionId读取对应数据;
将客户信息保存在服务器。
销毁Session对象的方法:
1、设置会话超时:可通过setMaxInactiveInterval()方法设置最大不活动时间,为负数则不销毁;
2、invalidate()方法:调用时立即销毁;
3、结束服务器
Session对象也可以作为仓库保存数据,生命周期为一次会话期间;
理论上是线程安全的。
会增加服务器开销。

三大作用域对象
1、ServletContext;
2、Session;
3、Request。

事件监听器主要监听三大作用域对象中的数据变化。·
监听器由8个接口6个事件类:
8个接口:
三个监听对象的生命周期
1、创建对象
2、销毁对象
三个监听对象的属性改变
1、添加属性
2、修改(覆盖)属性
3、移除属性
一个监听session对象的会话迁移
HttpSessionActivisionListener
一个监听session对象的对象绑定
HttpSessionBindingListener

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值