htmlからjspへ処理を移す方法が分かりません

このQ&Aのポイント
  • Java初心者のため、htmlからjspへの処理の移し方がわからない。
  • 現在DBを使ったWEBアプリケーションを学んでいる。
  • htmlの登録ボタンを押すとエラーページへ飛んでしまう問題が発生している。
回答を見る
  • ベストアンサー

htmlからjspへ処理を移す方法が分かりません。

Java初心者の者です。現在、DBを使ったWEBアプリケーションについて学んでおります。 htmlをスタートページとしてjsp(登録用画面)へ処理を移したいのですが、どのように記述すれば良いか悩んでおります。 現在、htmlの登録ボタンを押すと下記のエラーページへ飛んでしまいます。 The server encountered an internal error () that prevented it from fulfilling this request. java.lang.IllegalStateException: レスポンスをコミットした後でフォワードできません 以下はソースの一部抜粋です。 HTML <FIELDSET> <LEGEND align="center">MENU</LEGEND> <FORM action="/webapp/control" method="POST"> <INPUT class="button" type="submit" name="button" value="登録"> <INPUT class="button" type="submit" name="button" value="一覧"> </FORM> </FIELDSET> ・・・・・ JSP <%@page contentType="text/html;charset=Windows-31J" %> <%@page import="java.sql.*" %> <%@page import="XXX.XXX.XXX.bean.Bean" %> <%@page import="XXX.XXX.XXX.Entry" %> <%@page import="XXX.XXX.XXX.common.Accsess" %> <HTML> <HEAD> <TITLE>登録画面</TITLE> <link rel="stylesheet" type="text/css" href="./default.css"> </HEAD> <BODY> <DIV class="header"> <B>登録</B> </DIV> <BR> <DIV align="center"> <FIELDSET class="entry"> <FORM action="/webapp/control" method="POST"> <TABLE border="0" cellspacing="0" cellpadding="5"> <TR> <TD>ID</TD> <TD><INPUT type="text" name="userid" value="" size="20" maxlength="16"></TD> </TR> <TR> <TD>PASSWORD</TD> <TD><INPUT type="text" name="password" value="" size="20" maxlength="16"></TD> </TR> //省略// <INPUT class="button" type="submit" name="button" value="INSERT"> ・・・・・・ try{ Bean bean=new Bean(); request.setCharacterEncoding("Windows-31J"); String button = request.getParameter("button"); if(button != null && button.equals("登録")){ //ここの記述が分かりません// } else if(button != null && button.equals("INSERT")){ //INSERTの呼び出し方も間違っている気がします// Entry cEntry=new Entry(); CustomerEntry cEntry=new CustomerEntry(); cEntry.entry(bean); request.setAttribute("ENTRY",cEntry); } finally{ ServletContext context = this.getServletContext(); RequestDispatcher dispatcher=context.getRequestDispatcher("/insert.jsp"); dispatcher.forward(request,response); ・・・・・ 初歩的な質問で申し訳ありませんが、ご教授お願い致します。

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

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

  • ベストアンサー
  • annyg2
  • ベストアンサー率50% (8/16)
回答No.1

フォワードは条件によってできないときがあるので、あまりおすすめしません。 >ServletContext context = this.getServletContext(); >RequestDispatcher dispatcher=context.getRequestDispatcher("/insert.jsp"); >dispatcher.forward(request,response); 上記3行を以下のように書き換えてみたらどうでしょう? response.sendRedirect("/insert.jsp");

mew-ktrk
質問者

お礼

>response.sendRedirect("/insert.jsp"); この方法ではないのですが、無事に解決することが出来ました! ですが、forwardが条件によってできないことを初めて知ることが出来、 大変勉強になりました。 アドバイス有難う御座いました!

