JavaWeb-Servlet

主题:学习Servlet小结-kaidi

1.Web开发客户端和服务器是分离的,客户端使用的是JavaScript,javaweb的服务器使用的是java。因为是不同的环境所以两者通讯只是浏览器发送请求(http请求),服务器解析请求,返回结果。

2.浏览器触发一个httprequest,服务器jetty解析http消息内容,如果发现请求的内容是Servlet功能。

3. 浏览器就启动ClassLoader加载对应的.class字节码文件,然后创建ServletConfig对象,根据初始化配置信息创建一个Servlet对象,执行servlet对象的init方法完成初始化。

à浏览器请求的是一个功能,而这个功能在javaweb里就是通过Servlet对象来表示的。浏览器请求的就是一个Servlet对象的方法。

当然浏览器也可以请求一个本地的对象,在html里有<object>标签可以请求本地的对象。

4.初始化的对象调用servlet的Service方法来处理客户端的请求。

à客户端的请求会包装成httpRequest和HttpResponse对象,用来接收浏览器的工作环境和所请求的资源和方式,最后有HttpResponse来返回处理的数据。

5.java不使用的对象都是需要销毁的,Sevlet对象会调用destroy方法关闭init和service访问的资源,然后交由垃圾回收器回收

àààà在面向对象的环境中,所有的请求都是请求的对象的功能。Html作为瘦客户端本身的对象处理能力弱。现在javaScript的普及极大的扩充了浏览器可以访问的对象。Web端的对象又是在更大的层面上拓展了浏览器的能力。

JSP

Jsp在服务器端是servlet在浏览器端就是html页面了。当第2步http请求的是jsp资源的时候,jetty会调用编译方法把.jsp页面编译成.class文件在服务器执行java代码,然后把处理的结果填充在对应html页面的相应位置,之后交给html页面来处理。

★★★★★ 状态对象:数据库的替代者

Servlet的生命周期为什么会那么引来关注。事实上任何对象都有生命周期都有初始化和销毁。Servlet的生命周期突出的是状态的变化,因为使用servlet我们是在进行状态编程,因为Servlet是一个状态对象,浏览器访问服务器不是单线程的,而是会有很大的并发量,这些大的并发访问,每个访问都有一个状态对象Servlet,但这么多的状态对象集中在服务器的内存的时候,任何一个Servlet的初始化都会加大服务器内存的消耗,而任何一个Servlet的destory都会直接的减轻服务器的负载。

★★☆☆☆ ServletContext总结

ServletConfig对象创建后就根据配置内容创建了Servlet对象。那么ServletConfig里有什么内容哪?

1.在web程序启动后创建一个ServletContext对象,代表整个web应用,所有本web应用下面的ServletConfig(也是Servlet)都维护一个ServletContext的引用来实现Servlet之间的通讯。(如果ServletContext是国道,ServletConfig就是国道联通的省道)而Servlet就是广大的城区了。


原文地址:https://www.cnblogs.com/zhanghaiyublog/p/3583323.html