servlet知识点总结

1、servlet与applet的区别:
(1):applet运行于浏览器中的JRE中,而servlet运行于Web服务器的servlet容器中;
(2):servlet没有图形用户界面,而Applet有丰富的图形用户界面。

2、servlet与JSP的区别:
servlet侧重于逻辑,JSP侧重于显示。一句和经典的话:servlet是包含HTML代码的Java程序,而JSP是包含Java代码的HTML网页。

3、servlet的运行机理:
servlet和Web应用服务器的servlet容器交互以接收请求返回响应。
请求最先由Web应用服务器的servlet容器处理并传给servlet,
servlet通过Web应用服务器返回响应给客户端。
客户端程序可以使用任何可向Web应用服务器发送请求的语言开发。

4、servlet高性能的原因:
(1):servlet在第一次初始化时装载并驻留在内存中,以后直接从内存中运行;
(2): 其次,在默认情况下servlet以单实例多线程的方式工作,一个新请求到达后,servlet实例开启一个新的线程服务这个请求。

5:与servlet相关的接口
所有的servlet都直接或间接地实现javax.servlet.servlet接口,这些接口规定了servlet如何与servlet容器进行通讯的方法,此外还定义了servlet的生命周期。Genericservlet是和协议无关的通用servlet,Httpservlet是专门针对HTTP协议开发的servlet,Web应用程序的servlet都直接继承Httpservlet。

javax.servlet.servlet接口包括了3个控制servlet生命周期的方法,它们分别是:

init(servletConfig config)方法
当servlet初始化时,init()方法被调用执行初始化servlet的工作,init()方法只被调用一次。servlet初始化后就进入就绪态,随时准备响应客户端的请求。

service(servletRequest req, servletResponse resp)方法
servlet容器调用service()方法处理请求并返回响应。servletRequest和servletResponse作为入参传给service(),servletRequest封装了请求的信息而servletResponse封装了响应的信息。

destroy()方法
servlet容器可以在任何时候卸载servlet,此时destory()被调用,你可以在这儿释放servlet所占用的资源。

6:servlet与线程安全
servlet在doGet()、doPost()中的局部域变量是线程安全的,而servlet的成员变量则有线程安全的隐患。所以除非你有意需要应用这种特性,在一般情况下,不宜将一些可改写的变量定义成servlet的成员变量,否则一定要采取线程同步的措施确保线程安全。

7:servlet的特性及适用场合:
自动启动
一般情况下,JSP只有在客户端第一次调用后,方才进行编译并初始化,而servlet则可以通过web.xml的配置,使其在Web容器启动时自动初始化。可使用servlet这个特性完成Web应用程序的初始化工作:如下载字典表、控制表、初始化配置信息等,启动某个后台进程等。

路径匹配映射
servlet可以通过web.xml 中用通配符配置URI映射,对多个匹配的URI进行响应,而JSP只能通过一个具体的URI调用。这个特性可以使你在请求进入某个具体的页面前截获并处理它,许多Web应用框架,如Struts、Spring都利用了servlet的这个特性,在此基础上创建构架。

servlet过滤器
servlet过滤器继承于javax.servlet.servlet并实现javax.servlet.Filter的类,在请求到达服务程序前和响应发往客户端前进行加工处理。如果有大量的页面都需要进行相同的处理,则可以使用一个servlet过滤器对此一并处理。如你可以用servlet过滤器进行编码转换、或者为每个页面添加一个统一的标题头等。

servlet监听器
J2EE定义了多个Web事件监听器接口,servlet监听器是继承javax.servlet.servlet并实现这些事件监听接口的类。如果Web应用服务器对某个Web容器的事件感兴趣,就可以构造一个实现该事件监听接口的servlet,以便在该事件发生时做相应的处理。灵活使用servlet监听器,可以使一些原来很难实现的操作变得易如反掌。

此条目发表在java/j2ee分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据