 |
 |
| 閲覧数:985 |
掲示板(テキストボックス追記) |
 |
| 名前 |
匿名
|
| 題名 |
テキストボックス追記
|
質問内容
質問を評価する
(0ポイント)
|
ブラウザ上でテキストボックスを作り 文字を追記していくというのをやっています なかなかうまく表示されないので どこがわるいのか どういう風にすればいいか アドバイスお願いします
import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration;
import javax.servlet.*; import javax.servlet.http.*;
public class Web extends HttpServlet{ public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{ String param = request.getParameter("aaa"); HttpSession session = request.getSession(false); if(param!=null){ session.setAttribute("param",param); } response.setContentType("text/plain; charset=Shift_JIS"); //文字化けしないようにShift_JIS指定 PrintWriter out = response.getWriter(); // out.println("<html>"); out.println("<form>"); out.print("<input type='text' name=aaa>"); out.println("<input type='submit' value=クエリ送信>");
request.setCharacterEncoding("Shift_JIS"); HttpSession mozi = request.getSession(); Enumeration names=mozi.getAttributeNames(); while(names.hasMoreElements()){ String kkk=(String)names.nextElement(); out.println(mozi.getAttribute(kkk)+"<br>"); } out.println("</html>"); } }
|
| 質問日時 |
2013-04-01 17:07:36 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(0ポイント)
|
Servletで追記はできんよ。 実行される順番を考えてみよう。
|
| 回答日時 |
2013-04-01 17:29:00 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(0ポイント)
|
質問者です 追記はできないのですか・・・ セッションで一覧表示ってことですよね??
順番少し見直してみます
|
| 回答日時 |
2013-04-01 17:54:35 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(0ポイント)
|
あ。 ボタンを押したら送信しないでテキストボックスに追記した いんだと誤解した。 テキストボックスに入れたものを送信するたびに追記して出 したいのか。
セッションに入れてるのが最初だけだからだね。 取ってるEnumerationもセッションに例えば"param1" "param2"…と入れたときに、それらを順番に取るものだな。
|
| 回答日時 |
2013-04-01 20:09:09 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(0ポイント)
|
質問者です。 テキストボックスの下に追記していきたい感じです。 前の要素は残るようなんですが 下に追記して足していくってのがまだうまくいかない感じです。 もう少しがんばってみます。よければアドバイスお願いします。
|
| 回答日時 |
2013-04-02 09:29:48 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(0ポイント)
|
2つ前の入力値を1つ前の入力値で上書きしてるからでは
|
| 回答日時 |
2013-04-02 10:51:29 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(0ポイント)
|
質問者です 上書きですか・・・ 根本的に理解が足りてないようです・・・ 流れをもう一度考えて 勉強してみます
|
| 回答日時 |
2013-04-02 11:30:16 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(0ポイント)
|
import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration;
import javax.servlet.*; import javax.servlet.http.*;
public class Aa extends HttpServlet{ public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{ response.setContentType("text/plain; charset=Shift_JIS"); //文字化けしないようにShift_JIS指定 request.setCharacterEncoding("Shift_JIS"); String param = request.getParameter("aaa"); HttpSession session = request.getSession(); if(param!=null){ session.setAttribute("aaa",param); } PrintWriter out = response.getWriter(); //出力 out.println("<html>"); out.println("<form>"); out.println("<form method=get action=../Aa>"); out.print("<input type='text' name=aaa>"); out.println("<input type='submit' value=クエリ送信>");
Enumeration names=session.getAttributeNames(); while(names.hasMoreElements()){ String kkk=(String)names.nextElement(); out.println(kkk+"<br>"); } out.println("</html>"); } }
|
| 回答日時 |
2013-04-02 11:46:16 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(0ポイント)
|
>session.setAttribute("param",param); これって何をしているか分かりますか?
>names.hasMoreElements() ここでどんな内容が返ってくるのを期待していますか?
2013-04-01 20:09:09の匿名さんの回答にヒントがあるの ですけど・・・
|
| 回答日時 |
2013-04-02 11:49:54 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(0ポイント)
|
質問者です
import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration;
import javax.servlet.*; import javax.servlet.http.*;
public class Aa extends HttpServlet{ public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{ response.setContentType("text/plain; charset=Shift_JIS"); //文字化けしないようにShift_JIS指定 request.setCharacterEncoding("Shift_JIS"); String param = request.getParameter("aaa"); HttpSession session = request.getSession(); if(param!=null){ session.setAttribute("aaa",param); } PrintWriter out = response.getWriter(); //出力 out.println("<html><body>"); out.println("<form method=get action=../studyB/Aa>"); out.print("<input type='text' name=aaa>"); out.println("<input type='submit' value=クエリ送信>");
Enumeration names=session.getAttributeNames(); while(names.hasMoreElements()){ String kkk=(String)names.nextElement(); out.println(kkk+"<br>"); } out.println("</form>"); out.println("</body></html>");
と少しなおしてみたのですが まだうまくはいきません・・・ >session.setAttribute("param",param); これって何をしているか分かりますか?
セッションに登録のようなものと認識してます
>names.hasMoreElements() ここでどんな内容が返ってくるのを期待していますか?
セッションがなくなるまで trueを返していただきたいです
ひとつしか登録できてないってことでしょうか・・??
|
| 回答日時 |
2013-04-02 12:03:11 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(0ポイント)
|
コードを書くことも大事ですが、APIの仕様も学びましょう
http://www.javaroad.jp/servletjsp/sj_servlet6.htm
ここのサイトのページですが、落ち着いて最初から読んでみてください。 特に自分が使っているメソッドの部分。
|
| 回答日時 |
2013-04-02 12:10:39 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(0ポイント)
|
質問者です
なんとか下に追記して表示させることができました しかし 一番下に追記していきたいのですが 昇順?降順?とも違った並びで表示されたり 同じものは入力できなかったりしています 何度もすいません アドバイスお願いします
import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration;
import javax.servlet.*; import javax.servlet.http.*;
public class Aa extends HttpServlet{ public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{ response.setContentType("text/plain; charset=Shift_JIS"); //文字化けしないようにShift_JIS指定 request.setCharacterEncoding("Shift_JIS"); String param = request.getParameter("aaa"); HttpSession session = request.getSession(); if(param!=null){ session.setAttribute(param,"aaa"); } PrintWriter out = response.getWriter(); //出力 out.println("<html><body>"); out.println("<form>"); out.print("<input type='text' name=aaa>"); out.println("<input type='submit' value=クエリ送信><br>");
Enumeration names=session.getAttributeNames(); //get・・すべてのセッション取得 //enumerationは 繰り返しに必要 while(names.hasMoreElements()){ String kkk=(String)names.nextElement(); out.println(kkk+"<br>"); } out.println("</form>"); out.println("</body></html>"); } }
|
| 回答日時 |
2013-04-02 13:52:25 |
|
質問から6ヶ月以上経過しているので、回答を書き込むことはできません。
|
|
 |
|
 |
 |