浏览 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)? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-10
你搞得这个跟Struts的类似。Struts里就实现了你要的这些,他的方式是,有一个唯一的ActionServlet来获得所有的请求,然后,分发到在Struts-config.xml里配置的Action里。
注意,他的处理不是用RequestDispatcher的方式,而是根据配置,实例化一个Action对象,然后调用它的execute(...)方法。 你可以参考一下,或者,直接用Struts好了。 |
|
返回顶楼 | |
发表时间:2007-01-17
采用dispatcher的方式是因为我想完整保留request的提交信息
因为我们的系统以前有很多代码都是这么写的,所以现在要换成resin3,就遇到了问题,大改一遍太麻烦了。 我试着从DispSvlt中直接调用相应的目标Servlet中的post或get方法,不知可行不? |
|
返回顶楼 | |
发表时间:2007-01-19
结果是,不能
((HttpServlet)(Class.forName("xxxx.xxxx").newInstance())).doPost(request,response); 方法不可见 sign! |
|
返回顶楼 | |