1

就像标题说的我想知道在浏览器的新标签页中打开一个jsp页面是否可能(如果可能的话,还有如何);

现在我正在使用这个指令,但该页面将出现在浏览器的同一选项卡中。

request.getRequestDispatcher("page.jsp").forward(request, response);

在客户端对 servlet 的调用是这样的:

<img id="imgModAbb" src="imm/historyAbb.png"
                        title="Vedi storico modifiche" 
                        onclick="window.location.href='/Spinning/InfoStoricoAbbonamento?id=<%=a.getIdAbbonamento()%>'">

解决方案

我修改了客户端的调用:

<a href="ServletAddress" target="_blank">
 <img id="imgModAbb" src="imm/historyAbb.png" title="Vedi storico modifiche">
</a>
4

3 回答 3

2

这无法在服务器端控制。您需要在客户端控制它。例如,您可以使用target="_blank"on <form>

<form name="input" action="${toServlet}" method="POST" target="_blank">
...
</form>
于 2013-11-16T13:55:56.560 回答
1

在浏览器的新选项卡中打开 URL 必须在客户端完成(使用链接的目标属性或 JavaScript)。服务器对选项卡甚至浏览器一无所知。它只是接收请求并发送回响应。如果这些请求来自一个选项卡、10 个选项卡、机器人、wget 命令或其他什么,他也不在乎。

所以不,您不能从服务器端运行的代码打开新的浏览器选项卡。

于 2013-11-16T13:52:08.763 回答
0

是的,有可能,你应该实现一个 servlet

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.getRequestDispatcher("page.jsp").forward(request, response);
}
于 2013-11-16T13:47:18.727 回答