iframe嵌入式servlet使得doGet()方法被调用两次

时间:2014-05-27 12:39:03

标签: java jsp servlets

我有一个名为 mainSvlt 的servlet。现在当我点击我的网址时,会调用doget()方法,并通过视图main.jsp提供响应。在main.jsp中,我添加了一个名为frag.jsp的片段jsp,其中包含一个iframe。现在,iframe的网址如下:src=".\khgSvlt"。问题是,如果我在src中包含iframe网址,则会再次调用 mainSvlt doget(),即获取两次调用,导致我的页面出错。

1>为什么会这样?

2 - ;我该如何缓解这个问题?

任何建议都将受到赞赏。

2 个答案:

答案 0 :(得分:0)

问题是我的iframe src中的servlet调用,因此主servlet的doGet()再次被调用。所以我做的是:从iframe标签中删除src属性并附加src标记,只有在DOM加载后才调用片段jsp。这样主servlet doGet()只被调用一次。

答案 1 :(得分:0)

浏览器将IFRAME内容检索为单独的资源 - 例如,对您的服务器的单独请求。该请求应由为该URL映射的相应servlet处理。

如果指定的URL被映射到同一个servlet,那么该servlet将被调用两次 - 这不一定是个问题,但是为不同的职责设置一个不同的servlet可能是更清晰的设计视角。

允许同时调用Servlet&应该是无国籍的,允许这样做;他们应该没有特定于请求或会话的成员。

然后,对于要为其提供的内容进行适当编码的servlet问题 - 模板&样板文件通常是不同的,例如IFRAME通常不包括页眉或横幅等。