❶ 涂料客户定制化需求多怎么处理
如何处理左右为难的客户定制需求?
BeeArt
重塑数字化产品管理新模式
来自专栏数字化产品设计社区
(文章作者:产品经理 钱冰沁)
自从孵化 BeeArt 以来,常常收到各种各样的用户反馈与客户需求,它们在需求分析看板中有着专属的一列,不完全统计多达上百个。只是对于一款 B端产品而言,这样多的个性化需求是非常头疼的一个问题。面对这类需求,到底该如何处理?这里面有多少是真需求,是核心需求,哪些又只是边缘性需求,哪些应该被通用,哪些属于个性化,又有多少其实是伪需求呢?
作为一名 B端的产品经理,你该如何面对它们呢?在此我有一些个人经验想分享给大家,我是如何思考这些客户需求?又是如何合理处理它们?
01. 客户需求可以分为哪些?
a. 个性化功能
我希望在我的团队空间中,左上角 BeeArt Logo 可以替换成自己的品牌 Logo
当接到这个需求后,我了解到这个团队需要举办一次线上工作坊大会,参会者会使用 BeeArt 作为交流工具,因此希望自己大会的 Logo 可以更多的对参会者露出。对他们来说,左上角的 BeeArt Logo 会混淆主办方的品牌。因此他们提出可以更换主 Logo 的需求。
那么这个需求属于个性化需求吗?我相信不少产品经理也接到过企业客户提出换 Logo 与换肤的需求,这似乎是一个可以被通用的常规需求。在判断这个问题时,我从以下几方面思考:
这个需求之前是否有其他许多客户提出过?
提出此需求的客户是否是产品的主要目标客户群体?
在翻阅了之前的需求池与反馈记录中发现,没有除此之外的任何客户提出过该需求,当客户在使用一款 SaaS 软件时,心里便会默认左上角为软件品牌 Logo,这对使用者似乎并不造成混淆。而此团队举办线上工作坊今年也只有这一次,并非一个高频通用场景。坦白说,在之后的产品销售时也不会将此客户当做核心目标客户。
因此,依照当下即可判断,这就是一个个性化功能!
b. 定制类功能
定制是 B 端产品始终绕不开的话题,SaaS 产品的噩梦。我粗粗的会分为以下 3种情况:
产品的角色权限分类需要匹配我们的组织架构
1. 对于 大型客户,因为本身规模大、业务结构复杂、流程固定,因此他们所需要的解决方案都带有极强的专属风格,很多需求只能依靠定制才能完美匹配;
提供更多的教程指引,再来几个小游戏模板
2. 对于 中小客户,由于他们业务还没有标准化,流程也不一定成熟,因此很多规范的通用需求对于他们使用门槛较高,需要很多开箱即用的定制需求;
白板内字号从14跳到18,差别过大,字号选项增加 16号;
3. 一些 偏视觉类 的定制需求,由于每个客户甚至个人的视觉偏好差异较大,字体字号,颜色边距,每个人可能都不一样。
其实定制类的需求往往也是一种个性化需求,由于客户 A 所定制的功能,很可能其他客户都不需要。因此面对较为完整的具有时间节点的定制需求,我会考虑通过付费的项目制进行推进。
随着 B 端产品逐年演进成熟,目标客户群体中高端大型客户占比越高,所需要应对的定制化需求也就越多。产品面临的架构臃肿,功能冗余的风险也就越高。这也是很多 SaaS 产品坚持只走 SaaS 路线的原因。
c. 私有化部署功能
私有化部署就是将本有公有云上的代码部署在客户的私有云或本地机房中,本质上它已和公有云上的 SaaS 产品不再是一套。
对接企业 SSO 登录
一般需求私有化部署的客户大致分为:
对于自身数据安全有严格要求的
需要对接企业已有系统的
需要二次开发自己的专属功能的
拥有自主服务器和开发人员,希望自己维护演进的
由于私有化部署需要团队消耗更多的时间,人力与成本。因此,一般只有资金充沛的中大型客户才会需要私有化部署。最大的风险即为当客户在私有化部署之后又叠加了定制化功能,对于后续升级与维护将是难上加难。也就意味着这类客户将由产品的升级订阅转为了项目制运维。
02. 评估价值与可行性
一个成熟的产品经理在面对这些客户需求的时候,并不应该一味的满足同意,应该站在需求的价值、投入产出比、可行性等角度进行综合分析。
a. 价值评估
1. 是否具有 被通用的潜力有些需求可能是某个业务领先的客户提的,从当前来看,极有可能是一个个性化需求。但是从长远角度来看,这个需求可能会成长为一个通用化的需求,随着整体客户群的周期进入发展期后,这类需求将会逐渐通用化。
2. 能否为单体客户提供足够大的价值某个单个需求,可以为客户带来巨大价值,为客户赚取巨大收益、或是缩减成本。
3. 能否为产品带来品牌效应这个需求对于产品本身来说有没有商业价值,但可以与客户发生链接,最终达到客户帮产品做宣传与背书、帮我们转介绍更多的客户等。
b. 投入产出比
有些需求可能只是修改一下前端页面的 UI,那么这种改动就比较小,投入产出也就比较小,虽然价值不大,但是成本也很低,可以视紧急程度而决定。现有 BeeArt 中则是每个迭代都会安排固定的时间进行 UI 优化,既能满足客户需求,又不占用过多资源。
c. 可行性
在前文所分类的 3种客户需求中,私有化部署的需求往往是难度最大的。
1. 不同的硬件配置、不同的硬件架构、不同的操作系统、不同的网络情况等,不同的安装、架构、运维都要与之兼容;
2. 每次的版本功能更新,都需要在各个客户处私有化部署一次,工作量重复了好几倍;
3. 私有化服务产生的 bug 会带有特殊性,和 SaaS 中的同一种 bug 并不一定是因为相同原因产生的,增加了定位难度,同时修复后要单独再发布更新,大大增加了问题的响应时间;
4. 不同私有化的部署的产品版本可能存在多个,迭代功能需要考虑不同版本的兼容和影响,成本巨大;
因此,如果你是一个创业小团队,在产品还未成熟的早期,私有化部署会对产品迭代演进造成很大的阻力,更建议成熟后在做打算。
03. 如何正确的处理客户需求?
1. 对于小功能型需求、页面 UI 类型需求等个性化需求,如果客户重要度较高、需求轻量度较小、且对业务流程基本无影响,可以考虑直接进入产品路线图进行排期优化,或是择机通过收费的形式进行定制。
2. 如果该个性化需求实现成本很高,且对现有业务流程影响很大,需要进行大量改造的,我建议再三慎重思考,尤其在产品孵化早期,接这样的定制化需求会对产品本身的迭代带来巨大的影响。因为这不仅是一次性研发,在未来的每次迭代,你都要额外考虑一套可能差异巨大的业务流程的兼容,从产品、开发、测试每个角度来说工作量都会大增,甚至会严重影响 SaaS 产品自身的发展。
3. 除非这个客户真的是不能丢弃的客户,做完这些定制化需求,客户能给你带来巨大的价值,那么也只能硬着头皮接了。接了需求后,一定要合理的分配 SaaS 和定制化的资源分配,不要本末倒置,长期把资源都投入到了定制化、私有部署中。这也是很多 B端 SaaS 产品还没做起来就已经潜入一堆浆糊、瞻前顾后、和无休止的客户扯皮中的原因。
作为一名产品经理,接需求往往最容易。难得是如何在纷乱的需求噪音中坚持本心,不被眼前的利益动摇,拒绝掉那些与产品形态和商业模式不符合的需求。
❷ 对于自学前端有什么建议
自学方法:
1、作为一个初学者,你必须明确系统的学习方案,我建议一定有一个指导的人,全靠自己学,放弃的几率非常大,在你对于web前端还没有任何概念的时候,需要一个人领进门,之后就都靠自己钻研,第一步就是确定web前端都需要哪些内容,并且在多少时间内学完,建议时间6个月保底。
2、视频为主,书为辅。很多初学者在学习前端的时候非常喜欢去买书,但是最后的结果是什么?看来看去什么都不会写,所以在这里给大家提醒,书可以看,但是是在建立于你已经对于某个知识点有了具体操作的执行后,在用书去巩固概念,这样更加利于你对于知识的理解。
3、对于学习技术来讲,掌握一个学习方法是非常重要的,其实对于学习web前端来讲,学习方法确实很多都是相通的,一旦学习方法不对,可能就会造成“方法不对,努力白费”。其实关于这方面还是很多的,我就简单说个例子,有的人边听课边跟着敲代码,这样就不对,听课的时候就专心听,做题的时候就专心做题,这都是过来人的经验,一定要听。根据每个人的不同,可能学习方法也会有所出路,找到适合你自己的学习法方法是学习的前提。
4、不建议自己一个人瞎学,在我了解学习编程的这些人来看,从零基础开始学并且最后成功做这份工作的其实并没有几个,我觉得大部分原因就是因为他们都不了解web前端是干什么的,学什么的,就盲目的买书看,到处找视频看,最后看着看着就放弃了,所以我建议初学者在没有具体概念之前,还是找有经验的人请教一下,聊过之后你就会知道web前端具体是干什么的,该怎么学,这是我个人的小建议,可以不采纳。
自学路线:
第1阶段:前端页面重构(4周)
内容包含了:(PC端网站布局项目、HTML5+CSS3基础项目、WebApp页面布局项目)
第2阶段:JavaScript高级程序设计(5周)
内容包含:(原生JavaScript交互功能开发项目、面向对象进阶与ES5/ES6应用项目、JavaScript工具库自主研发项目)
第3阶段:PC端全栈项目开发(3周)
内容包含:(jQuery经典交互特效开发、HTTP协议、Ajax进阶与PHP/JAVA开发项目、前端工程化与模块化应用项目、PC端网站开发项目、PC端管理信息系统前端开发项目)
第4阶段:移动端项目开发(6周)
内容包含:(Touch端项目、微信场景项目、应用Angular+Ionic开发WebApp项目、应用Vue.js开发WebApp项目、应用React.js开发WebApp项目)
第5阶段:混合(Hybrid,ReactNative)开发(1周)
内容包含:(微信小程序开发、ReactNative、各类混合应用开发)
第6阶段:NodeJS全栈开发(1周)
内容包括:(WebApp后端系统开发、一、NodeJS基础与NodeJS核心模块二、Express三、noSQL数据库)
基础书籍:
1、《Head First HTML与CSS(第2版)》,入门真的是经典书籍,手把手教学,丰富的案例让你从 0 开始学前端。
2、《CSS权威指南(第三版)》,这本书作为 CSS 的经典着作,把原理讲得非常的通透,除了 w3c 标准,算最权威的一本了,毕竟权威指南。
3、《CSS揭秘》神书,47 个 css 技巧让你在面对各种 css 问题的时候游刃有余。是 css 书籍中评分最高的了,css 进阶必备。
4、《javascript语言精粹》,这本书可以在入门之前了解一下基本语法,以及在学习之前可以了解下 JS 里面的精粹以及糟粕,虽然这本书很薄很薄,但是值得反复去读的一本书。
5、《JavaScript DOM编程艺术(第2版)》,本书在简洁明快地讲述JavaScript和DOM的基本知识之后,通过几个实例演示了专业水准的网页开发技术,透彻阐述了平稳退化等一批至关重要的 JavaScript编程原则和最佳实践。
6、《JavaScript权威指南》:犀牛书是每个FE都绕不过的一本书,可以先大致通读几遍,也可以把其当作工具书,时时翻阅。
望采纳~
❸ 面对大量定制化的需求,企业要怎么做才能实现大量定制化生产
一般来讲,既然是定制化生产,客户就要接受定制化交期一般要长这个要求;另外,因为是定制化,就要跟批量生产区别开来,不能完全按照批量要求满足客户,不要盲目扩大生产能力,最好使用饥渴营销模式,不至于扩大规模后,矛盾转化,将会给公司带来不可逆转的恶性循环。个人建议,仅供参考。
❹ web前端产业发展现状
Web前端开发发展前景:
1、Web前端人才需求量大
据国内第三方数据统计,未来五年我国信息化人才总需求高达1500万-2000万人。其中“网络工程”“UI设计”“Web前端”等人才的缺口最为突出,所以2021年Web前端的市场需求很大。更有甚者目前不仅大型互联网公司相继成立了专属的Web前端部门,中小型公司和创业公司也急需专业的Web前端工程师。
2、Web前端薪资待遇高
前端开发行业薪资水平呈上涨趋势,Web前端开发早已不是做带动动画的下拉菜单的时代,他们已成为互联网的主宰者,各行业都用其开发互联网应用。
3、前端就业方向多
Web前端开发在软件开发中,就业门槛较低好就业,薪资待遇平均超过13k。在目前互联网只要公司有需要开发互联网产品,包括网站,网页h5,小程序,APP等等,就需要前端开发工程师岗位,具体的就业的方向还可以按公司的技术需求来区分,侧重点各有不同,就业行业随着互联网的发展,已经变得越来越广泛。
4、Web发展前景好
随着5G时代的到来,知否在移动互联网领域将会出现新的开发场景,包括自动驾驶,车联网,物联网,人工智能还有可穿戴设备等领域将带来大量的额前端开发需求,有需求就会有市场。
可以看出,Web前端工作无法被替代,客户需求存在前景巨大。但IT行业只有不断的自我学习更新才不会被行业所淘汰。
❺ web开发的发展前景怎么样
近几年,前端的发展还是非常好的,市场需求大,加上学习起来也相对简单,有众多人选择并学习。现在流行前后端都会的全栈技能,目前前沿的前端技能叫做web全栈工程师。
学习的内容包括:
①计算机基础以及PS基础
②前端开发基础(HTML5开发、JavaScript基础到高级、jQuery网页特效、Bootstrap框架)
③移动开发
④前端高级开发(ECMAScript6、Veu.js框架开发、webpack、前端页面优化、React框架开发、AngularJS 2.0框架开发等)
⑤小程序开发
⑥全栈开发(MySQL数据库、Python编程语言、Django框架等)
⑦就业拓展(网站SEO与前端安全技术)
互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。
想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。
祝你学有所成,望采纳。
❻ 现在Web前端是否已经饱和了
由于现在的互联网行业的快速发展,企业之间的竞争日趋明显,对Web前端工程师的要求也日益提高。对于基础不扎实技能掌握不全面的小伙伴来说,面试成功率不似几年前那样火爆,本质原因还在于企业对人才的筛选更加理性化。所以导致了部分对于前端技术掌握不是很好的人很难找到工作,而企业也是难找到一个合适的前端人才。
因此,现在的前端行业出来了俩种不同的现象就是能力强的学习好的工作的机会很多,学习不好的,掌握的知识不扎实的导致工作机会比较少。所以现在的web前端也不是说是饱和了而是对于前端人才的要求提高了。
那作为Web前端开发师,需要掌握哪些能力才找到好的工作呢?
我认为有以下五个方面:
1、基础知识牢固,而不仅仅满足于框架。框架的学习是必然的,大部分公司都是基于各种不同的框架进行开发的,但是作为一个优秀的前端工程师,不仅仅要掌握框架的基本使用,也要懂得前端原理。这样才能更好的使用各种工具。
2、具有“解决问题”的能力,并非机械化堆砌语句。简单的代码工作已经不适合现在企业的告诉发展,更多的是需要处理问题的思维能力,才能获得更好的机会。
3、代码规范,能够快速融入团队协作。尤其大公司对于团队合作的要求是非常明显的,所以需要开发者能严格的按照代码规范书写以及注释。
4、了解用户体验,研究性能优化。产品最终使用者都是用户,而企业对于用户体验的要求已经达到了极致,在市场竞争体制下,更好的了解用户体验,才能获得更多的机会。
5、实战经验必不可少。一个前端工程师完成的项目数量以及质量是他在面试时候的加分项,也是提高薪资水平的前提。
Web前端开发工程师找工作需要更加真实的实力。所以想要进入Web前端开发领域的小伙伴,抓紧时间完善自身技术水平,多方面补充自己的能力吧。
不会,这才刚开始呢。等node这样的东西更成熟些,市场份额据主流就差不多了。不过那时候,也就不分前后端了吧!
每一年都有人问这个问题,但是你会发现招聘信息只增不减, 科技 公司也越来越多,不过,初级前端确实不好找工作,大象招初级前端基本都是校招走了,目前来看,公司需求的是中级和高级前端。
下面是前端学习路线,你可以去哔哩上看尚硅谷的视频,免费的视频和代码资料
作为一名前端人员我认为这个问题应该一分为二来回答。首先说前端技术饱和了吗?我认为没有。高端的技术人员永远都是抢手的。互联网迅速发展,技术不断更新,但是人员在增加的同时,一些高端的技术年龄也在老化,逐渐的退出舞台,但是新的人又没有很快的补充上来,就拿我们前端 游戏 人员来说吧,主程级别的人才基本都是断档的,这种人我招了两年了很难招到,这种人基本上是入不敷出,供小于求,从这方面讲前端是不饱和的,但是每天又收到了很多简历,基本都是新手级别的,都是从各种培训机构出来的,这些人基本都是教条化出来的人,技术能力潜力等参差不齐,导致很难挑大梁,你会发现这些人基本年年在换工作,在找工作,给人一种错觉,前端技术饱和了。
第一 相对于前两年我入行前端来说,前端确实人多太多,原因很简单,前端培训入门简单,培训班太多
第二 技术要求一般的前端职位确实已饱和,以前我面试一家大公司,那一次面试大概有200人,其中只有几个前端,其他都是java和c,现在10多个人争一个职位,身边的人好几个月找不到工作
第三 技术过硬的前端很缺,一般一个小公司只会招一两个前端,大多还是一个,那么他就要求你必须能一力承担全部的前端工作,这不单纯是工作量的问题,包括优化,推广封装,架构等等
第四 痛点,刚培训出来的,没有实际经验,技术也很难达标,恶心循环,怎么办?无非是降低工资,或是骗得过去
大概就这么多,本人工作也两年了,目前在公司是高级研发职位,有需要的私信我可以给你指导指导
互联网时代不仅为人民的生活带来了不尽的福祉,同时也造就了无数的就业岗位,并且这个数据在不断增加中。web前端,大数据、区块链、人工智能这些新领域更是火爆,但是对IT行业从业人员也提出了更高的要求。
所以黑马先锋告诉你不要担心会找不到工作,现在各大公司都缺人,所以不会出现找不到工作的
在选择web前端培训学院的时候,要多选择几家,进行比较,比如说, 他们是否有就业保障,班型大小,是否有实际的项目经验,总体来说,web前端开发的就业前景还是很可观的,但很多事情并不是一蹴而就的,还得需要前端技术人员静下心来刻苦钻研,中国的市场才有更大的发展空间。
每年都在说前端岗位饱和,但是前端依旧火热,招聘需求一年比一年多,薪资持续上涨,发展前景非常广阔。下面分享下前端的就业前景,让你具体了解前端饱和是无稽之谈。Web前端开发就业前景:1、Web前端人才需求量大据国内第三方数据统计,未来五年我国信息化人才总需求高达1500万-2000万人。其中“网络工程”“UI设计”“Web前端”等人才的缺口最为突出,所以2020年Web前端的市场需求很大。更有甚者目前不仅大型互联网公司相继成立了专属的Web前端部门,中小型公司和创业公司也急需专业的Web前端工程师。2、Web前端薪资待遇高前端开发行业薪资水平呈上涨趋势,Web前端开发早已不是做带动动画的下拉菜单的时代,他们已成为互联网的主宰者,各行业都用其开发互联网应用。3、前端就业方向多Web前端开发在软件开发中,就业门槛较低好就业,薪资待遇平均超过13k。在目前互联网只要公司有需要开发互联网产品,包括网站,网页h5,小程序,APP等等,就需要前端开发工程师岗位,具体的就业的方向还可以按公司的技术需求来区分,侧重点各有不同,就业行业随着互联网的发展,已经变得越来越广泛。4、Web发展前景好随着5G时代的到来,知否在移动互联网领域将会出现新的开发场景,包括自动驾驶,车联网,物联网,人工智能还有可穿戴设备等领域将带来大量的额前端开发需求,有需求就会有市场。以上就是总结的Web前端今年的就业前景。可以看出,Web前端工作无法被替代,客户需求存在前景巨大。但IT行业只有不断的自我学习更新才不会被行业所淘汰。
全国所有行业所有职位都是中低级饱和,缺高级,但企业又想拿中低级的钱招高级
计算机行业前后分离没多久的 至少在国内还是很可以的,前端的技术也是要不断进步的。高端的技术人员永远都是抢手的。
目前没有饱和,目前需求量还是比较大的
❼ 为什么做WEB前端开发的人这么多呢
移动互联网的快速发展,各类互联网公司的网页制作者正在向网络前端转型,因此企业所需的网络前端工程师在市场上供不应求。并且,从就业趋势来看,北京、上海、广州、深圳等地HTML5前端工程师的薪资待遇也是一再飙升。
Web前端开发不仅薪资持续走高,岗位需求量也不断增大。各个企业对于这块的人才需求量很大。从招聘网站的数据分析,web前端的岗位需求已经跟主流编程语言,诸如Java、ASP、和ios等的开拓人员的数量差不多,甚至有超过的趋势。各大厂也纷纷将视线转向Web前端。
技术环境的飞速改变,使得前端所需要的技术在不断更新,每个人必须不断更新自己的知识技能储备,否则随时都可能脱离Web前端开发一线队伍。
❽ web前端开发前景如何
关于WEB前端的开发前景:
1,市场:
在中国web前端的市场永远都是巨大的,但是随着信息的普及,人人都知道web前端开发做的时间久了,工资高,所以必然会增加竞争程度。
但这是好事,有竞争才有更多人才出现。
web前端的生态系统几乎涵盖了目前市面上所有的软硬件,web前端在中国的地位20年都是霸主,几乎是万能的,你能想到的,web前端基本都能实现。
2,需求
目前智联,boss,拉勾网的招聘来看,web前端的需求量还是排名第一,但是这个需求是有前提条件的,就是需要有工作经验,因为你没有工作经验,公司就会认为你没有开发项目的能力,自然不会要你,所以你在学习中,一定要培养自己的经验。
什么是经验?就是多多遇到问题,然后解决问题,这就是解决,也可以称为解决问题的能力。有人说web前端饱和了,这是绝对不可能的,只能说你现在竞争大,学习的人,质量差了而已。所以很多人说找不到工作。其实他自己啥都不会。
这只是针对一线城市而言,相对于二三线城市来说对于实际开发经验是稍微的放松的。
3,稳定
其实想学web前端的人完全不用担心,因为在中国web前端一直都是第一的,需求量非常大,这么多年web前端从未被超越,第一个问题已经说过了,web前端是有一个庞大的生态系统,它的覆盖范围非常广,而且已经连续10几年位居开发语言的榜首,所以web前端是相对于其他语言来说,非常稳定的,不用担心失业的问题了。
❾ Web前端行业现在是不是已经饱和了呀
有人觉得前端的工作越来越难找了,就会想到是不是web前端行业已经饱和了?
的确,前几年因为易学薪资高,前端市场一直处于风口浪尖,吸引了很多人入行,几乎是懂一点HTML、JS、CSS的都来吃这碗饭。但现在,随着互联网和移动终端的普及,雨后春笋般的互联网项目的发展,用户对于用户体验的需求不断提升,所以,不是市场饱和了,而是行业对前端工程师的要求提高了,当你觉得工作不好找,可能要从自身技术水平上找找原因了。
由于前端的入门门槛较低,大部分人认为HTML、CSS、JSt并不是很难掌握的语言,似乎只要花一些功夫,都可以通过网上教程或者书本入门。许多人怀着追求高薪的想法入行,其实也没什么错,但是无法安心学习,浅尝辄止,会一点皮毛便不再深入研究。
所以才有那么多人有人抱怨说,前端工程师人太多了,web前端行业饱和了……
现在的市场已经不是最初的初级市场,现在的市场对前端工程师的从业要求越来越精,要求你必须对各模块掌握熟练,基础知识扎实,有良好的逻辑能力,举一反三。
优秀的前端工程师在找工作时都拥有绝对的主动权,所以,继续打怪升级、提升技术吧!
❿ 为什么Java Web工程只能定制化
一个web中完全可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的。
那什么时候需要,什么时候可以不需要呢?
要想回答上面的问题,得先了解web.xml文件使用来干什么的。web.xml文件是用来配置:欢迎页、servlet、filter等的。当你的web工程没用到这些时,你可以不用web.xml文件来配置你的web工程。
那么web.xml能做的所有事情都有那些?
其实,web.xml的模式(Schema)文件中定义了多少种标签元素,web.xml中就可以出现它的模式文件所定义的标签元素,它就能拥有定义出来的那些功能。web.xml的模式文件是由Sun公司定义的,每个web.xml文件的根元素<web-app>中,都必须标明这个 web.xml使用的是哪个模式文件。如:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
</web-app>
而且web.xml的模式文件中定义的标签并不是定死的,模式文件也是可以改变的,一般来说,随着web.mxl模式文件的版本升级,里面定义的功能会越来越复杂,也即标签元素的种类会越来越多,但有些是不常用的,我们只需记住一些常用的就可以了。
下面列出web.xml常用的标签元素及这些标签元素的功能:
1、指定欢迎页面,例如:
<welcome-file-list>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index1.jsp</welcome-file>
</welcome-file-list>
上面的例子指定了2个欢迎页面,显示时按顺序从第一个找起,如果第一个存在,就显示第一个,后面的不起作用。如果第一个不存在,就找第二个,以此类推。
关于欢迎页面:
访问一个网站时,默认看到的第一个页面就叫欢迎页,一般情况下是由首页来充当欢迎页的。一般情况下,我们会在web.xml中指定欢迎页。但web.xml 并不是一个Web的必要文件,没有web.xml,网站仍然是可以正常工作的。只不过网站的功能复杂起来后,web.xml的确有非常大用处,所以,默认创建的动态web工程在WEB-INF文件夹下面都有一个web.xml文件。
对于tomcat来说,当你只指定一个web的根名,没有指定具体页面,去访问时一个web时,如果web.xml文件中配置了欢迎页,那么就返回指定的那个页面作为欢迎页,而在文中没有web.xml文件,或虽然有web.xml,但 web.xml也没指定欢迎页的情况下,它默认先查找index.html文件,如果找到了,就把index.html作为欢迎页还回给浏览器。如果没找到index.html,tomcat就去找index.jsp。找到index.jsp就把它作为欢迎页面返回。而如果index.html和 index.jsp都没找到,又没有用web.xml文件指定欢迎页面,那此时tomcat就不知道该返回哪个文件了,它就显示The requested resource (/XXX) is not available的页面。其中XXX表示web的根名。但如果你指定了具体页面,是可以正常访问的。
2、命名与定制URL。我们可以为Servlet和JSP文件命名并定制URL,其中定制URL是依赖一命名的,命名必须在定制URL前。下面拿serlet来举例:
(1)、为Servlet命名:
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>net.test.TestServlet</servlet-class>
</servlet>
(2)、为Servlet定制URL、
<servlet-mapping>
<servlet-name>servlet1</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
3、定制初始化参数:可以定制servlet、JSP、Context的初始化参数,然后可以再servlet、JSP、Context中获取这些参数值。下面哪servlet来举例:
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>net.test.TestServlet</servlet-class>
<init-param>
<param-name>userName</param-name>
<param-value>Tommy</param-value>
</init-param>
<init-param>
<param-name>E-mail</param-name>
<param-value>[email protected]</param-value>
</init-param>
</servlet>
经过上面的配置,在servlet中能够调用getServletConfig().getInitParameter("param1")获得参数名对应的值。
4、指定错误处理页面,可以通过“异常类型”或“错误码”来指定错误处理页面。
<error-page>
<error-code>404</error-code>
<location>/error404.jsp</location>
</error-page>
-----------------------------
<error-page>
<exception-type>java.lang.Exception<exception-type>
<location>/exception.jsp<location>
</error-page>
5、设置过滤器:比如设置一个编码过滤器,过滤所有资源
<filter>
<filter-name>XXXCharaSetFilter</filter-name>
<filter-class>net.test.CharSetFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>XXXCharaSetFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
6、设置监听器:
<listener>
<listener-class>net.test.XXXLisenet</listener-class>
</listener>
7、设置会话(Session)过期时间,其中时间以分钟为单位,假如设置60分钟超时:
<session-config>
<session-timeout>60</session-timeout>
</session-config>