当你打开新标签页或窗口时,你需要设置URL(使用你的get参数)。 现在你有一个选择(使用阿贾克斯):
- 创建一个新的页面或视图。
- 用简单的
<a target="_blank" href="url">
打开新页面。
- 使用javascript函数向servlet发出异步请求(ajax)。
- 用结果填充视图。
有一个servlet是这样的:
@WebServlet("/SampleServlet")
public class SampleServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String parameter1 = request.getParameter("param1");
String parameter2 = request.getParameter("param2");
//Process request, build response
//You can return your prefered data type (html, xml...)
String jsonResponse = new Gson().toJson(new MyResponseObject(parameter1, parameter2));
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(jsonResponse);
}
}
和 “新观点”(包括JQuery的LIB):
<html>
<head>
...
<script>
$(document).ready(function(){
$.ajax({
url: '/SampleServlet',
type: "post",
data: {
param1: "param1Value",
param2: "param2Value",
},
dataType: 'json', //or html, xml...
success: function(data) {
//populate page body with servlet response (json, html, etc)
}
});
});
</script>
</head>
<body>
<!-- page content here -->
</body>
</html>
还是会是一个更好的想法JS加密密钥值和Servlet类保持它的doGet解密呢? – Soham
您似乎对GET和POST请求的语义感到困惑。如果你想要取回某些东西,使用GET请求,如果你想“POST”某些东西(换句话说,创建一个新的资源),你可以使用POST请求。在请求正文中发送查询参数并不会使它更安全,要加密连接,请使用HTTPS – Dummy