我已经开发了一个Restlet应用程序。我想通过Restlet在URL请求上返回JSP文件。在不使用重定向的情况下如何实现?
例如,假设我在mydomain.com上有文件“ contact.jsp”,我希望人们能够通过http://mydomain.com/contact访问contact.jsp
因此,在Restlet中,我将有:
router.attach("/contact", MyResource.class);
但是,如何返回“ contact.jsp”页面?我知道重定向会起作用,但是我不希望用户在“ http://mydomain.com/contact.jsp ”中看到“ .jsp ” …还是有另一种即使不使用也不会起作用的策略座便椅?也许对我的web.xml文件进行了一些修改?
编辑(2009-08-14):
我在下面发布的答案不适用于App-Engine和Restlet。但是,如果我不包括Restlet或允许Restlet具有“ / *”的url模式,它确实可以工作
理想的是拥有Router的子类,该子类允许我执行以下操作:
router.attach("/contact", "/contact.jsp");
谢谢!
编辑(2009-08-17):
自从我发布赏金以来,我没有得到任何回应,我感到很惊讶。如果我的问题不清楚,有人会发表评论并让我知道吗?
有趣的观察。当使用下面的“ Rich Seller”描述的方法时,它在Google App-Engine而非本地上部署时有效。此外,如果我在Google App- Engine上调用http://mydomain.com/contact.jsp,它将绕过Restlet并直接转到JSP。但是,在本地,Restlet接管了。也就是说,http:// localhost:8080 / contact.jsp不会转到JSP,而是转到Restlet。部署的应用引擎应用程序对URL的响应是否与本地响应不同?
“我想通过Restlet在URL请求上返回一个JSP文件”-我的理解是JSP被转换为servlet。由于Servlet对Restlets是正交的,因此不确定如何通过Restlet返回JSP文件。
假设您要求除Restlet之外还使用JSP的方法,最好的方法是将Restlet映射到/ rest而不是/ *等根路径,并照常使用.jsp。