プロが教えるわが家の防犯対策術!

いつもお世話になっています。
javaサーブレット実行時における、処理について質問します。
現在、javaサーブレットを使って、複数のidで処理しようとしています。
その際、同期化を行うため、ラップオブジェクト同期化を使用していています。
その際、複数画面からアクセスされた場合、
アクセスされた順番に処理は行えるのですが、
このときどのユーザーが行ったかを判別したいと考えています。
これは、可能なのでしょうか?

ソースは以下の方法で作成しています。
jsp側
<body>
<form name="groupForm" action="./Group_Run_Servlet" method="POST">
<input type="text" name="userId" value="nanami_45">
<input type="text" name="password" value="moon_Light"><br>
◆更新・削除のどちらかをチェックしてください。<br>Test
<table border="2">
<tr>
<td style="background-color:white;"></td>
<td style="background-color:white;"></td>
<td>No.</td>
<td>グループ名称</td>
</tr>
<tr>
<td>
<input type="checkbox" name="update" value="0">更新
</td>
<td>
<input type="checkbox" name="delete" value="0">削除
</td>
<td><input type="hidden" name="groupNumber" value="24">
24
</td>
<td>
<input type="text" name="groupName" value="at">
</td>
</tr>
</table>
</body>
※文字の加減で、一個にしています。

サーブレット側
public class Group_Run_Servlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
/** ラップオブジェクト同期化 **/
private static final List<String> list =
Collections.synchronizedList(new ArrayList<String>() );

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");

//このとき、実行adminユーザーを判定する必要がある。
//方法として、渡されてきた順に一度listかに格納する必要がある
System.out.println("userId="+AdminUser_Session.getUserID());
System.out.println("password="+AdminUser_Session.getPassword());
String userId = String.valueOf(request.getParameter("userId"));
String password = String.valueOf(request.getParameter("password"));
System.out.println("userid:"+userId + "/password:"+ password);

synchronized(list) {
//checkboxの値を取得する
String[] update = request.getParameterValues("update");
String[] delete = request.getParameterValues("delete");

String[] groupNumbers = request.getParameterValues("groupNumber");
String[] groupNames = request.getParameterValues("groupName");

//更新
if(update != null ) {
System.out.println("update.length:"+ update.length );
for(int u=0;u<update.length;u++ ) {
System.out.println("update[" + u + "]:" + update[u]);
testWait(c);
}
}

//削除
if(delete != null ) {
System.out.println("delete.length:"+ delete.length);
for(int d=0;d<delete.length;d++ ) {
System.out.println("delete["+ d + "]: " + delete[d]);
testWait(c);
}
}
}

private void testWait( int userCnt) {

for(int s=0;s<30;s++) {
try {
Thread.sleep(300);
System.out.println("--- " + s );
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
※doPost以外省いています.
宜しくお願いします。

A 回答 (1件)

IPアドレスで判断できるだろうし


セッションIDで判断できるだろうし
判断できる情報はあるわよ。
    • good
    • 0
この回答へのお礼

IPアドレスですか。
セッションとか以外でできないのかと思っていたので。
IPアドレス、セッションIDで判断するようにしてみます。
ありがとうございました。

お礼日時:2010/04/10 17:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!