servlet3.0中怎样在Filter里通过WebServlet的name获取这个servlet

kl2422 发布于 2015/07/21 18:41
阅读 383
收藏 0

NGINX Sprint China 2022--NGINX年度旗舰盛会,已开启免费预约!>>>

servlet3.0中怎样在Filter里通过WebServlet的name获取这个servlet

加载中
1
王涛
王涛

做一个全局map,里面存放servlet实例

在servlet的构造方法中,利用反射获取该servlet的注解,全局map.put(注解名称,this)


kl2422
kl2422
我后来就是利用了这种想法,谢谢
1
焙焙龙
焙焙龙

这个映射信息其实是存储在web容器中的,有很蹩脚的方式能拿到,前提了解对容器的源码,但这种方式并不通用,换一个web容器就歇菜了

LZ可以给出要解决的问题,看换种方式能否解决

kl2422
kl2422
我现在就是把所有的servlet存入web容器,然后利用发射获取注解,在解析,你如果想试试的话可以参考http://www.cnblogs.com/xdp-gacl/p/4222902.html这些文章
0
仪山湖
仪山湖
Filter的doFilter方法中的第一个参数是ServletRequest, 把它转换称HttpServetRequest, 然后调用 getRequestURI方法
仪山湖
仪山湖
呵呵,看错需求了,像这这样的需求比较少见,已经有ServletRequest了,还需要Servlet本身,用途不大,Servlet规范3.0(也就是java ee 7开始)不再支持ServletContext.getServlet方法
kl2422
kl2422
这个只是获取那个注解的名字哦
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部