/login 14个相关结果 0次搜索

在使用springboot整合shiro的过程中,希望静态资源资源不受shiro过滤器‘authc’拦截,于是定义了“anon”,测试发现根本不生效,静态资源路径下的资源(如/js/**)依旧会被拦截并重定向到/login,以下是我的shiro javaconfig 请指正   解决了,filterChainDefinitionMap应当为LinkedHashMap 原文地址: http://www.caotama.com/103382.html

http://www.renren.io/open/ renren-security | 轻量级权限管理系统 1、采用Spring、MyBatis、Shiro框架,开发的一套权限系统,极低门槛,拿来即用2、支持分布式部署、Quartz分布式集群调度、部门管理、数据权限、云存储等功能3、源码下载、项目演示(账号密码:admin/admin)4、提供了没有部门管理版,获取【没有部门管理版】 renren-fast | Java快速开发平台 1、一个轻量级的Java快速开发平台,能快速开发项目并交付【接私活利器】2、完善的XSS防范及脚本过滤,彻底杜绝XSS攻击3、实现前后端分离,通过token进行数据交互4、实现管理员列表、角色管理、菜单管理、定时任务、参数管理、系统日志、文件上传(云存储)等功能5、开发文档【试看版】、源码下载、项目演示(账号密码:admin/admin)6、捐赠【50元】,即可获取【完整版】的开发文档,马上获取【完整版】 renren-generator | 代码生成器 1、是人人开源项目的代码生成器2、可在线生成entity、xml、dao、service、html、js、sql代码,减少70%以上的开发任务 3、源码下载 renren-mall | 人人商城 开发中…

7月31日,深圳前海微众银行股份有限公司、上海万向区块链股份公司、矩阵元技术(深圳)有限公司联合宣布重磅消息,将三方近一年来潜心开发、且已实践检验过的区块链底层平台BCOS(取BlockChain OpenSource涵义命名)完全开源。 缘起 在传统的中心化商业模式陷入“大而不能倒”(too big to fail)的窘境并引发金融危机之后,追求多方参与和对等合作的新型商业模式逐渐凸显价值。这种全新的模式我们称之为“分布式商业”,其特点在于多方平等参与、智能协同、专业分工、价值分享等,已经在不同的领域体现出一定的发展潜力。相对应地,为了实现分布式商业的共享与透明规则,以开源为主要特征的分布式技术也得以发挥优势,区块链技术、分布式账本技术等渐渐成为了前沿科技的核心代表。 在此背景下,微众银行、万向区块链、矩阵元在2016年成立了联合区块链实验室,并推进两大区块链联盟金链盟与Chinaledger达成战略合作,致力于共同进行区块链底层平台开发,推动区块链应用场景落地,促进区块链产业与区块链生态在中国的改革创新与蓬勃发展。历经几年的分别探索,以及近一年的整合磨砺,三方顺利完成BCOS平台并开源,以此吸引更多的开发者加入开发,拥抱区块链的开源时代。 探索 BCOS平台从中国的商业可行性与监管要求出发,进行了深度理解和定制,更加适合国内企业使用;另一方面,三家机构本身就具有大规模的商用业务需求,对生产环境里能达到的并发用户数、访问量、吞吐量、响应时间、可用性、安全性等要求更高,BCOS平台亦是力求满足这些内在需求。 新的技术终究要在应用场景尤其是具备海量用户的企业级应用场景中被充分验证并推广,才能评判其成熟度。在真实生产数据的检验下,BCOS平台保持零故障运行,印证了其安全可控、业务可行、健壮可用的优点,其功能、性能、容错性、可靠性、安全性、保密性、可追溯、模块化、可维护性、可移植性、互操作性、数据一致性等特性亦被验证可达到高标准。 价值 BCOS平台作为国内首个安全可控、可商用的开源区块链技术平台,通过集成身份认证、非对称加密算法、引入技术治理功能、支持全面监管审计功能等举措,可支持多个行业的应用需求,满足中国金融业务要求,填补了区块链领域的空白。 对于使用BCOS平台的开发者而言,既能够共享区块链的底层设施,包括共享云服务相关的技术、软件和代码,不需要每个开发成员重复投入,又能使用友好、简单、跨平台的应用开发API与图形化管理台及区块链浏览器等,加速开发流程,改善区块链产品的创建和管理体验。 作为商用的新一代数据交换基础设施,BCOS平台支持监管及商用应用的所有核心技术特性,满足使用者的需要: 提供全面的监管和审计支持模块,满足业务合规要求; 提供对全网商业机构节点的准入控制、CA身份认证、账户管理体系和安全监控功能,支持分布式商业运作的技术治理需求; 实现共识机制的插件化,可支持PBFT、RAFT等多类共识算法,便于匹配不同业务场景需求; 采用分布式数据存储架构,支持海量数据容量与弹性扩容能力,并提供高强度加密存储功能和配套密钥管理机制,提升数据存储安全; 支持对全网所有节点同时进行灵活的配置修改,配置数据保持高一致性; 提供基于密码学的隐私保护功能,支持分布式商业中的保密数据交换; 支持全方位的安全防护机制,兼顾物理安全、传输安全、存储安全、网络安全、密钥安全等。 BCOS平台的构建可有两种方式:开源代码和云服务,两种方式都提供了详细的用户手册,开发文档和样例代码。 理念 回归区块链技术的本质, 其最初的目的是通过一系列公开公正、透明可信的规则,让系统实现在无人干预和管理的情况下自主正常运行,因此大部分主流区块链技术平台皆以开源社区的形式存在。其价值核心是在开放的精神下,以源码为核心,建立起规范的、长久的自治理制度,促进开发者持续有序地对源代码进行改善。 因此,三方联手打造的BCOS平台遵循以下六大价值理念(DRIVES): 了解BCOS平台,访问Github社区:https://github.com/bcosorg/bcos 白皮书下载地址:https://raw.githubusercontent.com/bcosorg/bcos/master/doc/BCOS_Whitepaper.pdf 相关链接 BCOS 的详细介绍:点击查看 BCOS 的下载地址:点击下载

  http://elizabetht.github.io/blog/2013/11/21/student-enrollment-using-mybatis-with-spring/   This post will show how to create a Student Enrollment Application using MYSQL DB with MyBatis framework in a Spring environment. This is a simple application that aims to collect the input details from the user during signup, save the details in the MYSQL DB and authenticate the same during login. 1. Create Java Web Application Project using Maven Template To begin with, in the IDE, create a Java Maven project with the template of maven-archetype-webapp (Filter the catalog based on the string “webapp”) by providing appropriate values for GroupId and Artifact Id for the project. The sample web application directory structure is shown below with a standard deployment descriptor web.xml and Maven pom.xml 2. Update pom.xml …

http://www.tuicool.com/articles/U3Afiy 前言 Java领域的即时通信的解决方案可以考虑openfire+spark+smack。当然也有其他的选择。 Openfire 是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使用3.8.1版本,这个版本是当前最新的版本,而且网上可以找到下载的源代码。 即时通信客户端可使用spark2.6.3,这个版本是目前最新的release版本,经过测试发现上一版本在视频支持,msn网关支持上可能有问题,所以选择openfire3.8.1+spark2.6.3是最合适的选择。 Smack是即时通信客户端编程库,目前我已测通通过jsp使用smack的API向openfire注册用户发送消息,并且可以通过监听器获得此用户的应答消息。 通过smack向msn用户和QQ用户,gtalk用户发送消息应该也可以实现,关于向gtalk用户发送消息的例子较多。这个留待以后研究。至少目前可以通过程序向spark发消息了。对于局域网内部应用足以解决系统与用户交互的问题,甚至可以做自动应答机器人。  Spark支持聊天,语音,视频,会议,文件收发,截屏,连接msn等功能。 同时在Android移动端和Web端也有相应的编程库支持,在后面的章节会为大家逐步更新介绍,接下来我们首先要对几个重点的技术环节做些必要的讲解。   1.什么是XMPP XMPP (Extensible Messaging and Presence Protocol), 简单的来讲,它就是一个发送接收处理消息的协议,但是这个协议发送的消息,既不是二进制的东东也不是字符串,而是XML。正是因为使用了XML作为消息传 递的中介,Extensible 才谈的上。XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组 织完成了标准化工作。 2.IM Instant Messenger,及时通信软件,就 是大家使用的QQ、MSN Messenger和Gtalk等等。其中Gtalk 就是基于XMPP 协议的一个实现,其他的则不是。当前IM 几乎作为 每个上网者必然使用的工具,在国外的大型企业中有一些企业级的IM应用,但是其商业价值还没完全发挥出来。设想既然XMPP 协议是一个公开的协议,那么 每个企业都可以利用它来开发适合本身企业工作,提高自身生产效率的IM;甚至,你还可以在网络游戏中集成这种通信软件,不但让你可以边游戏边聊天,也可以 开发出适合游戏本身的IM 应用,比如说一些游戏关键场景提醒功能,团队语音交流等等都可以基于IM来实现。 3.Spark,smack和Openfire 开源界总是有许多有趣的东东,这三个合起来就是一个完整 的XMPP IM 实现。包括服务器端——Openfire,客户端——Spark,XMPP 传输协议的实现——Smack(记住,XMPP是一个协 议,协议是需要实现的,Smack起到的就是这样的一个作用)。三者都是基于Java 语言的实现。 Spark 提供了客户端一个基本的实现,并提出了一个很好的插件架构,这对于开发者来说不能不说是一个福音。我强烈建议基于插件方式来实现你新增加的功能,而不是去改它的源代码,这样有利于你项目架构,把原始项目的影响降到最低。 Openfire 是基于XMPP 协议的IM 的服务 器端的一个实现,虽然当两个用户连接后,可以通过点对点的方式来发送消息,但是用户还是需要连接到服务器来获取一些连接信息和通信信息的,所以服务器端是 必须要实现的。Openfire 也提供了一些基本功能,但真的很基本的!庆幸的是,它也提供插件的扩展,像Spark 一样,同样强烈建议使用插件扩展 的方式来增加新的功能,而不是修改人家的源代码。 Smack 是一个XMPP 协议的Java 实现,提供一套可扩展的API,不过有些时候,你还是不得不使用自己定制发送的XML 文件内容的方式来实现自己的功能 下图展示了三者之间的关系: Spark 提供了客户端一个基本的实现,并提出了一个很好的插件架构,这对于开发者来说不能不说是一个福音。我强烈建议基于插件方式来实现你新增加的功能,而不是去改它的源代码,这样有利于你项目架构,把原始项目的影响降到最低。 Openfire 是基于XMPP 协议的IM 的服务 器端的一个实现,虽然当两个用户连接后,可以通过点对点的方式来发送消息,但是用户还是需要连接到服务器来获取一些连接信息和通信信息的,所以服务器端是 必须要实现的。Openfire 也提供了一些基本功能,但真的很基本的!庆幸的是,它也提供插件的扩展,像Spark 一样。 Smack 是一个XMPP 协议的Java 实现,提供一套可扩展的API,不过有些时候,你还是不得不使用自己定制发送的XML 文件内容的方式来实现自己的功能。 4.安装Openfire3.8.1 使用openfire需要配置机器的域名。如果局域网内没有安装域服务器,则需要手工为机器配置域名,打开C:\WINDOWS\system32\drivers\etc\hosts文件,增加一新行: 127.0.0.1 csdn.shimiso.com  (用户根据自己的需要可配置称别的名字,但最好符合带.的域名格式) 其他机器使用域名访问openfire,也需要在C:\WINDOWS\system32\drivers\etc\hosts中指定 bzwang.tzsoft.com对应的ip地址,假设安装openfire的主机IP为192.168.1.10,则hosts文件中应增加一新行: 192.168.1.10 csdn.shimiso.com 通过这种方式指定主机域名,建议安装openfire的机器配置静态ip地址以免ip发生改变。 语言选择简体中文,见下图: 后续按照提示安装,点击完成启动openfire,最后出现下面的界面:      点”Launch Admin”,出现下面的页面,页面连接为 http://127.0.0.1:9090/setup/index.jsp 语种选择中文(简体),点”Continue”:(下面的页面如果出现英文,请刷新一下页面或者重新点Launch Admin) 这个页面的Domain默认为机器名,请改为一开始设置的域名,例如csdn.shimiso.com,接着点Continue(继续): 这个页面中第一个选项,即标准数据库连接,不要选择嵌入的数据库( Embedded Database,嵌入的数据库是hsqldb数据库,生产环境不要选择此选项 ),然后点”继续”: 这里我用的是mysql数据库,按官方要求最好是5.0以上,确保有个名字叫openfire的库存在,配好后点继续 这个页面是配置是否使用LDAP,我们现在不配置LDAP,所以选择 Default默认即可,点继续: 这里填写邮箱和确认密码后直接点继续: 等待大约30秒左右,到此安装和配置操作全部完成。打开 http://127.0.0.1:9090/login.jsp 登录管理页面 进入用户/组新增一个用户。 5.客户端配置和调试 这里我没用使用官方的spark客户端,而是用了 潘迪安 和 如意通 ,配置截图如下:      聊天演示:   从上面的聊天记录我们发现所有的用户id全称都是:用户名@域名/资源名,这个就是我们在XMPP协议中通常说说的JID,即jabber id,它是一个xmpp协议帐号系统的通称,后面我们在使用smack编程库调试接口时会经常用到这个参数。   6.使用Smack编程库进行代码功能调试 关于Smack编程库,前面我们提到,它是面向Java端的api,主要在PC上使用,利用它我们可以 向openfire服务器注册用户,发送消息,并且可以通过监听器获得此用户的应答消息,以及构建聊天室,分组,个人通讯录等等。 下面我们写几个程序小例子测试一下。 (1)登录操作 PPConnection.DEBUG_ENABLED = true; AccountManager accountManager; final ConnectionConfiguration connectionConfig = new ConnectionConfiguration( “192.168.1.78″, Integer.parseInt(“5222″), “csdn.shimiso.com”); // 允许自动连接 connectionConfig.setReconnectionAllowed(true); connectionConfig.setSendPresence(true); Connection connection = new XMPPConnection(connectionConfig); try { connection.connect();// 开启连接 accountManager = connection.getAccountManager();// 获取账户管理类 } catch (XMPPException e) { throw …

12 月 19 日, InnoSpace 创业集训营举办了 2014 秋季 Demo Day 活动。本期 11 个早期互联网创业项目进行了展示,涵盖移动电商、互联网金融、移动医疗、设计众筹等领域。 时值创立两周年,InnoSpace 还启动了 InnoSpace 天使创投基金,专注于孵化投资早期互联网/移动互联网创业项目。主要采取早期孵化+基金专业投资的运营模式帮助更多创业者实现梦想。 InnoSpace 创业集训营是一个为期 16 周的创业孵化加速项目,旨在帮助互联网和移动互联网创业者将脑中的想法变成真实的创业项目。过去两年中,跳跳网、简书、ChaseFuture、游友移动、十年后、出发吧、BiCi 基本概念等一批互联网/移动互联网领域的新起之秀从这里走出。 下面就让我们了解一下本次集训营中的 11 个创业项目: 1. 宝宝玩啥 是一个孩童益智玩耍领域的个性化推荐平台。 不同年龄阶段的宝贝对于玩具需求不同,例如对于九个月的宝宝来说,是否安全是选择玩具的首要标准,而对于三岁的宝宝来说可能是什么样的绘本有利于开发智力。宝宝玩啥针对每个孩子的具体情况,例如年龄,性别,敏感期,地域气候等,个性化地向 0-6 岁孩子父母推荐适合孩子的玩具、游戏、童书、卡通、故事等。对于儿童来讲最好的教育就是“玩”本身。宝宝玩啥的理念是:把育儿理念“翻译”成一个个碎片化的推荐,让用户操作起来不会变成负担。 2. 超交易 是 C2C 金融服务的个人投资平台。通过超交易用户可以与全世界顶级交易者进行经营交流、操作跟随和交易同步。同时它也是国内专为个人投资者打造的、免费的金融财经信息互动与分享平台。 超交易已经获得了来自于包括渣打银行高管等多位天使投资人的天使轮融资 ,并计划于明年年初推出移动端产品。 3. TVStalk  | 剧客 是一款追剧倒计时 App。采用线性倒计时牌,让追剧列表一“幕”了然。 4. Tailorism 是一个 O2O 男装定制平台,它致力于帮助每位绅士找到属于自己的衬衣。避免购买成衣时遇到的不合身,款式单一,材质不合适等问题。 Tailorism 采用定制模式,在首次订购时,用户可以通过 Tailorism 的微信公众平台或者 400 电话预约着装顾问上门量体,上门量体可在 15 分钟内完成。十个工作日后便会收到一件根据个人身材和喜好定制的衬衣。老用户会定期收到服装面料卡,可直接在网上选择喜欢的面料,领口,袖口设计,直接定制服装。 Tailorism 主要针对年龄 25-35 岁的白领人群。衬衫定价相对亲民,为 399 元每件。针对都市人群的生活习惯,还推出了定制衬衣的成衣免烫。 5. 优 T 是一个通过众筹模式实现 C2B 定制的电子商务平台,通过 C2B 反向定制的方式,用户可以自主创造和选择喜欢的图片和文字素材 DIY T 恤并下单购买。任何人只要通过在线设计作品,设定众筹目标以及添加描述,三个步骤就能发起一个众筹项目。一旦达成众筹目标,优 T 负责生产,质检和物流配送,设计师则收获利润和人气。 未来优 T 计划将这一模式复制到衬衫,鞋帽,3D 打印等领域。 优 T 是创始人刘超的第二次创业,之前他有 8 年在阿里巴巴的工作经验。 6. 狗管家 是一款帮助狗主人科学喂养狗狗的 APP。目前市场上的 app 多集中于宠物社交领域,但对于大多数狗主人来讲,他们的问题是如何养好,和降低养狗成本。狗管家采用提醒模式,提醒主人们驱虫免疫时间,如何面对换牙、脱毛的成长问题,定时提醒体检、疾病预警,专家建议等。 狗管家提供定制提醒和社会化提醒。定制提醒基于主人和狗狗的基本情况。社会化提醒基于享有相同定制提醒的人群建立提醒小组,形成团队效应。 用户人群主要以一线城市年龄 20-30 的女性用户为主。团队有 7 名成员,其中 5 名成员来自上一个共同创业项目。 目前,已经获得两家机构天使轮投资,并正式启动 Pre-A 轮融资。 7. “来+”是皮乐科技推出的一款基于 LBS、具有社交属性的活动工具。它通过线上找人组团,线下参与互动的轻社交模式让活动领袖和用户之间达到信息的互通。在后续的产品升级过程中,或将增加众筹等模式以及其他功能,逐步打造成为活动垂直细分市场的 o2o 平台。 在“来+”活动组织者可以便捷的完成活动准备,活动数据收集并对活动与用户进行系统化管理,并添加活动现场签到,活动组织者和参与者信用互评等功能。 8. 云尚医疗 致力于建立一家“数字化远程病理咨询服务中心”,利用数字化的云平台为专家和病人之间搭建一座传递信息的桥梁,病人可以远程上传相应的病理切片资料,病理专家可以通过移动 APP 终端获取会诊信息,了解信息并提供咨询诊断意见,从而让病人足不出户即可获得顶级专家的指导。 与其他移动健康 app 不同,云尚专注于病理科和影像科,主要由于这两个领域诊断过程比较容易数字化。云尚采用了明确的商业模式,远程会诊病理分析为 399 元/次,影像分析为 99 元/次。 9. 新侬夫 是一家生态农产品预售平台,主要通过对农人、农场和农产品的拍摄,结合线上视频传播和线下社区推广和体验,让带着人物和态度的农产品进行有效传播和销售。 平台现有 500 多位新农人资源,产品销售上以预售为主,专售当季产品。 推广上包括视频播放、网上社区和线下的社区。近期,新侬夫将联合土豆共同打造“土豆爱生活”版块,作为优质农产品的供应渠道和食材视频提供方。此外新侬夫还与周末去哪儿合作推出农业生态游。 10. 店盒子 是下一代整合电子商务平台。从商品管理到店铺推广,从线上到线下,帮助商家高效优雅地售出每一样商品,树立独立品牌价值。 作为新一代开店软件,店盒子整合了顾客关怀、商品与交易管理、iPad 收银和营销服务等核心功能。 11. 百谷一品 百谷一品是一个独立电商品牌,致力于将优质的谷物制品带给消费者,目前的产品包括:谷物原粮、谷物原粉、谷物零食,以及定制礼盒等。 另外,InnoSpace2015 春季创业集训营也正在  招募早期创业项目  。有兴趣的小伙伴请点  这里  。

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java小服务程序、CGI 脚本、Java对象、数据库、FTP服务器等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。 另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。 Apache jmeter可以用于对静态的和动态的资源(文件、Servlet、Perl脚本、java对象、数据库和查询、FTP服务器等等)的性能进行测试。它可以用于对服务器,网络 或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。 JMeter的作用 1.能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。 2.完全的可移植性和100% 纯java。 3.完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。 4.完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。 5.精心的GUI设计允许快速操作和更精确的计时。 6.缓存和离线分析/回放测试结果。 在设计阶段,JMeter能够充当HTTP PROXY(代理)来记录IE/NETSCAPE的HTTP请求,也可以记录apache等WebServer的log文件来重现HTTP流量。当这些HTTP客户端请求被记录以后,测试运行时可以方便的设置重复次数和并发度(线程数)来产生巨大的流量。JMeter还提供可视化组件以及报表工具把量服务器在不同压力下的性能展现出来。 相比其他HTTP测试工具,JMeter最主要的特点在于扩展性强。JMeter能够自动扫描其lib/ext子目录下.jar文件中的插件,并且将其装载到内存,让用户通过不同的菜单调用。  

一 1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点。 2、紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。 3、容器将<context-param>转换为键值对,并交给servletContext。 4、容器创建<listener>中的类实例,创建监听器。 二  Load-on-startup Load-on-startup元素在web应用启动的时候指定了servlet被加载的顺序,它的值必须是一个整数。如果它的值是一个负整数或是这个元素不存在,那么容器会在该servlet被调用的时候,加载这个servlet。如果值是正整数或零,容器在配置的时候就加载并初始化这个servlet,容器必须保证值小的先被加载。如果值相等,容器可以自动选择先加载谁。 在servlet的配置当中,<load-on-startup>5</load-on-startup>的含义是: 标记容器是否在启动的时候就加载这个servlet。 当值为0或者大于0时,表示容器在应用启动时就加载这个servlet; 当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。 正数的值越小,启动该servlet的优先级越高。 三  加载顺序 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关。即不会因为 filter 写在 listener的前面而会先加载 filter。最终得出的结论是:ServletContext-> listener ->filter -> servlet 同时还存在着这样一种配置节:context-param,它用于向 ServletContext提供键值对,即应用程序上下文信息。我们的 listener, filter 等在初始化时会用到这些上下文中的信息,那么context-param 配置节是不是应该写在 listener 配置节前呢?实际上 context-param配置节可写在任意位置,因此真正的加载顺序为:context-param -> listener-> filter -> servlet 对于某类配置节而言,与它们出现的顺序是有关的。以filter 为例,web.xml 中当然可以定义多个 filter,与 filter 相关的一个配置节是filter-mapping,这里一定要注意,对于拥有相同 filter-name 的 filter 和 filter-mapping配置节而言,filter-mapping 必须出现在 filter 之后,否则当解析到 filter-mapping 时,它所对应的filter-name 还未定义。web 容器启动时初始化每个 filter 时,是按照 filter配置节出现的顺序来初始化的,当请求资源匹配多个 filter-mapping 时,filter 拦截资源是按照filter-mapping 配置节出现的顺序来依次调用 doFilter() 方法的。 servlet 同 filter类似,此处不再赘述。 由此,可以看出,web.xml 的加载顺序是:ServletContext-> context-param ->listener -> filter -> servlet,而同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的。 四 web.xml文件详解 我将自己知道的web.xml的元素整理了一下: web.xml首先是肯定要包含它的schema. <web-app xmlns=”http://java.sun.com/xml/ns/j2ee” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd” version=”2.4″> </web-app> 其它的元素都放在<web-app></web-app>之中。 <discription></discription>是对站台的描述 <display-name></display-name>定义站台的名称 <distributable/> 是指定该站台是否可分布式处理 <context-param></context-param>用来设定web站台的环境参数,它包含两个子元素: <param-name></param-name>用来指定参数的名称 <param-value></param-value>用来设定参数值 比如: <context-param> <param-name>my_param</param-name> <param-value>hello</param-value> </context-param> 在此设定的参数,可以在servlet中用getServletContext().getInitParameter(“my_param”) 来取得 <filter></filter>是用来声明filter的相关设定,它包含以下子元素: <filter-name></filter-name>这当然就是指定filter的名字 <filter-class></filter-class>这是用来定义filter的类的名称 <init-param></init-param>用来定义参数,它有两个子元素: <param-name></param-name>用来指定参数的名称 <param-value></param-value>用来设定参数值 比如: <filter> <filter-name>setCharacterEncoding</filter-name> <filter-class>com.myTest.setCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GB2312</param-value> </init-param> </filter> 与<filter></filter>同时使用的是<filter-mapping></filter-mapping>用来定义filter所对应的URL,它有两个子元素: <filter-name></filter-name>指定filter的名字 <url-pattern></url-pattern>指定filter所对应的URL …