ネットが遅くてイライラしてない!?

PHPでは、下記のようにHTMLを記述することで、
フォーム内容を配列で送信及び取得できるのですが、
Servletで同じ事をするにはどうすれば良いでしょうか?

<HTML><title>一括更新</title><BODY>
<form action=./test.php method=post>
<table>
<tr><td>
<input type=input name=a[0] value="1">
<input type=input name=b[0] value="2">
</td></tr>
<tr><td>
<input type=input name=a[1] value="1">
<input type=input name=b[1] value="2">
</td></tr>
</table>
<input type="submit" value="更新">
</form></BODY></HTML>

このQ&Aに関連する最新のQ&A

A 回答 (4件)

<input type=input name=a[] value="1">


<input type=input name=a[] value="2">
のように順次入れていった場合

String a[] = req.getParameterValues("a[]");
これでいけました
String[] a
じゃないのがポイントのようです
    • good
    • 2

 直接配列として扱うのではなく、配列っぽく扱えるようなメソッドを実装して使うのが一番いいと思います。


以下の例は、100*3個のパラメータを受け取って、その結果を表示するページHTMLとサーブレットです。

-----ページHTML-----

<html>
<head><title>Param Array</title></head>
<body>

<form action="http://localhost:8080/minnaservlet/503076" method="POST">
<table border="1">
<tr><th></th><th>a</th><th>b</th><th>c</th></tr>
<script>
var i, j;
var an = new Array("a", "b", "c");
for (i = 0; i < 100; i ++) {
document.write("<tr><td>" + i + "</td>");
for (j = 0; j < 3; j ++) document.write("<td>" + an[j] + "<input type='text' name='" + an[j] + i + "' value='" + j + "'></td>");
document.writeln("</tr>");
};
</script>
</table>
<input type="submit" value="send">
</form>

</body>
</html>

-----サーブレット-----

package qa503076;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class paramarray extends HttpServlet {

private HttpServletRequest Req;
private PrintWriter PW;
private void p(String s) { PW.println(s); };
private String gp(String s, int n) { return(Req.getParameter(s + Integer.toString(n))); };
private String a(int n) { return(gp("a", n)); };
private String b(int n) { return(gp("b", n)); };
private String c(int n) { return(gp("c", n)); };

public void doPost(HttpServletRequest req, HttpServletResponse res) {

try {Req = req;
res.setContentType("text/html");
PW = res.getWriter();
p("<html><head><title>Input Result</title></head>");
p("<body>");

p("<table border='1'>");
p("<tr><th></th><th>a</th><th>b</th><th>c</th></tr>");
for (int i = 0; i < 100; i ++) {
p("<tr>");
p("<td>"+Integer.toString(i)+"</td>");
p("<td>a="+a(i)+"</td><td>b="+b(i)+"</td><td>c="+c(i)+"</td>");
p("</tr>");
};

p("</body></html>");

} catch (Exception ex) { System.out.println(ex.toString()+ "::Post"); };

};

}
    • good
    • 0

答えた後で思ったのですが


name=a[1]を単なる文字列の"a[1]"ではなくa[]の配列として取得
できないと回答の意味がないですよね。

getParameterValues()ですとString[]として受け取れるのですが
MULTIPLEのSELECTで複数選択されたものを取得可能にするものですし
getParameterNames()でEnumerationとして受け取るしかないように
思います。
    • good
    • 0
この回答へのお礼

いろんな方法があるんですね。ありがとうございます。
教えていただいた、getParameterValues()を検索してみたところ、
RequestParameters params = new RequestParameters(request);
Enumeration e = params.getParameterNames();
while( e.hasMoreElements() ){
......
}
な受取り方がありました。ただ、順不同な受け取りだと、入力行単位でDBの各レコードをUPDATEするのは難しいのかなと思います。
複数行の入力データを一括で更新する場合、一般的にどんな手法を取るのでしょうか?

HTMLを
<input type=input name=a1 value="1">
<input type=input name=b1 value="2">
<input type=input name=a2 value="1">
<input type=input name=b2 value="2">

Servletで、
for(int i=0;i<=recCount;i++) {
request.getParameter("a" + String.valueOf(i));
request.getParameter("b" + String.valueOf(i));
}
ではパフォーマンスが遅そうなので・・・

