1

我有一个类似的 URL 模式webroot/TellSomeoneMail和相应的类,

<servlet>
      <servlet-name>TellSomeoneMail</servlet-name>
      <display-name>Tell Someone Mail</display-name>
      <servlet-class>com.nightingale.register.servlet.TellSomeoneMailServlet</servlet-class>
 </servlet>

但是如何识别调用这个 servlet 的 JSP 文件呢?

4

3 回答 3

3

您可以通过查看 HTTP 正文中的 referer 标头在执行期间识别到我们的 servlet:

String referrer = request.getHeader("referer");

编辑 1:您还可以使用 session 来保留用户访问的最后一个 url(这种机制已经存在于 grails 或 Spring 等框架中的“flash”属性下,不要与 adobe flash 混淆)。如果你使用简单的 Servlet/JSP,你需要编写这样的支持代码...

编辑 2如果 cookie 和裁判被阻止,最后的解决方案是在 URL 中添加一个参考最后一页的参数,例如,URL?from=home_pg或者URL?from=/homepage.html它可能需要重写页面中嵌入的 url。

于 2013-04-12T09:14:22.527 回答
0

您可以获取发送请求的 URL。看看下面的代码

if (request instanceof HttpServletRequest) {
    String url = ((HttpServletRequest)request).getRequestURL().toString();
}
于 2013-04-12T09:15:44.297 回答
0

要查找允许用户向您的 servlet 发出请求的 JSP 页面: 检查 servlet<servlet-mapping>在 web.xml 的元素中映射的路径。

然后在您的项目中的所有 JSP 上对该字符串进行全文搜索。查找目标包含您的 servlet 路径的 HTML<a>和元素。<form>

于 2013-04-12T09:47:49.203 回答