portlet(什么是Portlet)
本文目录
- 什么是Portlet
- Portlet 是什么
- 如何在同一portlet中使用不同的主题样式
- Portal是什么
- 如何根据portlet中ref属性来查找bean
- jsp页面中的标签 prefix=“portlet“ 是怎么用法
- Portal是用来干什么的
- Portlet和Servlet的异同
什么是Portlet
Portlet是基于java的web组件,由portlet容器管理,并由容器处理请求,生产动态内容。Portals使用portlets作为可插拔用户接口组件,提供信息系统的表示层。作为利用servlets进行web应用编程的下一步,portlets实现了web应用的模块化和用户中心化。 portlet规范,即jsr(Java Standardization Request )168,是为了实现portal和portlet的互操作。它定义了portlet和portlet容器之间的合约,让portlet实现个性化、表示和安全的api集。规范还定义了怎样在portlets应用中打包portlets。
Portlet 是什么
通常请求一个portal页面会引发多个portlets被调用。每个portlet都会生成标记段,并与别的portlets生成的标记段组合在一起嵌入到portal页面的标记内。”(摘自Portlet规范,JSR 168) Portal的功能可以分为三个主要方面:1. Portlet容器:Portlet容器与servlet容器非常类似,所有的portlet都部署在portlet容器里,portlet容器控制portlet的生命周期并为其提供必要的资源和环境信息。Portlet容器负责初始化和销毁portlets,向portlets传送用户请求并合成响应。3. 公共服务:portlet服务器的一个强项是它所提供的一套公共服务。这些服务并不是portlet规范所要求的,但portal的商业实现版本提供了丰富的公共服务以有别于它们的竞争者。在大部分实现中都有望找到的几个公共服务有:单次登录:只需登录portal服务器一次就可以访问所有其它的应用,这意味着你无需再分别登录每一个应用。例如一旦我登录了我的intranet网站,我就能访问mail应用、IM消息应用和其它的intranet应用,不必再分别登录这些应用。Portal服务器会为你分配一个通行证库。你只需要在mail应用里设定一次用户名和密码,这些信息将以加密的方式存储在通行证库中。在你已登录到intranet网站并要访问mail应用的时候,portal服务器会从通行证库中读取你的通行证替你登录到mail服务器上。你对其它应用的访问也将照此处理。一些在个性化服务方面领先的商业实现版本允许你建立为用户显示什么样的应用所依据的标准(如收入和兴趣)。在这种情况下,可以设定一些像“对任何收入为X的用户显示馈赠商品的portlet”和“对任何收入为X的用户显示打折商品的portlet”这样的商业规则。Portlet与Servlet比较: 与servlets类似,portlets是部署在容器内用来生成动态内容的web组件。从技术角度讲portlet是一个实现了javax.portlet.Portlet接口的类,它被打包成war文件格式部署到portlet容器里。 Portlets在以下方面与servlets相似:1. portlets由特定的容器管理。2. portlets生成动态内容。3. portlet的生命周期由容器管理。4. portlets通过请求/响应模式与web客户端交互。 Portlets在以下方面与servlets相异:1. portlets只能生成标记段,而不是整个文档。2. portlets没有可供直接访问的URL地址。不过你还是能够让别人通过URL访问到portlet,你可以把包含该portlet的页面的URL发给他。3. portlets不能随意地生成内容,这是因为portlet生成的内容最终要成为portal页面的一部分。如果portal服务器要求的是html/text类型,那么所有的portlets都应生成html/text类型的内容。
如何在同一portlet中使用不同的主题样式
在你这种情况下,两个样式表都是相同的来源(即外部样式),相同的特殊性(即选择符的ICE相同),相同的重要性声明(即两者都没有重要声明),所以后来的相同属性的声明会覆盖前面的。如果你要实现你的效果,可以在冲突的声明中加 !important重要声明就可以了。
Portal是什么
英文字面是“入口”,国内有叫“门户”技术的,但我觉得“集成”技术更能表达它的意思。Portal是一个基于web的应用程序,它主要提供个性化、单点登录、不同来源的内容整合以及存放信息系统的表示层。 为规范Portal,SUN于2003年底制定了JSR168,它定义了Portlet标准,并给出了一个实现接口。 Portlet是基于java技术的web组件,它由Portlet容器管理、并处理请求,并动态生成输出内容。Portlet是基于java的web组件,由Portlet容器管理,并由容器处理请求,生产动态内容。Portals使用Portlets作为可插拔用户接口组件,提供信息系统的表示层。作为利用servlets进行web应用编程的下一步,Portlets实现了web应用的模块化和用户中心化。Portlet规范,即jsr(java specification request)168,是为了实现portal和Portlet的互操作。它定义了Portlet和Portlet容器之间的和约,让Portlet实现个性化、表示和安全的api集。规范还定义了怎样在Portlets应用中打包Portlets。 低成本的集成技术。如果你的网站或企业已经有了很多信息系统,Portal可以很容易的将这些系统集成起来,并以统一的方式提供给用户,统一可以有流程的统一,如:登陆、定制、浏览;界面的统一,如:显示风格登高度的模块化。通过Portal技术提供的plugin技术,可以根据企业,网友的需求编制标准的模块,并嵌入Portal系统,供企业、网友使用。高度的扩展性,已经有了很多产品和标准来制定Portal,作为这些产品和标准,如:jsr- 168,通过Portlet的概念来对Portal的功能进行扩展。 个人认为从两个方面。一是针对跟人(网友)的应用。由于Portal的特色,企业和网站可以很容易的将自己的服务进行标准封装,插入Portal系统,提供跟用户使用。现在很多门户网站和专业网站有很多服务,但是很多服务用户根本就没有使用过、发现过,通过Portal的形式给用户一个集中体验的场所。二是针对企业,企业可以将现有的信息系统,资源通过Portal来进行封装,提供给用户使用。比如:有些公司有报销系统,考核系统,会议系统,但这些系统都是彼此分离的,使用和界面并不统一,通过Portal可以很容易地将这些系统提供的服务封装并呈给用户使用。
如何根据portlet中ref属性来查找bean
1.实例化bean的三种方法:(1) 构造器《!-- 体验1 --》《bean id=“personService“ class=“com.persia.PersonServiceBean“》《!-- index 代表方法的参数序号,由0开始,基本的类型Type可以不声明--》《constructor-arg index=“0“ value=“构造注入的name“ /》《constructor-arg index=“1“ type=“com.persia.IDaoBean“ ref=“personDao“/》《/bean》对应类public PersonServiceBean(String name, IDaoBean personDao) { this.name = name; this.personDao = personDao; }《!-- 体现2--》《bean id=“personDao“ class=“cn.itcast.dao.impl.PersonDaoBean“ /》《bean id=“personServiceBean“ class=“cn.itcast.service.impl.PersonServiceBean“ lazy-init=“true“ init-method=“init“ destroy-method=“destory“》 《!-- ref属性对应id personDao值 name属性对应接口的getter方法名称--》 《property name=“personDao“ ref=“personDao“ /》《!-- 体验3 --》《!-- 注入属性值 --》 《property name=“name“ value=“123“/》 《!-- Set的注入 --》 《property name=“sets“》 《set》 《value》sets:第一个值《/value》 《value》sets:第二个值《/value》 《value》sets:第三个值《/value》 《/set》 《/property》 《!-- List的注入 --》 《property name=“lists“》 《list》 《value》lists:第一个值《/value》 《value》lists:第二个值《/value》 《value》lists:第三个值《/value》 《/list》 《/property》 《!-- Properties的注入 --》 《property name=“properties“》 《props》 《prop key=“props-key1“》:第一个值《/prop》 《prop key=“props-key2“》:第二个值《/prop》 《prop key=“props-key3“》:第三个值《/prop》 《/props》 《/property》 《!-- Map的注入 --》 《property name=“maps“》 《map》 《entry key=“maps-key1“ value=“:第一个值“ /》 《entry key=“maps-key2“ value=“:第二个值“ /》 《entry key=“maps-key3“ value=“:第三个值“ /》 《/map》 《/property》《/bean》(2) 静态工厂:《!-- 静态工厂获取bean --》《bean id=“personService2“ class=“com.persia.PersonServiceBeanFactory“ factory-method=“createInstance“/》 对应类public static PersonServiceBean createInstance(){ return new PersonServiceBean(); }(3) 实例工厂:没有静态方法,因此配置时,先实例化工厂,在实例化需要的bean。《!-- 实例工厂获取bean,先实例化工厂再实例化bean--》《bean id=“fac“ class=“com.persia.PersonServiceBeanInsFactory“/》《bean id=“personService3“ factory-bean=“fac“ factory-method=“createInstance“/》对应类public PersonServiceBean createInstance(){ return new PersonServiceBean();}2. bean的作用域默认情况为单例方式:scope=”singleton”singleton单实例作用域,这是Spring容器默认的作用域,使用singleton作用域生成的是单实例,在整个Bean容器中仅保留一个实例对象供所有调用者共享引用。单例模式对于那些无会话状态的Bean(如辅助工具类、DAO组件、业务逻辑组件等)是最理想的选择。prototype原型模式,这是多实例作用域,针对每次不同的请求,Bean容器均会生成一个全新的Bean实例以供调用者使用。prototype作用域非常适用于那些需要保持会话状态的Bean实例,有一点值得注意的就是,Spring不能对一个prototype Bean的整个生命周期负责,容器在初始化、装配好一个prototype实例后,将它交给客户端,随后就对该prototype实例不闻不问了。因此,客户端要负责prototype实例的生命周期管理。request针对每次HTTP请求,Spring容器会根据Bean的定义创建一个全新的Bean实例, 且该Bean实例仅在当前HTTP request内有效,因此可以根据需要放心地更改所建实例的内部状态, 而其他请求中根据Bean定义创建的实例,将不会看到这些特定于某个请求的状态变化。 当处理请求结束,request作用域的Bean实例将被销毁。该作用域仅在基于web的Spring ApplicationContext情形下有效。session针对某个HTTP Session,Spring容器会根据Bean定义创建一个全新的Bean实例,且该Bean实例仅在当前HTTP Session内有效。 与request作用域一样,我们可以根据需要放心地更改所创建实例的内部状态,而别的HTTP Session中根据Bean定义创建的实例, 将不会看到这些特定于某个HTTP Session的状态变化。 当HTTP Session最终被废弃的时候,在该HTTP Session作用域内的Bean实例也会被废弃掉。该作用域仅在基于Web的Spring ApplicationContext情形下有效。global sessionglobal session作用域类似于标准的HTTP Session作用域,不过它仅仅在基于portlet的Web应用中才有意义。portlet规范定义了全局Session的概念,它被所有构成某个portlet Web应用的各种不同的portlet所共享。在global session作用域中定义的Bean被限定于全局portlet Session的生命周期范围内。如果我们是在编写一个标准的基于Servlet的Web应用,并且定义了一个或多个具有global session作用域的Bean,系统会使用标准的HTTP Session作用域,并且不会引起任何错误。该作用域仅在基于Web的Spring ApplicationContext情形下有效。3. bean的生命周期(1)什么时候实例化?对于单例的形式,在容器实例化的时候对bean进行实例化的。www.cdtarena.comApplicationContext ctx=new ClassPathXmlApplicationContext(new String{“applicationContext.xml“});单实例可以通过lazy-init=”true”,在getBean时进行实例化。在beans里面default-lazy-init=”true”对所有bean进行延迟处理。对于prototype,则是在getBean的时候被实例化的。(2)在bean被实例化之后执行资源操作等方法:Init-method=””(3)在bean销毁之前执行的方法:Destroy-method=””什么时候被销毁?随着spring容器被关闭时被销毁。调用spring容器的close方法来正常关闭。以前是随着应用程序执行完而关闭。在Spring装载配置文件后,Spring工厂实例化完成,开始处理(1)使用默认构造方法或指定构造参数进行Bean实例化。(2)根据property标签的配置调用Bean实例中的相关set方法完成属性的赋值。(3)如果Bean实现了BeanNameAware接口,则调用setBeanName()方法传入当前Bean的ID。(4)如果Bean实现了BeanFactoryAware接口,则调用setBeanFactory()方法传入当前工厂实例的引用。(5)如果Bean实现了ApplicationContextAware接口,则调用setApplicationContext()方法传入当前ApplicationContext实例的引用。(6)如果有BeanPostProcessor与当前Bean关联,则与之关联的对象的postProcess- BeforeInitialzation()方法将被调用。(7)如果在配置文件中配置Bean时设置了init-method属性,则调用该属性指定的初始化方法。(8)如果有BeanPostProcessor与当前Bean关联,则与之关联的对象的postProcess- AfterInitialzation()方法将被调用。(9)Bean实例化完成,处于待用状态,可以被正常使用了。(10)当Spring容器关闭时,如果Bean实现了DisposableBean接口,则destroy()方法将被调用。(11)如果在配置文件中配置Bean时设置了destroy-method属性,则调用该属性指定的方法进行销毁前的一些处理。(12)Bean实例被正常销毁。
jsp页面中的标签 prefix=“portlet“ 是怎么用法
就是你使用《%@ taglib prefix=“portlet“ uri=““》定义一个一个标签前缀,引入一个标签库然后你在页面中这样使用:《portlet: 后面使用相应的功能标签
Portal是用来干什么的
Portal是是一款由Valve所开发的第一人称射击/解谜游戏,主要是使用Source引擎。游戏的特色是不寻常的逻辑思考部份,玩家必须解决一些棘手及有趣的逻辑问题才能得到过关的方法。
在Portal游戏中有两个角色,一个是由玩家控制,叫做Chell的女人,和GLaDOS,两人均由Ellen McLain配音,GLaDOS是一部监视及引导玩家的人工智能电脑。关于Chell的背景只能由GLaDOS的话语中得知,但可信性不高,因为它多次不守信用及说谎。GLaDOS在玩家行动的过程中,总是用建议、劝告甚至是愤怒的情绪说话以引导玩家误入歧途。
扩展资料
门户分类
1、搜索引擎式门户网站
该类网站的主要功能是提供强大的搜索引擎和其他各种网络服务,这类网站在中国比较少。
综合性门户网站该类网站以新闻信息、娱乐资讯为主
网站以新闻、供求、产品、展会、行业导航、招聘为主的集成式网站。
2、地方生活门户
该类网站是时下最流行的,以本地资讯为主,一般包括:本地资讯、同城网购、分类信息、征婚交友、求职招聘、团购集采、口碑商家、上网导航、生活社区等频道,网内还包含电子图册、万年历、地图频道、音乐盒、在线影视、优惠券。
参考资料:百度百科——门户网站
Portlet和Servlet的异同
由于Portlet与Servlet存在若干不同之处,所以在编写基于Portlet应用时要注意以下几个问题:Servlet是与表现层无关的,所以一个完整的Web应用可以只有一个Servlet作为Controller。但是Portlet是与表现层相关的,表现层的多个Portlet将对应多个Concrete Portlet。对于Web应用,我们可以将操作请求的处理流程分为两步,处理请求和展示结果。在传统Servlet/JSP应用中,请求和展示总是一起被执行的。但是在Portlet应用中,情况发生了改变:当doView或doEdit被调用的时候,仅展示部分被调用。这造成了在Portlet应用中处理与展示两个部分的执行频率并不相同,也就造成了Portlet应用的两阶段处理模式。在Portlet应用中URL是动态生成的(Portlet提供一套API来完成)。Portlet不支持forward和redirect。
更多文章:
mysql workbench官网(为什么我的mysql workbench 打不开)
2025年2月16日 00:20
getsession方法(session的常用方法和request,ServletContext的区别)
2025年3月10日 23:00
基于j2ee是什么意思(j2ee的框架是什么意思啊谁能大概说说概念 )
2025年2月11日 06:20
lounge(Lounge吧和威士忌吧哪一个属于当今社会的消费主流)
2025年3月26日 07:00
access2007教程(数据库应用Access2007实例教程的内容简介)
2025年3月1日 16:50
ubuntu 中文输入法(刚安装的ubuntu系统如何更改输入法为中文输)
2025年4月14日 20:50
commando(电脑想升级,华硕commando主板最高能上什么CPU和显卡,内存)
2025年2月21日 22:40
keyboard not found(电脑无法开机,显示Keyboard not found 是什么意思)
2025年2月11日 17:20