Head First Servlets&Jsp 读书摘记2——【作为Servlet】

今天完成第四章——【作为Servlet】的阅读,真是厚实的一章,内容不少:

Servlet的存在就是要为客户服务。

12、他居然用get来更新数据库,后果肯定很严重……(P93);

13、servlet的存在就是要为客户服务。servlet的任务是得到一个客户的请求,(处理请求,)再发回一个响应。(P93);

14、servlet的生命周期很简单,只有一个主要状态——初始化,如果servlet没有初始化,则要么正在初始化、正在撤销,要么就是还不存在。servlet生命周期简切:容器加载类,实例化(无参构造),init(),不断service-->doGet() doPost(),destroy()(P97);

15、每个请求都在一个单独的线程中运行,容器运行多个线程来处理对一个servlet的多个请求,对应每个客户的请求,会生成一对新的请求和响应对象。任何servlet类都不会有多个实例,只有SingleThreadModel情况例外。(P101);

16、在一个分布式Web应用中,每个JVM都会有特定servlet的一个实例,不过对每个JVM来说,仍只有该servlet的一个实例。(P101too^_^);

17、servlet从构造函数开始。但是构造函数只是使之成为一个对象,而不是一个servlet。

在调用构造函数和init()方法之间,servlet处于一章薛定谔servlet状态,不要在构造中放任何东西,可以都放在init()里。(P103);

18、GET和POST的区别:<1>发送数据的大小,<2>安全性,<3>get可以建立书签,post不能,<4>get对服务器不做任何改变,post则用于发送数据来进行处理(get为幂等,post为非幂等)。(P111~115);(谁说我不能用get中的参数来更新服务器P116);

19、可以从请求得到一个InputStream(),可以做很多事情,比如去除所有首部信息,处理请求负载(体)的原始字节,可能还会立即把它写到服务器上的一个文件中。

getHeader(),getIntHeader()中,后者返回一个整数,指示请求可以经过的最大路由跳数(如果想跟踪一个请求,看看是不是陷入一个循环,可以使用这个首部)

getRemotePort(),远程相对应servlet来讲是指客户,该方法“得到客户的端口”;getServerPort()说“请求原来发送到哪个端口?”getLocalPort()说“请求最后发送到哪个端口?”服务器会为每个线程找一个不同的本地端口,这样,一个应用就能同时处理多个客户了。(P123);

20、大多数情况下,响应只是为了向客户发回数据,不过,你也可以使用响应设置其他首部,发送错误,以及增加cookie。(P126);

21、response.setContentType("application/jar")/("text/html");设置响应内容的类型,具体类型google(P130);

22、一个响应有首部,

还有些有效负载在内部,

没有一个首部有多值,

此时就该用setHeader()。 //setHeader()会覆盖现有的值

(与addHeader()刚好相反,明白了吗? //addHeader()会增加另外一个值

(P133);

23、重定向使得servlet完全 卸下担子,确定无法完成工作后,servlet只是调用sendRedirect()方法;不能在响应已经提交之后再调用sendRedirect()!换句话说,如果已经向流中写了东西,在想重定向就太晚了(P136~137,140);

24、重定向 = 客户,请求分派 = 服务器。

重定向:我没时间!你为什么不问问Barney呢?没准他有时间。重新打过电话,用户会在浏览器地址栏看到新的URL。

请求分派:嘿,Karl,我是Dan……我想让你办一位客户。我会把怎么练习题的详细资料转发给你,不过希望你现在就接管。一个电话另一个人继续接,地址栏URL没任何变化。(P139);

这一章太多新东西,除了拼命摘呀就是拼命抄&_&。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值