Java IE提供旧的HTTP Servlet会话对象

时间:2017-12-19 10:22:29

标签: java angularjs jsp internet-explorer websphere

我正在使用IE 11作为我的应用程序。我在这里面临会议问题。

当做第一个事务时,在事务响应jsp页面中我得到当前事务没有说1000 [(TransactionDO)session.getAttribute(" txnDetails");]。 在同一个jsp我做了ng-init =" GetTxnResponse()"在div中,从那个js函数得到事务no为1000。

然后我正在使用相同的会话进行第二次事务而没有注销,在事务响应jsp页面中我从http会话获得当前事务否为1001。 来自ng-init =" GetTxnResponse()"的同一个jsp js函数获取事务编号为1000而不是1001.

它仅在IE中出现。请帮忙解决。以下是我的代码供参考。

- JSP代码 -

10.10.78.1/16

- JS代码 -

192.168.0.X/24

- Java代码 -

[DllImport("user32.dll", SetLastError = true)]
static extern bool PostMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);

PostMessage(handle, (uint)WMessages.WM_LBUTTONDOWN, 0, MAKELPARAM(400, 400));

1 个答案:

答案 0 :(得分:1)

使页面无状态。这是扎实的做法。它还允许在生产站点上进行缓存。

<div ng-controller="txnController"
    ng-init="GetTxnResponse(${txnDetails.txnNo})" >

self.GetTxnResponse = function(txnNo) {
    if (txnStatus == '00') {
        $http.get(CONTEXT_PATH + '/getResponseDetails/' + txnNo).success(function(data) {
        // Here i get 1000 from data second time

@RequestMapping(value="/getResponseDetails/{txnNo}", method=RequestMethod.GET)
public @ResponseBody TransactionDO getResponseDetails(HttpServletRequest httpRequest,
        @PathVariable long txnNo) {
    ...
}

您可能需要比显示的代码更多地调整页面。

再解释一下:用户可以打开两个同一页面的标签,然后玩转。猜猜是什么?