お礼日時:2003/03/21 00:59

こういうことでしょうか?



import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class test extends HttpServlet{
 public void doPost(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException{
  res.setContentType("text/html; charset=shift_jis");
  PrintWriter out = res.getWriter();
  out.println("<html><body>");
  out.println(
   "a[0]=" +req.getParameter("a[0]")
   +"<br>"+"b[0]=" +req.getParameter("b[0]")
   +"<br>"+"a[1]=" +req.getParameter("a[1]")
   +"<br>"+"b[1]=" +req.getParameter("b[1]"));
  out.println("</body></html>");
  }catch(Exception e){}
 }
}
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qservletからjspへオブジェクトの配列情報を送る方法

いつもお世話になっております。echo2002です。

さて、今回は以下のような処理を行いたいのですが、可能なのでしょうか?
”servletで作成したオブジェクトの配列をjspにforwardして表示させる”

こんなような処理を考えています。

構成:FileListServletクラス, FileInfomationクラス, disp.jsp

FileInfomationクラスではファイル名やファイルサイズなどの情報を持ち、
それぞれgetなどのアクセサメソッドを持つとします。

FileListServletクラスでの処理
FileInfomationクラスの配列を作成し、各情報をsetする。
HttpServletRequestにsetAttributeでFileInfomation情報を付加し、
disp.jspへforwardする。

※以下の方法を考えています。
request.setAttribute("fileinfo1", fileinfo[0]);
request.setAttribute("fileinfo2", fileinfo[1]);
request.setAttribute("fileinfo3", fileinfo[2]);
・・・
(配列でsetAttributeできるのかわからなかったので、
 とにかくファイルの数分setAttributeしてみました)

getServletContext().getRequestDispatcher("/disp.jsp").forward(req, res)

わからないこと:
disp.jspでどのようにFileInfomationの情報を取得し、
内容を参照できるのかがよくわからないのです。
jspの暗黙オブジェクトrequestを使用して、request.getParameterをすると、
返ってくる値がStringのようなので、FileInfomationクラスにならないんですよね?

突っ込みどころ満載の質問かと思いますが、何かアドバイス頂ければと思います。
オブジェクトの配列をsetAttributeしてjspで読み出せる方法があれば、
それもご教授いただけますでしょうか。
よろしくお願いいたします。jsp難しいです・・・。

いつもお世話になっております。echo2002です。

さて、今回は以下のような処理を行いたいのですが、可能なのでしょうか?
”servletで作成したオブジェクトの配列をjspにforwardして表示させる”

こんなような処理を考えています。

構成:FileListServletクラス, FileInfomationクラス, disp.jsp

FileInfomationクラスではファイル名やファイルサイズなどの情報を持ち、
それぞれgetなどのアクセサメソッドを持つとします。

FileListServletクラスでの処理
FileInfomationクラスの配列を作成し、...続きを読む

Aベストアンサー

setなんちゃらメソッドで値を設定したら、getなんちゃらメソッドを呼べば良かったのです。つまり、set/get以下が同名のメソッド同士をセットで使えば良いのです。
今回の場合は、getAttributeメソッドですね。
戻り値はObjectですがこれはキャストすれば良いのです。
FileInfomation 変数 = (FileInfomation)request.getAttribute("fileinfo1");
てな具合です。

なお、getParameterメソッドは、クライアント(ブラウザ)から送信されたパラメータを取得するメソッドです。

さて、話を次の段階に進めて、配列を受け渡しできるか?となりますが、、できます。
サーブレット側で、
request.setAttribute("キー文字列", fileinfo);
として、JSP側で、
FileInfomation[] 変数 = (FileInfomation[])request.getAttribute("キー文字列");
とすれば、良いのです。

Qで配列(複数の要素)を渡したいとき?

こんにちわ,

今HTML+PHPで
$hoge[]にいくつかの要素が入っているとき,
それをあるfoo.phpというページに渡したいとき,
echo '<form action="foo.php" method="POST">';
echo '<input type="hidden" name="$hoge[]" >';
echo '</form>';
としたのですが,うまくいきません。

どうしたらよろしいでしょうか。

