什么是Java EE中的Web组件?

Rom*_*man 8 java terminology java-ee

术语"Web组件"在Java EE中的含义是什么?给我一些来自不同Java EE技术的例子(jsp,jsf,ejb ..)

UPD:我可以说jsp中的每个自定义标签都是一个Web组件,而jsf中的标签是Web组件吗?或者只有servlet和整个jsp页面是Web组件?会话bean是一个Web组件吗?

cle*_*tus 16

Web组件只不过是一个软件组件,它为传​​入的HTTP请求提供服务并提供某种(希望是有效的)响应.

大多数(如果不是全部)Java Web框架都是基于核心Java servlet技术构建的.servlet是一段持久的代码,它接收HTTP请求的抽象并提供HTTP响应.我说"持久"因为它通常在很多连接上都存在很长时间(不像大约10 - 15年前基于CGI的瞬态过程,当时servlet被设想了).

此外,servlet规范包括:

  • 用于创建和销毁servlet的钩子;
  • 自动会话管理,包括在集群环境中;
  • 响应中的输出使用标准Java I/O库;
  • Servlet对请求和响应有相当完整的抽象;
  • 支持应用程序级(持久)配置; 和
  • 数据的范围可以采用不同的方式(页面,请求,会话和应用程序).

JSP是一种特殊的标记,具有JSP功能的Web容器将"编译"为servlet代码.

Struts(1和2),Spring MVC,JSF,Seam,Wicket,Tapestry等都是基于servlet规范构建的Web框架.实际上有几十种这些都是不同的.