加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – tomcat如何识别用注释指定的servlet?

发布时间:2020-12-15 05:03:30 所属栏目:Java 来源:网络整理
导读:在servlet 3.0之前,需要通过提供url模式和servlet类在web.xml中配置servlet.每当发送对servlet的请求时,tomcat都会在web.xml中搜索servlet类,并根据请求的类型调用doget或dopost. 在servlet 3.0中,我们可以使用@WebServlet之类的注释在servlet类本身中配置se
在servlet 3.0之前,需要通过提供url模式和servlet类在web.xml中配置servlet.每当发送对servlet的请求时,tomcat都会在web.xml中搜索servlet类,并根据请求的类型调用doget或dopost.
在servlet 3.0中,我们可以使用@WebServlet之类的注释在servlet类本身中配置servlet.
我的问题是在这种情况下tomcat如何识别servlet类,因为在web.xml中没有为servlet指定映射.

提前致谢.

解决方法

Tomcat扫描Web应用程序以查找类文件(在WEB-INF / classes和JAR中).然后将类文件传递给Apache Commons Byte Code Engineering Library(BCEL)的经过大量编辑的包重命名的本地副本. Tomcat的BCEL版本经过优化,只处理Tomcat感兴趣的字节代码部分(注释,超级类,如果有的话,实现了接口),并尽可能快地跳过其余??部分. BCEL直接从磁盘读取类文件.

Tomcat对BCEL的结果进行了一些仔细的缓存,因此即使对于最复杂的类层次结构,每个类只处理一次,如果注释(包括从超类继承的注释),则不需要后处理来获取完整列表任何课程.

注释扫描还检查与SCI的@HandlesTypes注释的匹配.

扫描每个类的注释是很昂贵的,但是你这样做(这也是我不喜欢这个特殊功能的原因之一).在实现它现在使用的高效实现之前,Tomcat的实现经历了几次迭代.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读