シナリオは次のとおりです。
ユーザー名を渡して DB からデータをフェッチし、ユーザー名の出力の詳細を json オブジェクトとして js に返すことで、js からサーブレットに ajax 呼び出しを行います。データは HTML ページにスローされます。HTMLページにスローされたデータを印刷するために、HTMLページに印刷機能があります。以下のシナリオを除いて、すべてが正常に機能しています。
1) IE でアプリケーションを開き、ユーザー名に「XXXX」を指定すると、「XXXX」に関するデータが画面に表示されます。データも印刷できます。
2)この後、Chromeでアプリケーションを開き、ユーザー名に「YYYY」を指定すると、「YYYY」に関するデータが画面にスローされます。データは問題なく印刷できます。
3) 開いている IE に戻り、「XXXX」に関するデータがあり、印刷アイコンをクリックすると、「YYYY」に関するデータが印刷されますが、「XXXX」のデータが必要です。
これを回避するには、セッションで何かを設定する必要がありますか? 私を助けてください。
編集:
私の doPost メソッドと doGet メソッド:
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
performtask(request, response);
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
performtask(request, response);
}
Jquery からの私の Ajax 呼び出し:
$.ajax({
url: "XXXServlet",
cache: false,
dataType: contentType,
data: {
Action : action
,UserName : UserName
,pageAttr : pageAttr
},
success: (function(data) {
<Get the json data and throw in HTML>
});
これは、サーブレットからjsonオブジェクトを取得する方法です
JSONObject returnObj = new JSONObject();
Controller.FetchDatafromDB (returnObj, UserName);
PrintWriter writer = response.getWriter();
writer.write(returnObj.toString());
writer.close();
アプリを開発サーバーにデプロイしたところ、別のマシンから 2 人のユーザーがデータにアクセスすると、データが正しくスローされることがわかりましたが、その後、データを印刷したり、並べ替え操作を実行したりしようとすると、最新のユーザーのデータは、サーブレットで取得およびスローされたものです。セッションで何かをする必要がありますか、または get/post メソッドに基本的に何か問題がありますか?
私のweb.xmlは以下の通りです
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>
XXXXXXReport</display-name>
<servlet>
<description>
</description>
<display-name>
XXXServlet</display-name>
<servlet-name>XXXServlet</servlet-name>
<servlet-class>com.xxxx.yyyy.zzz.servlet.XXXServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XXXServlet</servlet-name>
<url-pattern>
/XXXServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>