日期:2014-05-18  浏览次数:20611 次

可以直接访问Servlet吗,或者如何进行servlet直接转发?
是这样的
服务器用的是resin
我想做一个类似struts中的控制  
在web.xml中将所有url为   *.act的请求都映射到一个servlet里,比如叫DispSvlt,  
然后在DispSvlt中  
根据.act前面不同的名称,再分配到不同的Servlet中,比如有请求url是  
/mywebapp/abc.def.SvltExample.act  
在DispSvlt中  
就可以转发到(使用request.getRequestDispatcher().forward方法)  
/mywebapp/servlet/abc.def.SvltExample

这样就可以执行,但resin换了一个版本后,这样/mywebapp/servlet/abc.def.SvltExample直接访问Servlet的方法不行了,有人知道该怎样才能直接(不用在web.xml中设url-map)访问Servlet吗?

或者,如何实现在一个servlet中将请求转发到另一个servlet中(不用在web.xml中设url   map)?

------解决方案--------------------
servlet-mapping 描述虽然不是必须,但容器本身可以对它的有无作不同的控制。

如果容器允许你直接访问,那么固然就能直接访问,如果容器不允许,那你也没辙啊。

但是如果你在web.xml里面有完整的servlet和servlet-mapping描述,则可以保证你的servlet可以被正确访问。所以,如果你想直接访问Servlet,还是加上servlet-mapping描述比较好。
------解决方案--------------------
http://community.csdn.net/Expert/topic/5302/5302604.xml?temp=.9311029
------解决方案--------------------
<web-app>
<servlet-mapping url-pattern= "/servlet/* " servlet-name= "invoker "/>
</web-app>