Ajax调用servlet - 两个会话以不同方式返回数据

时间:2013-10-02 16:17:53

标签: javascript jquery html ajax servlets

场景如下所述

我从js到servlet进行ajax调用,通过传递用户名来从DB获取数据,并将用户名的输出详细信息作为json对象返回给js。数据在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>
  });

这就是我从servlet

获取json对象的方法
JSONObject returnObj = new JSONObject();
Controller.FetchDatafromDB (returnObj, UserName);

                            PrintWriter writer = response.getWriter();
                            writer.write(returnObj.toString());
                            writer.close();

我将应用程序部署到开发服务器,发现只是发现当来自不同机器的两个用户访问数据时,数据正在被正确抛出,但之后他们尝试打印数据或进行任何排序操作,最新用户的数据是在servlet中获取和抛出的内容。我需要用session做一些事情,或者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>

0 个答案:

没有答案