0

Struts2、JSP、および休止状態を使用してオンライン評価アプリケーションを作成しています。

すべてのアプリケーション部分が完全に実行されています。

私のアプリケーションは、セッションの概念を使用して、試験を行っているユーザーの状態を維持しています。、ブラウザがシャットダウンした場合にシステムがクラッシュした場合、ユーザーが最初の質問から始めてほしくないからです。実際、ユーザーが離れたところから開始する必要があります。今、私はこれについて考えることができません。これをテストする方法。自分のコンセプトを簡単にテストできる簡単な方法はありますか。

ユーザーが誤ってブラウザを閉じてしまったため、戻ってきたときに元の場所から試験を開始することになります。

URL を入力 > 試験 ID を入力 > 試験を続行するだけです。

このために、JDBC ストアを使用した tomcat サーバー セッションの永続性を使用しています。セッション ID を使用してセッション オブジェクトをデータベース テーブルに格納できます。

ブラウザーを再度開くと、セッション ID を取得できますが、データを取得できません。アプリケーションで NullPointerException が表示されます。

public class UserAction extends ActionSupport{
private String candidateID;
private List loadDropDown;
//getter setter methods
public String user_page1() throws IOException{
//loading examID in drop down list.
loadDropDown=new ArrayList(); 
//getting context object
ServletContext ctx=ServletActionContext.getServletContext(); 
//creating session object
HttpSession session = ServletActionContext.getRequest().getSession(false);
//showing session id
System.out.println("User Page 1 :"+session.getId());
if(session.isNew()){
here if user logging first time then application should be able to create new session object and load fresh data.
}
else
{
application should show them a question where they left
}
...

だからこれで私を助けてください。

前もって感謝します。

ラヴィンダーパル・シン

4

1 に答える 1

1

セッション永続性を使用するアプローチには問題があります。ブラウザーが閉じるときに Cookie を削除するように構成されているか、「プライベート ブラウジング」モードで開かれている場合、サーバーに送信されるセッション ID は存在しなくなります。

より良いアプローチは、ユーザーがデータベースで直接テストを開始したかどうかを追跡することです。同様に、ユーザーが質問を試みるたびにデータベースを更新できます。

ユーザーがログインすると、保留中のテストに関するチェックが実行され、ユーザーは必要に応じて続行できます。

更新:例外自体に関しては、JB Nizetが述べたように、スタック トレースが実際に役立ちます。

于 2013-10-09T14:17:57.380 に答える