新しいタブまたはウィンドウを開くときに、URLを設定する必要があります(get paramsを使用)。 1つのオプションがあります(ajaxを使用してください):
- 新しいページまたはビューを作成します。
- 単純な
<a target="_blank" href="url">
で新しいページを開きます。
- サーブレットに対して非同期要求(ajax)を行うには、javascript関数を使用します。
- ビューに結果を設定します。
@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のキー値を暗号化し、doGetメソッドとしてそれを維持するサーブレットクラスでそれらを解読するために良いアイデアでしょう?、通常のようにLUE – Soham
あなたはGET対POSTリクエストのセマンティクスに関して混乱しているようです。あなたが何かを取得したい場合は、GETリクエストを使用します。POSTリクエストを使用する場合は、何か(別の言葉では、新しいリソースを作成する)を「POST」します。リクエストボディにクエリパラメータを送信しても、接続を暗号化するためにHTTPSを使用しないでください。 – Dummy