- 博客(3)
- 资源 (1)
- 收藏
- 关注
原创 Servlet总结(三)
这几个方法要在调用getWriter方法之前调用,当然更要在response被提交之前调用。因为getWriter获取的是字符流形式的响应体,而把响应体从二进制转换成字符流就需要字符编码,所以必须在这之前设置好。。。有时候响应体太大,肯定不会一次性发送给客户端,只能分割成小块一块一块发送。那么这个小块到底是多大,这就是bufferSize去定义了。容器应该会去内存申请一块bufferSize大小的内存,然后把响应体写入到其中,满了之后就发送给浏览器,然后继续存储下面的内容。
2017-04-17 18:37:13 342
原创 Servlet总结(二)
想要getCharacterEncoding不返回null,只能在后台手动调用setCharacterEncoding,但是必须在调用getWriter之前调用。这是为什么呢?为什么不是getInputStream呢?第一,设置字符编码必须在获取请求体之前,因为容器要根据字符编码去解析请求体,如果已经获取到了请求体,那显然再去设置字符编码就没意义了;第二,getInputStream方法获取的是字节流形式的请求体,就是一堆二进制,所以不需要字符编码解析,而getWriter获取的是字符流形式的请求体,这就需
2017-04-08 17:29:25 427
原创 Servlet总结(一)
实际上,容器只会为每个servlet的实现类创建一个对象,只用这一个对象来应付所有访问它的请求。当不止一个请求时,为了效率必然要开启多线程。也就是说,到时会有多个线程在访问这个对象的service方法,如果在service方法中修改了private变量,那必然会造成数据不一致的问题;而如果把private变量设成同步的,又会造成效率的下降。所以就把初始化参数放到配置文件中。应用名后面一般不再有斜线,所以<url-pattern>标签的值往往以斜线开头,斜线后面的部分可以是一个正则表达式,比如/*代表任何路
2017-04-04 17:15:41 2234
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人