0

次の質問がありますが、正解かどうかを確認したいと思います。

<title>Exam</title>
</head>
<body>
<% Integer times = (Integer)(session.getAttribute("times")) ;
if (times == null) { times = new Integer(0) ; }
else { times = new Integer(times.intValue() + 1) ;
session.setAttribute("times", times) ;}
%>
times = <%=times %>

ユーザーAが最初に試験にアクセスします。彼が受け取ったページには、times=0と書かれています。以下のイベントが正確に記述された順序で発生すると仮定して、以下のtimes= _を完了します。

  1. ユーザーAは、同じブラウザウィンドウから2回目のExamへのアクセスを行います。彼はバックタイムを受け取ります= __

  2. ユーザーBは、別のコンピューターから試験に初めてアクセスします。彼はバックタイムを受け取ります= __

  3. ユーザーAは、さらに別のコンピューターから3回目の試験へのアクセスを行います。彼はバックタイムを受け取ります= __

    1. 1
    2. ヌル
    3. ヌル
4

1 に答える 1

1

elseブロックを閉じると仮定します

<title>Exam</title>
 </head>
 <body>
 <% Integer times = (Integer)(session.getAttribute("times")) ;
    if (times == null) { times = new Integer(0) ; }
    else { times = new Integer(times.intValue() + 1) ;}
    session.setAttribute("times", times) ;
 %>
 times = <%=times %>
  1. 1
  2. 0
  3. 0

上記のあなたの答えは間違っています、時間は決してヌルにはなりません。コードが実行しているのは、セッションに整数を格納し、同じセッションで整数にアクセスするたびに整数をインクリメントすることです。

In same sessioncookie(Jsessionid)を削除せずに、同じコンピューターから、同じブラウザーからを意味します。Jsessionid Cookieは、セッションを追跡するためにWebコンテナによって作成されます。

于 2012-12-14T19:53:25.327 に答える