如何识别哪个servlet由哪个jsp文件调用

时间:2013-04-12 09:11:16

标签: java jsp servlets

我有一个类似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文件?

3 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:0)

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

if (request instanceof HttpServletRequest) {
    String url = ((HttpServletRequest)request).getRequestURL().toString();
}

答案 2 :(得分:0)

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

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