java – Servlet Mapping:是否可以在运行时添加servlet映射?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Servlet Mapping:是否可以在运行时添加servlet映射?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1268字,纯文字阅读大概需要2分钟。
内容图文
![java – Servlet Mapping:是否可以在运行时添加servlet映射?](/upload/InfoBanner/zyjiaocheng/776/f2ea2a65188a412e9f259b3bf2f4e94f.jpg)
是否可以在运行时添加servlet映射?要么通过ContextListener,要么在Servlet的init()方法中?
在我使用的应用程序中,所有请求都通过单个Servlet处理,其映射在web.xml文件中定义.映射的数量正在增加,添加新映射需要新版本.
将servlet映射到/ *将不起作用,因为分派给JSP的请求和静态内容也将路由到此Servlet.
尽管如此,使用过滤器可能是一个选项,它将为过滤器添加一个要求,以了解RequestDispatcher的前缀路径.
例如:
Dispatcher Servlet Mapping
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/action/*</url-pattern>
</servlet-mapping>
路由过滤器定义
<filter>
<filter-name>RoutingFilter</filter-name>
<filter-class>com.ssv.web.filter.RoutingFilter</filter-class>
<init-param>
<param-name>exclude</param-name>
<param-value>/static/**:/action/**:/**/*.jsp</param-value>
</init-param>
<init-param>
<param-name>dispatcher-prefix</param-name>
<param-value>/action/**</param-value>
</init-param>
</filter>
在上面的示例中,我想跳过创建过滤器,过滤器映射和servlet映射,而是在ContextListener中动态定义映射.
我正在使用Tomcat.
解决方法:
在servlet 3.0(tomcat 7)中,它可能是:ServletContext.addServlet(..)
但在你的情况下,不这样做可能更明智.例如,Spring的DispatcherServlet映射到/ *.它在内部转发到JSP,并在其自己的非servlet组件中处理请求,因此它不需要动态注册它们.无论如何,请看看spring-mvc,即使你最终没有使用它.
内容总结
以上是互联网集市为您收集整理的java – Servlet Mapping:是否可以在运行时添加servlet映射?全部内容,希望文章能够帮你解决java – Servlet Mapping:是否可以在运行时添加servlet映射?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。