子ウィンドウでの情報取得方法について

このQ&Aのポイント
  • 子ウィンドウから親ウィンドウに情報を取得する方法について質問です。
  • 現在の方法では文字化けが生じてしまうため、文字化けを解消する方法についても教えてください。
  • 値を持ちながらエラーが発生しない方法についてもご指摘いただけると幸いです。
回答を見る
  • ベストアンサー

子ウィンドウでの情報の取得

こんにちは!yuki_x です。 お世話になっています。 またまたJava(JavaScript?)で質問です。よろしくお願いします。 既に開いているウィンドウから子ウィンドウを起動する以下のような処理を考えています。 <SCRIPT LANGUAGE='JavaScript'> <!-- function subwinOpen() { window.open("pg_detail?type=0&details=" + "タイトル,名前,2002,10,住所," +", "sub", "menubar=no") ; } //--> </SCRIPT> <FORM action="pg_detail" METHOD="post" NAME="myform1" onSubmit=""> <INPUT type="button" value="詳細" onClick="subwinOpen();" /> </FORM> 子ウィンドウの起動時に、サーブレットに対しアクセスし、 動的にHTMLを生成する・・・という感じです。 サーブレット側で details の値を取得し、 String ddd = new String( req.getParameter("details").getBytes("8859_1"), "EUC_JP" ); 表示すると文字化けしてしまっているのですが、これを解消する方法はないでしょうか? 欲をいえば、親ウィンドのHTMLに <INPUT type="hidden" name="details" value="タイトル,名前,2002,10,住所," /> として値(情報)を持ち、 String aaa = new String( req.getParameter("detail0" ).getBytes("8859_1"), "EUC_JP" ); として、持ってこられればベストなのですが、これだとエラーで終わってしまうので・・・。 こちらの解決方法、およびご指摘も併せて お願いします。

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • hameggs
  • ベストアンサー率38% (8/21)
回答No.1

とりあえず文字化けの部分を…。 そちら側が文字化けに対してその後どれくらいの 解決策を試行してみたかが分からないため、くわ しい状況がわからないので、はっきりとした解答 ができませんが、とりあえず参考URLを。

参考URL:
http://www.ingrid.org/java/jserv/i18n/corruptedchar.html
yuki_x
質問者

お礼

ありがとうございます。 JISAutoDetectで解決しました。 教えていただいたサイトには ”出来るだけ使わないように”とありましたが、とりあえずこれで解決としました。 私自身、どの部分をどのように質問すればいいのか良くわかっていなくて、とてもわかりにくい内容だったと思います。 本当にありがとうございました。

関連するQ&A

  • JavaScriptからServletに渡した文字列が文字化け

    度々お世話になっています。 今回もよろしくお願いします。 JavaScriptからServletに渡した文字列が文字化けしてしまい解決できずにいます。 以下に使っているコードを抜粋します。 1)HTML表示。 2)HTML内のボタン押下でJavaScriptからServletに文字列を渡す。 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUC-JP"> <SCRIPT LANGUAGE='JavaScript'> <!-- function subwinOpen() { window.open("pg_detail?type=0&detail=" + "国立競技場," +", "sub", "menubar=no") ; } //--> </SCRIPT> <FORM action="pg_detail" METHOD="get" NAME="myform1" onSubmit=""> <INPUT type="button" value="詳細" onClick="subwinOpen();" /> </FORM> 3)Servlet側で文字列取得。 pg_detail.java public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html;charset=EUC-JP"); String v_details = new String( req.getParameter("detail").getBytes("8859_1"), "JISAutoDetect" ); } 以上のコードを実行すると、 ”国立競技場,”が”国立競技?E”となってしまいます。 かなり端折ってしまいましたが、説明不足な個所があれば補足します。 よろしくお願いいたします。

  • ブラウザーでの入力値をサーブレットで取得する方法

    サーブレットの開発を行っていますが、ブラウザー側で 入力したパラメーターをサーブレットで受け取りたいのですがうまくいきません。 受け取りたいのは、以下のHTMLで作成したテキストボックスへの入力値です <form name="form7" method="post" action=""> <p> <input type="text" name="textfield2" size="4" maxlength="4"> 年 <input type="text" name="textfield" size="2" maxlength="2"> 月</p> </form> ブラウザー側からは <form action="http://localhost/servlet/yuushi" method=post> の指定を行っています。 サーブレットでの受け取り方は、 String p=request.getParameter("textfield2"); String p1=request.getParameter("textfield"); としましたが、p、p1とも何の値も入りませんでした。 getParameterで取得できると思ったのですが取得できませんでした。 値の取得方法の御教示をお願いいたします。

    • ベストアンサー
    • Java
  • getParameterの制限?

    昨日から悩んでます。 どうしても今日中にあげなければならないので、 お力を貸してください!! <INPUT name="name1" type="text"> <INPUT name="name2" type="text"> <INPUT name="name3" type="text"> : : <INPUT name="name10" type="text"> <INPUT name="name11" type="text"> というHTMLの情報を取得したいのですが、 今、Javaで下のように書いています。 for ( int j = 1; j <= 11; j++ ) { str = new String( req.getParameter("name" + j).getBytes("8859_1"), "EUC_JP" ); } こうすると1~9までは取得できるのですが、10の取得で止まってしまいます。 二桁になるとダメなのでしょうか? ちなみに "name" + j を "name10" としてもダメでした。

    • ベストアンサー
    • Java
  • 配列の受け渡し

    失礼致します。 配列について困っていまして、質問させてください。 今、フォームデータとしてsubmitを押したときにjavascriptから配列をサーブレットに受け渡ししたいです。フォームを含めたソースは次のようになります。 <script> function submitArr(n) { var i = 0; var array = []; while(i<n) { array.push(variable); // variableはiの値に応じて変わる変数。 } document.frm.array.value = array; ☆ } </script> <form action="servlet" method="post" name="frm"> <input type = "submit" value = "submit" onClick="submitArr()"> <input type = "hidden" value = "" name="array"> ☆ </form> 次に、servlet側でこれを受け取ります。 String[] array = new String[n]; ★ while(i<n) { array[i] = req.getParameter(array[i]); ★ } 以上が本質的な部分だと思うのですが、☆および★の部分をどう書いたらいいかわかりません。 添え字も少しあやふやなのですが、 分かる人がおられましたら、教えていただけないでしょうか?

    • ベストアンサー
    • Java
  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>入力ページ</title> </head> <body> <p>-- 入力ページ --</p> <p><form action="test2.jsp"> ID: <input type="text" name="uid" size10><br> お名前: <input type="text" name="name" size=32><br> 生年月日: <input type="text" name="money" size=20><br> <br> <input type="submit" value="OK"> </form></p> </body> </html> ------------------------------------------------------- test2.jsp <%@ page contentType="text/html; charset=euc-jp" %> <% // ユーザーからの入力を出力する // パラメータを取得 String uid = request.getParameter("uid"); String name = request.getParameter("name"); String money = request.getParameter("money"); // 文字コードの変換 //uid = new String(uid.getBytes("8859_1"), "EUC_JP"); name = new String(name.getBytes("8859_1"), "EUC_JP"); money = new String(money.getBytes("8859_1"), "EUC_JP"); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><title>ユーザーからの入力を出力する</title></head> <body> <p>-- ユーザーからの入力を出力する --</p> <p><ul> <li>ID: <%= uid %> <li>お名前: <%= name %> <li>生年月日: <%= money %> </ul></p> </body> </html> htmlの入力フォームからjspを呼んで表示させるだけなのですが、入力して「OK」をおすと You don't have permission to access /~.........../test2.jsp on this server. と出るのですが、何が原因なのでしょう。教えてください。

  • 子ウィンドウの情報を取得したい

    window.openを複数行い、各ウィンドウの情報を取得したいのですが 配列変数などで管理せずwindowなどで取得は可能でしょうか? 試しに作成したソースです --ココカラ(oya.html)-- <html> <head> <script type="text/javascript"> <!-- //この方法で取得ができるが var koList = new Array(); function openKoA(){ kowin = window.open("ko.html", "kowin" + koList.length); koList.push(kowin); } function koListA(){ for(i in koList){alert(koList[i].document.getElementById("t1").value);} } // 配列で管理せずにwindow等にある情報で取得したい function openKoB(){ window.open("ko.html"); } function koListB(){ alert("子供リストなど"); //window.childNodes とか } --> </script> </head> <body> <input type="button" value="openKoA" onclick="openKoA()"> <input type="button" value="koListA" onclick="koListA()"> <br> <input type="button" value="openKoB" onclick="openKoB()"> <input type="button" value="koListB" onclick="koListB()"> </body> </html> --ココマデ(oya.html)-- --ココカラ(ko.html)-- <html> <body> <input type="text" id="t1" value="aa"> </body> </html> --ココマデ(ko.html)-- 以上、よろしくお願いします。

  • JavaScriptで子ウィンドウからメールを送信

    javascriptで子ウィンドウからメールを送信したいです。 JSは全くの素人なので、手探りでやっています。 サーバーはCGIが使えない環境なので、何かよい方法はないでしょうか? <html> <title>sub window sample1</title> <body> <h1>Sub Window Sample1</h1> <script language="JavaScript" type="text/javascript"> function formSubmit(){ window.open("","window1","width=400","height=200"); document.getElementById("form1").target = "window1" ); } </script> <form id="form1" action="" > <input type="button" name="submit" value="mail window!" onClick="formSubmit()"> </form> </body> </html> このようなソースを途中まで書いてみましたが、子ウインドウすら開いて くれません。 ぜひご教示をよろしくお願いいたします。

  • ページにジャンプできなくなってしまった。

    テキストフィールドごと違うパラメータを受け取るためにフラグを設定したら色情報を取得するcolorparet.jspにジャンプできなくなってしまいました。試行錯誤していますが解決できません。プログラムは下記のとおりです。問題と思われるところです。 <% String Flag=(String)request.getParameter("hiddenFlag1"); String cs=""; String cs1="";     ・     ・ String cs12=""; String cs13="";%> <% if(Flag!=null && Flag.equals("0")){ cs=(String)request.getParameter("cn"); }else if(Flag!=null && Flag.equals("1"){ cs1=(String)request.getParameter("cn");          ・          ・          ・ }else if(Flag!=null && Flag.equal("13"){     cs13=(String)request.getParameter("cn"); }%> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <SCRIPT language="JavaScript"> function syori(flag){ document.form1.hiddenFlag1.value=flag; document.form1.action="index.jsp"; document.form1.submit(); } </SCRIPT> </head> <form name=form1 method=post action=""> <INPUT type=hidden name=hiddenFlag1 value="">

  • AUの一部携帯でHTMLをPOSTすると、値が空

    AUのK006やNS01の機種にて、下記のHTMLからPOSTをしたところ、サーブレット側にてパラメータ(regist_mail)の値が空となってしまいます。 S61Tの機種で試したら正常に取得できることから、原因が判明しておりません。どなたかご教授をお願いいたします。 HTMLやサーブレット側のファイルの内容は下記のとおりです。 ■HTML側 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta name="robots" content="noindex,nofollow"> </head> <body>  <form method="POST" action="/test/servlet/testentry">    <input size="20" maxlength="200" name="regist_mail" value="xxxxx@ezweb.ne.jp"><br>    <input type="submit" value="登録" name="entry"><br>  </form> </body> </html> ■サーブレット側のポスト関数 public void doPost(HttpServletRequest req, HttpServletResponse res)    throws ServletException, IOException {  // encFlag = 1 shif_jis変換する  // encFlag = 2 無変換  int encFlag = 1;  if ( req.getCharacterEncoding().toLowerCase().equals("shift_jis") ) {    encFlag = 2;  }  //パラメータのregist_mailの文字列の長さをチェックする  if ( convJp(req.getParameter("regist_mail"), encFlag).length() > 0 ) {    //    //ここにきてしまう。  } ■サーブレット側の共通関数 public static String convJp(String str, int encFlag) {  try {    if (encFlag == 1) {      return new String(str.getBytes("iso-8859-1"), "Shift_JIS");    }  }  catch ( Exception e ) {    e.printStackTrace();    return null;  }  return str; } =========================================

  • ラジオボタンの選択肢をサーブレットで取得するには?

    サーブレットの開発を行っていますが、ブラウザー側で ラジオボタンを選択した際に何を選択したかのデータを取得したいのです。 (下記のHTMLで言えば、割引手形か、手形貸付か、証書貸付というのを取得したいのです) パラメーターをサーブレットで受け取りたいのですが うまくいきません HTMLでHIDDENを使用するとか聞いたことはあるのですがどのようにコーディングすればいいんでしょうか? よろしくお願いいたします。 <p> <input type="radio" name="radiobutton" value="radiobutton"> 割引手形  <input type="radio" name="radiobutton" value="radiobutton"> 手形貸付  <input type="radio" name="radiobutton" value="radiobutton"> 証書貸付 </p> ブラウザー側からは <form action="http://localhost/servlet/yuushi" method=post> の指定を行っています。 サーブレットでの受け取り方を、 String p2=request.getParameter("radiobutton");  とすると、p2=radiobuttonとデータがセットされました。

    • ベストアンサー
    • Java

専門家に質問してみよう