Aベストアンサー

nameじゃなく、valueでは?
あとやるなら、
for($i=0;$i<count($hoge);$i++){
print "<input type=\"hidden\" name=\"$hoge[$i][0]\" value=\"$hoge[$i][1]\">";
}
とか?

QJava-jspの画面入力値保持について

画面にテキスト、ラジオボタン、リストボックス とボタンがあります。
ボタンを押すと、JAVAで処理を行い、jspのviewで表示します。

1.テキスト、ラジオボタン、リストボックスなどに値が入力、設定されている状態で
ボタンを押して処理後にテキスト、ラジオボタン、リストボックスの値が
変わらないようにしたいのですが、
その場合、たとえば、入力、設定値をセッションになどに格納しておき
jspの所で、セッションから値を設定すると言うような方法になるのでしょうか?

2.ボタン押して処理後、ラジオボタン、リストボックスの選択値も
  変えないようにしたいのですが、
  これはどのように実現するのが、適切なのでしょうか?


以上、よろしくお願いします。

Aベストアンサー

ボタンというのはフォームのサブミットボタンのことですよ?
つまり、画面遷移が起きることを前提とすると(元の同じ画面に戻るのも含みます)

テキスト、ラジオボタン、リストボックスの状態を「要求パラメータ」として
送信し、それを次画面に反映するというのが最も一般的な方法です。

フレームワーク struts のアクションフォーム&JSPカスタムタグを使うと比較的楽に
そういう画面が作れますが、多くのフレームワークでも大差ありません。
簡単な画面なら素のサーブレート+JSPでも十分作れます。

セッションでもできますが、 セッションはログイン情報などの保持など、
限定された範囲で使うのが普通です。また、結局セッションに最新の
テキスト、ラジオボタン、リストボックスの状態を送るには、「要求パラメータ」
を送信する必要があります。

AJAXを使うという方法もあります。この場合、ボタンは AJAX 処理だけを行い
画面遷移を起こさないので、サーバ側で画面のテキスト、ラジオボタン、
リストボックスの状態をもつ必要はありません。

QJSPの処理の途中で、JavaScriptの処理をしたい

プログラムをJSPで記述している(<% %>タグ)のですが、
JavaScriptのalertやconfirmなどのポップアップするダイアログを
表示したいのです。それは可能なのでしょうか?

Aベストアンサー

No.2の回答に対する回答(変な日本語ですが)です。

JSPとJavaScriptの処理の行われる順番について考えていないと
エラーになることがありますよ。
大まかな流れは、
 JSPのソースをサーバ側で解釈、実行する(HTMLのソースを吐き出す)
  ↓
 クライアントに生成したソースを送信する
  ↓
 クライアント側のブラウザがソースを解釈する
  ↓
 ソースの中のJavaScriptを、ソースの上のほうから順次実行する
  ↓
 同時に、通常の表示(HTMLの解釈)も実行される

 と、こういう流れですので、例えば、JavaScriptで値を入力し、
JSPでその値を使おうとすると、エラーとなります。

 具体的にやりたいこと(やろうとしていること)を書いていただいたほうが
適切に回答できますが、上記が今考えられるエラーの原因です。

QStrutsでJSPからListを受け取りたい

JSPに複数のhidden(動的に数が変化)があり、これらの値をformのlist(配列)に詰めたいです。
尚、nameの値は別の処理でjavascriptを使いvalueを変化させるため連番であれば構わないです。です。

~~~JSP~~~
<input type="hidden" name="str1" value="a"/>
<input type="hidden" name="str2" value="b"/>
<input type="hidden" name="str3" value="c"/>
~~~~~~~~
上のJSPから下記のFORMに詰めたい
~~~form~~~
private List strList;

public List getStrList(){
return strList;
}
~~~~~~~~

又、こちらで調べたところ下記のようにすればいけるようですが欲しい値は一つのためBeanを使用しなくても実現可能ではないかと思い、質問させていただきました。
よろしくお願い致します。

~~~JSP~~~
<input type="hidden" name="testArray[0].str" value="a"/>
<input type="hidden" name="testArray[1].str" value="b"/>
<input type="hidden" name="testArray[2].str" value="c"/>
~~~~~~~

