现在我正在使用此功能,但页面将显示在浏览器的同一选项卡中。
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>
答案 0 :(得分:2)
无法在服务器端控制。您需要在客户端控制它。例如,您可以在target="_blank"
上使用<form>
:
<form name="input" action="${toServlet}" method="POST" target="_blank">
...
</form>
答案 1 :(得分:1)
在浏览器的新选项卡中打开URL是必须在客户端完成的(使用链接的目标属性或JavaScript)。服务器对标签甚至浏览器一无所知。它只接收请求并发回响应。如果这些请求来自一个标签,10个标签,一个机器人,一个wget命令或其他什么,他就不会在意。
所以不,你不能从服务器端运行的代码中打开一个新的浏览器选项卡。
答案 2 :(得分:0)
是的,你应该实现一个servlet
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("page.jsp").forward(request, response);
}