我有一个名为 mainSvlt 的servlet。现在当我点击我的网址时,会调用doget()
方法,并通过视图main.jsp
提供响应。在main.jsp
中,我添加了一个名为frag.jsp
的片段jsp,其中包含一个iframe。现在,iframe的网址如下:src=".\khgSvlt"
。问题是,如果我在src中包含iframe网址,则会再次调用 mainSvlt 的doget()
,即获取两次调用,导致我的页面出错。
1>为什么会这样?
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通常不包括页眉或横幅等。