~~~FORM~~~

private List list;
public TestBean getTestA(int iIndex) {
while (this.list.size() <= iIndex) {
this.list.add(new TestBean ());
}
return ( TestBean ) this.list.get(iIndex);
}
public Object[] getTestArray() {
return list.toArray();
}

public static class TestBean {
private String str = "";
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
}

JSPに複数のhidden(動的に数が変化)があり、これらの値をformのlist(配列)に詰めたいです。
尚、nameの値は別の処理でjavascriptを使いvalueを変化させるため連番であれば構わないです。です。

~~~JSP~~~
<input type="hidden" name="str1" value="a"/>
<input type="hidden" name="str2" value="b"/>
<input type="hidden" name="str3" value="c"/>
~~~~~~~~
上のJSPから下記のFORMに詰めたい
~~~form~~~
private List strList;

public List getStrList(){
return strLis...続きを読む

Aベストアンサー

うーむむ・・・。こゆうことでしょうか。
アドバイスの方向が間違ってたらすいません。
(※実行してないため、コードはあくまで参考程度で。)

----Jsp側
<html:hidden property="strArray[0]" value="a" />
<html:hidden property="strArray[1]" value="b" />
<html:hidden property="strArray[2]" value="c" />
....

----Form側
String[] strArray;
List<String> strList;
public void setStrArray(String[] strArray) {
____this.strArray = strArray;
____this.strList = Array.asList(strArray);
}
public String[] getStrArray() {
____return this.strArray;
}
public List<String> getStrList() {
____return this.strList;
}

うーむむ・・・。こゆうことでしょうか。
アドバイスの方向が間違ってたらすいません。
(※実行してないため、コードはあくまで参考程度で。)

----Jsp側
<html:hidden property="strArray[0]" value="a" />
<html:hidden property="strArray[1]" value="b" />
<html:hidden property="strArray[2]" value="c" />
....

----Form側
String[] strArray;
List<String> strList;
public void setStrArray(String[] strArray) {
____this.strArray = strArray;
____this.strList = Array.asList(strArra...続きを読む

QsetAttribute getAttribute 配列内容受け渡し  について 

こんいちは。
setAttributeでセットした値をgetAttributeを使用して表示したいのですがうまくいきません。

あとsession.setAttributeとrequest.setAttributeの違いがわかりません。
session はなんとなくわかるのですが、requestがいまひとつわかりません。

どなたか教えていただけないでしょうか?
よろしくお願いいたします。

下記がコーディングの内容です。

test.jsp

<%@ page contentType="text/html;charset=Shift_JIS"
import="java.sql.*, java.util.*" %>
<%

String[] desc={"aaa","bbb","ccc","ddd","eee"};
session.setAttribute("desc",desc);

Vector vect = (Vector)session.getAttribute("dpt");

Iterator itr = vect.iterator();

while(itr.hasNext()) {
String[] temp = (String[])itr.next();

out.println(temp[0]);
out.println(temp[1]);
}
%>
<html>
<body>
t_3 test
</body>
</html>

こんいちは。
setAttributeでセットした値をgetAttributeを使用して表示したいのですがうまくいきません。

あとsession.setAttributeとrequest.setAttributeの違いがわかりません。
session はなんとなくわかるのですが、requestがいまひとつわかりません。

どなたか教えていただけないでしょうか?
よろしくお願いいたします。

下記がコーディングの内容です。

test.jsp

<%@ page contentType="text/html;charset=Shift_JIS"
import="java.sql.*, java.util.*" %>
<%

String[] ...続きを読む

Aベストアンサー

String[] desc={"aaa","bbb","ccc","ddd","eee"};
session.setAttribute("desc",desc);

Vector vect = (Vector)session.getAttribute("dpt");

Iterator itr = vect.iterator();


うまくいくわけがないですね。

String[]
型で格納したんだから。
受け取る時も、
String[]
型でキャストしないと無理です。
なぜ
Vectorでキャストするのでしょうか?

それに格納するときの
キー値が
"desc"
になっていて
どうして、
取得する時キー値が
"dpt"
にしているのでしょうか?


requestは
Httpプロトコルでいうところの1つセッション
をあらわすオブジェクトをサーブレットコンテナ
が実装したものです。

session
はブラウザのプロセスに対応する
セッションIDと該当するHttpSession
オブジェクトをサーブレットコンテナ側で
生成して、
一定期間存続させることで、
あたかも、セッションが確立させしているように
Http上でみせかけるための
しくみを提供するものです。

詳細は調べてください。

以上

String[] desc={"aaa","bbb","ccc","ddd","eee"};
session.setAttribute("desc",desc);

Vector vect = (Vector)session.getAttribute("dpt");

Iterator itr = vect.iterator();


うまくいくわけがないですね。

String[]
型で格納したんだから。
受け取る時も、
String[]
型でキャストしないと無理です。
なぜ
Vectorでキャストするのでしょうか?

それに格納するときの
キー値が
"desc"
になっていて
どうして、
取得する時キー値が
"dpt"
にしているのでしょうか?


request...続きを読む

Qフォームで同じ複数のnameで違うvalueの送信

始めまして、現在一個のフォーム内で複数の同じnameで、違うvalueを送信しようと苦戦しております、、普通にタグを書くだけでは
一個のnameで違うvalueの送信は、最後のvalueしか送信できないです、
phpは使用できません。javaは、、殆ど素人なので、あまり分かりません、、formを一個一個区切るのも、レイアウト上できません、、
どうすればいいのでしょうか?・・・以下タグです。
昨日から、ここから先に進めません。。
先輩方助けてください、本当によろしくお願いします。

<form action="http://hoge.net/hoge/hogecheck.php" method="post">
<input type="hidden" name="site" value="hoge">
<input name="id" type="text" id="idform" maxlength="10" />

<input type="hidden" name="kin" value="3000">
<input type="image" src="buybtn.gif" />
<input type="hidden" name="kin" value="5000">
<input type="image" src="buybtn.gif" />
<input type="hidden" name="kin" value="10000">
<input type="image" src="buybtn.gif" />
<input type="hidden" name="kin" value="20000">
<input type="image" src="buybtn.gif" />

</form>

始めまして、現在一個のフォーム内で複数の同じnameで、違うvalueを送信しようと苦戦しております、、普通にタグを書くだけでは
一個のnameで違うvalueの送信は、最後のvalueしか送信できないです、
phpは使用できません。javaは、、殆ど素人なので、あまり分かりません、、formを一個一個区切るのも、レイアウト上できません、、
どうすればいいのでしょうか?・・・以下タグです。
昨日から、ここから先に進めません。。
先輩方助けてください、本当によろしくお願いします。

<form action="http://hoge...続きを読む

Aベストアンサー

No.2の回答者です。
スミマセンm(__)m、Javaでしたね。PHPで書いてしまいました。。。

Java だったらこれで取れます。(HTML側の修正は不要です。)
String[] kin= req.getParameterValues("kin");

Qフォーム上で押されたボタンによってサーブレットの処理を変えたい

Urizakaです。
さて、さっそく質問です。
JSPの同一フォーム上に「登録」「修正」「削除」のボタンを置き、その押された
ボタンによってサーブレット内での処理が切り替わる(具体的には、違う
SQL文を実行し、違うJSPページをgetRequestDispatcherメソッドで生成
する)ようにしたいのですが、どのようにすればよいのでしょうか?
もちろんそれぞれの処理に対して別々のサーブレットを作り、javaScript
でそれぞれのサーブレットへ飛ぶように制御するという処理も考えたことは
考えたのですが、できれば一つのサーブレットで済ませたいと考えたもので
…宜しくお願いします。

Aベストアンサー

お恥ずかしい限りです。
前述の例、動くわけがありませんね(汗)

2つめの例、書きなおします。

---------------------------------------------------

■JSPのフォーム

<form name=MyForm action="<<サーブレットのURL>>" method=post>
<input type=button name=MyClick value=登録 onClick="func('Toroku');">
<input type=button name=MyClick value=修正 onClick="func('Shusei');">
<input type=button name=MyClick value=削除 onClick="func('Sakujo');">
<input type=hidden name=MySubmit>
</form>

<script language="JavaScript">
function func(MyCommand){
document.MyForm.MySubmit.value=MyCommand;
document.MyForm.submit();
}
</script>

■Servletでの処理
// リクエストの取得
String MyAction = req.getParameter("MySubmit");

// 処理の実行
if (MyAction.equals("Toroku")){...}
if (MyAction.equals("Shusei")){...}
if (MyAction.equals("Sakujo")){...}



---------------------------------------------------

こんな感じでどうでしょうか。
ちなみにこうやって書いておくと、フォームのボタンからじゃなくても
アンカーをクリックすることで同じ効果が出せそうな……

<a href="JavaScript:func('Toroku')">登録</a>

あ、でもまたボロが出そうなのでこの辺で(^_^;)

お恥ずかしい限りです。
前述の例、動くわけがありませんね(汗)

2つめの例、書きなおします。

---------------------------------------------------

■JSPのフォーム

<form name=MyForm action="<<サーブレットのURL>>" method=post>
<input type=button name=MyClick value=登録 onClick="func('Toroku');">
<input type=button name=MyClick value=修正 onClick="func('Shusei');">
<input type=button name=MyClick value=削除 onClick="func('Sakujo');">
<input type=hidden name=M...続きを読む

QJavaScriptにて動的に配列を作成して、POSTで渡したい

独学でJavaScriptの勉強をしているものです。
勉強用に作っているサイトにて、どうしてもやり方がわからないことがあるので、教えて下さい。

以下のようなフォームがあったとします。

<form name="testForm1">
<input type="hidden" name="id" value="1" />
<input type="checkbox" name="check" />
</form>

このフォームは動的に複数作成され、idのvalueはフォームごとに別の値が入ります。

それで行いたいことは、複数あるtestForm1から、チェックボックスにチェックが付いているidだけを取得して、別のページにPOSTで渡したいんです。

以下のようなスクリプトを書いたのですが、思うように動作してくれませんでした。

<form action="hoge" name="testForm2" method="post">
<input type="hidden" name="id" />
</form>

function func() {
var idArray = new Array();
for ( count = 0; count < document.testForm1.length; count++ ) {
if ( document.testForm1.check.checked == true ) {
idArray.push( document.testForm.id.value );
}
}
document.testForm2.id.value=idArray;
document.testForm2.submit();
}

JavaScriptに関しては独学で必要に応じて勉強している感じで、あまり基礎がわかっておらず、もしかしたらかなり的外れな質問になってしまっているかもしれませんが、どうか宜しくお願い致します。

独学でJavaScriptの勉強をしているものです。
勉強用に作っているサイトにて、どうしてもやり方がわからないことがあるので、教えて下さい。

以下のようなフォームがあったとします。

<form name="testForm1">
<input type="hidden" name="id" value="1" />
<input type="checkbox" name="check" />
</form>

このフォームは動的に複数作成され、idのvalueはフォームごとに別の値が入ります。

それで行いたいことは、複数あるtestForm1から、チェックボックスにチェックが付いているidだけを取得し...続きを読む

Aベストアンサー

<input type="checkbox" name="fuga" value="xxxx">
<input type="checkbox" name="fuga" value="xxxx">
<input type="checkbox" name="fuga" value="xxxx">
<input type="checkbox" name="fuga" value="xxxx">


var a = document.getElementsByTagName( 'fuga' );
var c , o, b = [ ];

for( c = 0; o = a[ c++ ]; ) if( a.checked ) b.push( a.value );
document.getElementById( 'yyyy' ).value = b.join(',');
とか。

QリクエストからArrayListのデータが取得出来ない

いつもお世話になっております。

表題の通り、リクエストからArrayListのデータが取得出来ないのです。

javaで、
ArrayList cmArray = new ArrayList();
データベースからデータ取得
request.setAttribute("category",cmArray.toArray());

jspで
ArrayList list = new ArrayList();
list = (List)request.getAttribute("category");
と取得しようとしています。
そうすると、java.lang.ClassCastExceptionが発生してしまいます。

どなたか分かる方がいましたら、ご教授下さい。
よろしくお願い致します。

Aベストアンサー

requestには、cmArray.toArray()でObjectの配列が入ってます。
なのでJSPでListで受け取ろうとしてClassCastExceptionが発生しています。

request.setAttribute("category",cmArray);
でいいんではないでしょうか。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング