首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

关于url照射

2012-10-08 
关于url映射最近在新项目中想使用一个映射规则,如下:URL映射过程(严格遵守,如果method为空,则默认执行类特

关于url映射
最近在新项目中想使用一个映射规则,如下:
URL映射过程(严格遵守,如果method为空,则默认执行类特定名字的方法)
http://host:port/model/method?paramName=paramValue...
实现思想:
1,用一个过滤器去获得请求uri,再把uri转化为model.do?method=method的请求,然后调用RequestDispatcher.forward(request, response)方法转发。
2,再在web.xml中配置过滤.do的ActionServlet过滤器。

在测试一个<jsp:include page="/model/method">的时候发现存在如下问题:
The requested resource (/model/method) is not available
于是把过滤器设为
<dispatcher>REQUEST</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>FORWARD</dispatcher>
结果出现死无限制执行,堆栈溢出。

晚上下载urlrewriter开源项目,读了一下源代码,并没有发现解决方案,并测试了一下也出现同样的问题。(就是当<jsp:include>的时候就出问题了),不过他可以配置请求是哪种类型,比如redirect,forward,include等,但还是无法完全避免一种场景:
/a映射到a.jsp
/b映射到b.jsp
然后a.jsp里面有<jsp:include page="/b">的情形
如果是这样,一旦请求/a,则urlrewriter必出问题。

我的过滤器代码如下:



不知道大家有没有碰到此类问题或已经有相应的解决方案? 1 楼 jiangshaolin 2010-03-06   参考了大量资料,包括tomcat源码,jsp/servlet规范,做了不少测试.
<jsp:include>is not a request?

Filter不再起作用? 2 楼 jiangshaolin 2010-03-07   刚测试了Struts也存在同样的问题

.do-->jsp(包含<jsp:include page="XX.do">语句)
因为ActionForward也是用forward实现,所以错误信息如下:
java.io.IOException: Stream closed

热点排行