论坛首页 入门技术论坛

如何进行Servlet请求转发,或者有办法直接访问servlet?

浏览 5782 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-01-09  
是这样的
我想做一个类似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的方法不行了,有人知道该怎样才能直接(不用url-pattern)访问Servlet吗?

或者,如何实现在一个servlet中将请求转发到另一个servlet中(不用在web.xml中设url map)?
   发表时间:2007-01-10  
你搞得这个跟Struts的类似。Struts里就实现了你要的这些,他的方式是,有一个唯一的ActionServlet来获得所有的请求,然后,分发到在Struts-config.xml里配置的Action里。

注意,他的处理不是用RequestDispatcher的方式,而是根据配置,实例化一个Action对象,然后调用它的execute(...)方法。

你可以参考一下,或者,直接用Struts好了。
0 请登录后投票
   发表时间:2007-01-17  
采用dispatcher的方式是因为我想完整保留request的提交信息
因为我们的系统以前有很多代码都是这么写的,所以现在要换成resin3,就遇到了问题,大改一遍太麻烦了。
我试着从DispSvlt中直接调用相应的目标Servlet中的post或get方法,不知可行不?
0 请登录后投票
   发表时间:2007-01-19  
结果是,不能
((HttpServlet)(Class.forName("xxxx.xxxx").newInstance())).doPost(request,response);

方法不可见

sign!
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics