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的
路径匹配映射
servlet可以通过web.xml 中
servlet过滤器
servlet过滤器继承于javax.servlet.servlet并实现javax.servlet.Filter的类,在请求到达服务程序前和响应发往客户端前进行加工处理。如果有大量的页面都需要进行相同的处理,则可以使用一个servlet过滤器对此一并处理。如你可以用servlet过滤器进行编码转换、或者为每个页面添加一个统一的标题头等。
servlet监听器
J2EE定义了多个Web事件监听器接口,servlet监听器是继承javax.servlet.servlet并实现这些事件监听接口的类。如果Web应用服务器对某个Web容器的事件感兴趣,就可以构造一个实现该事件监听接口的servlet,以便在该事件发生时做相应的处理。灵活使用servlet监听器,可以使一些原来很难实现的操作变得易如反掌。
Sorry, the comment form is closed at this time.
No comments yet.