関連するQ&A

  • jspでのremoveによる削除方法

    通販サイトのカートの画面で購入した商品一覧が表示される画面です 削除ボタンで商品を削除したいのですが上手くいきません for(int i=0; i<item.size(); i++){ String[] b=(String[])item.get(i); tableData +="<form action=\"cart.jsp\"><tr><td>"+b[0]+"</td><td>"+b[1]+"</td><td><img src=\""+"img/"+b[2]+"\"</td><td> <input type =\"hidden\" name=\"remove\" value=\""+i+ "\"> <input type=\"submit\" name=\"d\" value=\"カートから削除する\"></form></td></tr>"; } String removeValues=request.getParameter("remove"); session.removeAttribute(""); 全文です <%@ page contentType="text/html;charset=Shift_JIS"%> <%@ page import= "java.util.ArrayList" %> <%@ page import= "java.util.List" %> <%@ page session="true" %> <% request.setCharacterEncoding("Shift_JIS"); String[] Name ={"たらばがに","毛ガニ","いか","うに","あわび"}; String[] Price = {"4000","2500","500","3000","1500"}; String[] Img ={"taraba.gif","ke.gif","ika.gif","uni.gif","awabi.gif"}; String tableData =""; ArrayList item=(ArrayList)session.getAttribute("itemlist"); try { for(int i=0; i<item.size(); i++){ String[] b=(String[])item.get(i); tableData +="<form action=\"cart.jsp\"><tr><td>"+b[0]+"</td><td>"+b[1]+//商品一覧を出す "</td><td><img src=\""+"img/"+b[2]+"\"</td><td><input type =\"hidden\" name=\"remove\" value=\""+i+ "\"><input type=\"submit\" name=\"d\" value=\"カートから削除する\"></form></td></tr>"; } String removeValues=request.getParameter("remove"); session.removeAttribute(""); int cost =0;//合計金額 for(int j=0; j<item.size(); j++){ String[] a=(String[])item.get(j); Integer value=Integer.parseInt(a[1]); cost +=value; session.setAttribute("costs",cost); } }catch(Exception e){ //tableData+=("<tr><td>"+"戻って入力してください"+"</td></tr>"); } %> <!doctype html> <html> <head> </head> <h2>カートの詳細</h2> 合計金額は<%=session.getAttribute("costs")%>円になります<br><!--合計金額の表示 --> <br> <table border ="1"> <%=tableData %> </table> <br> <a href="session.jsp">商品一覧に戻る</a> <br> </html>

    • ベストアンサー
    • Java
  • 登録ボタンを押すとjspファイルが開かれてしまう

    環境は IE 8 MySQL 5.5 Java 6 です。 form method="POST" で取得したデータをDBに登録させたいと思いますが、 登録ボタンを押すとなぜかファイルを開く・保存の画面が出てしまいました。 どの部分がおかしいのでしょうか? HTML側 <html> <head> <title>情報登録</title> </head> <body> <h1 style="background:#cccccc">情報登録</h1> <form method="POST" action="p_insert.jsp"> <table border="0"> <tr> <th style="color:#FFffFF;background:#0086b2;text-align:right;">名前</th> <td><input type="text" name="nam" size="35" /></td> </tr> <tr> <th style="color:#FFffFF;background:#0086b2;text-align:right;">URL</th> <td><input type="text" name="url" size="100" /></td> </tr> <tr> <th style="color:#FFffFF;background:#0086b2;text-align:right;">入手日</th> <td><input type="text" name="gdate" size="14" />(YYYY/MM/DD)</td> </tr> <tr> <th style="color:#FFffFF;background:#0086b2;text-align:right;">ランク</th> <td> <select name="grade"> <option value="5">大変良い</option><option value="4">良い</option> <option value="3">普通</option><option value="2">悪い</option> <option value="1">非常に悪い</option> </select> </td> </tr> <tr> <th style="color:#FFffFF;background:#0086b2;text-align:right;">メモ</th> <td><input type="text" name="memo" size="100" /></td> </tr> <tr> <td colspan="2"> <input type="submit" value="登録" /> <input type="reset" value="取消" /> </td> </tr> </table> </body> </html> JSP側 <%@ page contentType="text/html; charset=Shift_JIS" import="java.sql.*,java.io.*" %> <%! public String strEncode(String strVal) throws UnsupportedEncodingException{ if(strVal==null){ return (null); }else{ return (new String(strVal.getBytes("ISO-8859-1"),"JISAutoDetect")); } } %> <% Class.forName("org.gjt.mm.mysql.Driver"); Connection db=DriverManager.getConnection( "jdbc:mysql://localhost:3306/データベース名" + "?user=jsp10&password=jsp10&useUnicode=true&characterEncoding=Shift_JIS"); Statement sttSql=db.createStatement(); sttSql.executeUpdate( "INSERT INTO aaalist(name,url,gdate,grade,memo) VALUES('" + strEncode(request.getParameter("name")) + "','" + request.getParameter("url") + "','" + request.getParameter("gdate") + "'," + request.getParameter("grade") + ",'" + strEncode(request.getParameter("memo")) + "')"); sttSql.close(); db.close(); response.sendRedirect("p_insert.html"); %>

    • ベストアンサー
    • Java
  • DBを10件毎に表示ページング処理方法

    度重なる質問申し訳ありません。 現在DB操作について学んでいるJava独学者です。 下記のようなソースで一覧表示画面を作成してみました。 この一覧画面をページング処理したいのですが、その方法がよく分からず頭を抱えています。 期待する結果は以下の通りです。 (1)DBの内容を10件ごとに表示し、「Back」「Next」のリンクを使って画面を移動する。 (2)次(もしくは前)に表示する10件がない場合は上記のリンクを非表示としたい。 ※ちなみにDBはPostgreSQLを使用しております。 下記はソースの一部です。 **Srvlet** if(button != null && button.equals("一覧")){ target = "/list.jsp"; CList cList = new CList(); List list = cList.list(); request.setAttribute("SELECT", list); } **JSP** <%@page contentType="text/html; charset=Windows-31J" %> <%@page import="java.util.*" %> <%@page import="XXXX.bean.Bean" %> <%@page import="XXXX.service.CList" %> <%@page import="XXXX.service.Search" %> <jsp:useBean id="SELECT" class="java.util.ArrayList" scope="request"/> <HTML> <HEAD> //省略// </HEAD> <BODY> <BR> <% ArrayList array = (ArrayList)request.getAttribute("SELECT"); for(int i=0 ; i<array.size() ; i++){ Bean bean = (Bean)array.get(i); %> <TR> <TD><INPUT type="radio" name="radio" value="<%= (int)bean.getId() %>" <%= bean == array.get(0) ? "checked" : ""%>></TD> <TD><%= (int)bean.getId() %></TD> <TD><%= (String)bean.getName() %></TD> <TD><%= (String)bean.getTel() %></TD> </TR> <%} %> </TABLE> </TD> </TR> </TABLE> </FORM> </DIV> <a href=""> <font color="#0000ff"><b>Back</b></font></a> <a href=""> <font color="#0000ff"><b>Next</b></font></a> **CList.java** DBAccess db = new DBAccess(); db.open(); String SQL = "SELECT*FROM LIST ORDER BY ID ASC;"; db.setSql(SQL); ResultSet rs=db.select(); List list = new ArrayList(); while (rs.next()) { Bean bean = new Bean(); bean.setId(rs.getInt("ID"));                   bean.setName(rs.getString("NAME")); bean.setTel(rs.getString("TEL")); list.add(bean); } rs.close(); db.close(); return list; } } 色々調べた結果、SQL文を使う方法とArrayList等に格納する方法があるようですが、 どちらも良く理解出来ませんでした。 勉強不足で申し訳ありませんが、ご教授お願いいたします。

  • テンキーで「0.1」を打つと「.1」になる

    HTMLページにテンキーを打つと数字が出るといったものをしたくて、検索しましたところ、参考サイトを見つけました。 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13197413368 「.」を追加したソースが下記になります。 「0.1」とテンキーを打つと「.1」になってしまいます。「0.1」になる方法を教えて下さいますか? 宜しくお願いします。 <style type="text/css">table { border: 0px; margin: 0 auto; border-collapse: collapse; } div#cc { text-align: center; } input { font-size: 12px; margin: 0; padding: 0; } input.key { width: 32px; font-family: monospace; font-size: 12px; } </style> </head> <body> <div id="cc"> <form name="myForm" action="#"> <input name="tx1" size=24 tabindex=1 maxlength=20 value="" onClick="selecttext(this)"><br> <input name="tx2" size=24 tabindex=2 maxlength=20 value="" onClick="selecttext(this)"><br> <input name="tx3" size=24 tabindex=3 maxlength=20 value="" onClick="selecttext(this)"><br> <hr> <table> <tr> <td><input type="button" class="key" value="7" onClick="keyEvent('7')"></td> <td><input type="button" class="key" value="8" onClick="keyEvent('8')"></td> <td><input type="button" class="key" value="9" onClick="keyEvent('9')"></td> </tr> <tr> <td><input type="button" class="key" value="4" onClick="keyEvent('4')"></td> <td><input type="button" class="key" value="5" onClick="keyEvent('5')"></td> <td><input type="button" class="key" value="6" onClick="keyEvent('6')"></td> </tr> <tr> <td><input type="button" class="key" value="1" onClick="keyEvent('1')"></td> <td><input type="button" class="key" value="2" onClick="keyEvent('2')"></td> <td><input type="button" class="key" value="3" onClick="keyEvent('3')"></td> </tr> <tr> <td><input type="button" class="key" value="0" onClick="keyEvent('0')"></td> <td><input type="button" class="key" value="." onClick="keyEvent('.')"></td> <td><input type="button" class="key" value="←" onclick="oneClear()"></td> <td><input type="button" class="key" value="CA" onclick="allClear()"></td> </tr> </table> </form> </div> <script type="text/javascript"> var t; selecttext(document.myForm.tx1); function selecttext(o) { t = o; } function keyEvent(c) { t.value = (t.value=='0')? c: t.value+c; } function allClear() { t.value = ''; } function oneClear() { t.value = t.value.substring(0,t.value.length-1); } </script> </body>

  • 電卓をつくったのですが

    <script type="text/javascript"> <!-- var to=0; var inp=""; var cal="+"; var flg=1; function df(a){ flg=0; inp+=a; document.ad1.z.value= inp; } function df1(a){ if(flg==0){ flg=1; var don=to+cal+inp; to=eval(don); inp=""; document.ad1.z.value=to; } if(a=="="){ to=0; cal="+"; }else{ cal=a; } } function df3(){ to=0; cal="+"; inp=""; document.ad1.z.value=to; } --> </script> </head> <body> <div id="s1"> <div id="s2"> <form name="ad1"> <table> <tr><td colspan="4">電卓</td></tr> <tr><td colspan="3"><input type="text" size="12px" name="z" value="0"></td> <tr> <td><input type="button" name="ad7" value="7" onClick="df(7)"></td> <td><input type="button" name="ad8" value="8" onClick="df(8)"></td> <td><input type="button" name="ad9" value="9" onClick="df(9)"></td> </tr> <tr> <td><input type="button" name="ad6" value="6" onClick="df(6)"></td> <td><input type="button" name="ad5" value="5" onClick="df(5)"></td> <td><input type="button" name="ad4" value="4" onClick="df(4)"></td> </tr> <tr> <td><input type="button" name="ad3" value="3" onClick="df(3)"></td> <td><input type="button" name="ad2" value="2" onClick="df(2)"></td> <td><input type="button" name="ad11" value="1" onClick="df(1)"></td> </tr> <tr> <td><input type="button" name="add1" value="+" onClick="df1(+)"></td> <td><input type="button" name="add2" value="-" onClick="df1(-)"></td> <td><input type="button" name="add3" value="×" onClick="df1(*)"></td> </tr> <tr> <td><input type="button" name="add4" value="÷" onClick="df1(/)"></td> <td><input type="button" name="add5" value="=" onClick="df1(=)"></td> <td><input type="button" name="add6" value="." onClick="df1(.)"></td> <td><input type="button" name="add7" value="c" onClick="df3()"></td> </tr> </table> </form> </div> </div> </body> </html> クリアーは上手くいったんですが 計算ができませんでした。 どこがいけないのでしょうか?

  • jsp 通販サイト作成での質問

    jspを使い通販サイトを作成しています 「session.jsp」では商品の選択をし選んだ商品をsessionを用いて 次のページの「cart.jsp」で表示するというものなのですが 「session.jsp」の下部で、カートに入れる のボタンを押した数に応じて 選んだ商品の数を表示するものを作ったのですが上手くカウントできていません size()を使い商品数を表示したいのですが上手くいきません どなたかよろしくお願いします <%@ page contentType="text/html;charset=Shift_JIS"%> <%@ page import= "java.util.ArrayList" %> <%@ page session="true" %> <% request.setCharacterEncoding("Shift_JIS"); String[] Price = {"4000","2500","500","3000","1500"}; String[] Name ={"たらばがに","毛ガニ","いか","うに","あわび"}; String[] Img ={"taraba.gif","ke.gif","ika.gif","uni.gif","awabi.gif"}; String message =""; String abc =""; String selectValues=request.getParameter("select"); String[] array=new String[3]; if(selectValues !=null){ array[0]=Name[Integer.parseInt(selectValues)]; array[1]=Price[Integer.parseInt(selectValues)]; array[2]=Img[Integer.parseInt(selectValues)]; ArrayList<String> i = new ArrayList<String>(); i.add(selectValues); //ここが問題点です abc="かごの中身は"+i.size()+"個です"; }else{ abc="商品を入れてください"; } %> <center><h1>海産物ショッピング</h1></center> <html> <head> <title>海産物ショッピング</title> </head> <body> <div align="center"> <hr> <form action="session.jsp"> <table border ="1"> <tr><th>たらばがに</th><th><img src="img/taraba.gif"></img></td></th><td>¥4000円<input type ="hidden" name=select value="0"><input type="submit" name=keyword value="カートに入れる"></input></td> </form> <form action="session.jsp"> </tr><tr><th>毛ガニ</th><th><img src="img/ke.gif"></img></td></th><td>¥2500円<input type ="hidden" name=select value="1"><input type="submit" name=keyword value="カートに入れる"></td></tr> <tr><th>いか</th><th><img src="img/ika.gif"></img></td></th><td>¥500円<input type ="hidden" name=select value="2"><input type="submit" name=keyword value=" カートに入れる"></td></tr> <tr><th>うに</th><th><img src="img/uni.gif"></img></td></th><td>¥3000円<input type ="hidden" name=select value="3"><input type="submit" name=keyword value="カートに入れる"></td></tr> <tr><th>あわび</th><th><img src="img/awabi.gif"></img></td></th><td>¥1500円<input type ="hidden" name=select value="4"><input type="submit" name=keyword value="カートに入れる"></td></tr> </table><br> </form> <table border ="1"> </table><br> <%=message %> <%=abc %> <hr> </div> </body> </html>

    • ベストアンサー
    • Java
  • チェックボックスのチェック処理

    HTMLでボタン押下時にチェックしたいことがあります。 ■カテゴリーA~Cで、カテゴリー毎に選択できるのは一つのみ  (例)「A1・あ」と「A2・お」が選択時はNG ■カテゴリーは最大2つまで選択可能  (例)「A1・い」と「C1・さ」が選択時はOK    「A1・い」と「B2・く」と「C1・さ」が選択時はNG <html> <head> </head><body> <form> <table border="1"> <tr> <td>A1</td> <td><input type="checkbox" name="chk1" value="1">あ</td> </tr> <tr> <td> </td> <td><input type="checkbox" name="chk1" value="1">い</td> </tr> <tr> <td> </td> <td><input type="checkbox" name="chk1" value="1">う</td> </tr> <tr> <td>A2</td> <td><input type="checkbox" name="chk1" value="1">え</td> </tr> <tr> <td> </td> <td><input type="checkbox" name="chk1" value="1">お</td> </tr> <tr> <td>B1</td> <td><input type="checkbox" name="chk1" value="1">か</td> </tr> <tr> <td>B2</td> <td><input type="checkbox" name="chk1" value="1">く</td> </tr> <tr> <td> </td> <td><input type="checkbox" name="chk1" value="1">け</td> </tr> <tr> <td>C1</td> <td><input type="checkbox" name="chk1" value="1">さ</td> </tr> <tr> <td>C2</td> <td><input type="checkbox" name="chk1" value="1">し</td> </tr> <tr> <td> </td> <td><input type="checkbox" name="chk1" value="1">す</td> </tr> </table> <input type="submit" value="チェック"> </form> </body> </html> すみませんがよろしくお願いします。

  • jsp から servlet に

    パラメータをJSPからServlet に渡す所で、どうしても、null になってしまします‥。 主要な部分だけ書きます。 --jsp-- <jsp:useBean id="beanId" class="Bean" scope="request" /> <form method="POST" action="servlet"> <input type="submit" value="送信"> <input type="text" size="10" name="name"> --servlet-- import Bean; Bean bean = (Bean)request.getAttribute( "beanId" ); // ↑ここが、nullになってしまう。 --Bean-- public String getName() { return name; } public void setName( String name ) { this.name = name; } 考え方が違ってるかも知れないのですが‥。 よろしくお願いします。

    • ベストアンサー
    • Java
  • ボタンを押下するとテキストフォームの値をクリップボードに送るJS

    ボタンを押下するとテキストフォームの値をクリップボードに送るJS 以下のテキストフォームの脇にあるボタンを押すと、「テキストフォームの値+.jpg」のをクリップボードにコピーするJSをご教示ください。 たとえば、一行目のボタンを押下すると、「鳩山.jpg」という文字列がクリップボードに送られるイメージです。 よろしくお願い致します。 <html> <head> <script> //--> </script> </head> <body> <form action="xxxxx" method="post"> <table border="1"> <tr> <td>1</td> <td><input name="mytext[]" value="鳩山"></td> <td><input type="button" name="Copy" value="コピー"></td> </tr> <tr> <td>2</td> <td><input name="mytext[]" value="小沢"></td> <td><input type="button" name="Copy" value="コピー"></td> </tr> <tr> <td>3</td> <td><input name="mytext[]" value="平野"></td> <td><input type="button" name="Copy" value="コピー"></td> </tr> <tr> <td>4</td> <td><input name="mytext[]" value="管"></td> <td><input type="button" name="Copy" value="コピー"></td> </tr> </table> </form> </body> </html>

  • このメルフォタグについて…

    <div id="main"> <BR class="clear"> <h2>Contact</h2> <div class="txt"> <table cellspacing="3" cellpadding="3" border=0> <tr> <td>NAME</td> <td><input name="name" type="text" size="30"></td> </tr> <tr> <td>MAIL</td> <td><input name="mail" type="text" size="30"></td> </tr> <tr> <td>URL</td> <td><input name="url" type="text" value="http://" size="30"></td> </tr> <tr> <td valign="top">COMMENT</td> <td><textarea name="msg" cols="30" rows="5">ご感想や管理人へのお便りはこちら☆</textarea></td> </tr> <tr> <td colspan="2" align="right"> <input type="button" name="submit" value="SUBMIT" class="b"></td> </tr> </table> </div> テンプレートをお借りしたのですが、メルフォタグがこのようになっていました。 が、このままでは使用出来ないので、どこに自分のメアドを入れればいいのか教えて下さい。

専門家に質問してみよう