- 締切済み
JSPからサーブレットにリンクで値を渡す方法
JSPでget、postではなく、リンクを利用して値を渡す方法はありますでしょうか。 <%--sidを渡してリンク先に飛ぶ--%> <% request.setAttribute("sid",sid) %> <a href="/Keijiban/Connect" target="_self" ><%=sname%></a> というような方法でやっているのですができません。 サーブレットに処理を任せる値を渡し、処理結果をJSPに使うという 処理にしたいのです。 アドレスの後ろに値をつけようと思ったのですが、URLリライティングなので使えません。 何か良い方法などがありましたら、教えてください。 よろしくお願いします。
- qqtaka
- お礼率83% (51/61)
- その他([技術者向] コンピューター)
- 回答数1
- ありがとう数3
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- OKwebb
- ベストアンサー率44% (92/208)
渡したいのはセションIDなのでしょうか? > URLリライティングなので使えません。 これはセキュリティを考えてということでしょうか? セションIDを渡す代表的なやり方は以下の3種ですがそれぞれメリット・デメリットがありますので、詳細は参考URLをみてください。 ・URLリライティング ・HTTP Cookie ・hiddenフィールド
関連するQ&A
- リンクの値→サーブレット
いつもお世話になっております。 今回もよろしくお願いいたします。 (1)jsp画面のリンクの値をServletへおくる (2)ServletでDBアクセスし、処理を行う (3)(2)で処理した値をBeanに格納する (4)jsp画面でBeanの値を取得する といった流れをしています。 [(1)のjspでのコード(一部)] <form name= henkou method="post" action="../servlet/RequestServSession"> <a href= "../henkou.jsp"> <input type=hidden name=MySubmit> <jsp:getProperty name="reqObject" property="id" /> </a> </form> <script language="JavaScript"> function func(MyCommand){ document.henkou.MySubmit.value=MyCommand; document.henkou.submit(); } </script> [(2)Servletのコード(一部)] String strId = (String)request.getParameter("MySubmit"); String strSesId = new String(strId.getBytes("iso-8859-1"),("Shift_JIS")); int intId = (Integer.parseInt(strId)); ・ ・ ・ //処理された値をBeanに格納 HttpSession session = request.getSession(); *1→session.setAttribute("id",sid); *2→session.setAttribute("name",name); *3→session.setAttribute("biko",biko); ・ ・ ・ などを実行すると、(4)では *1→ 0 *2→ null *3→ null が表示されます。 リンクの値がServletへきちんと送れていないのだと思い、jsp→Servletのみで実行したところ、 "Http-500エラー NullPointerException" が発生します。 どのようにしたらうまく値をおくることができるのでしょうか? どなたかご教授のほどよろしくお願いいたします。
- ベストアンサー
- Java
- サーブレットからArrayListにBeanを格納しJSPで使用する方法
はじめまして、以下の問題ですが、わからず困っているので 質問させていただきます。 PCはWindowsXPで Eclipse Version: 3.4.1を使用し Tomcat5.5,jre6を使用しています。 研修の課題なのですが サーブレット内でBeanをArrayListを使って、動的確保したものを JSPに渡し、ArrayListに入ったBeanを取り出し、 そのBeanにsetした値を表示させるというプログラムを作っています。 JSPの部分がまったくわかりません。 JSPに配列はわたったようなのですが、JSPでのArrayListの取り出し方 などが、調べてもまったく解決しません。 もしわかる方がいましたら、教えてください。よろしくお願いします。 内容は以下です。 ///////////サーブレット//////////////////////////// ArrayList<Beans> beansid = new ArrayList<Beans>(); i=0; while(rs.next()){ sid = rs.getInt("sid"); sname = rs.getString("sname"); spass = rs.getString("spass"); Beans inbean = new Beans(); inbean.setsid(sid); inbean.setsname(sname); inbean.setspass(spass); beansid.add(inbean); } request.setAttribute("beansid",beansid); //Beansクラス///////////////////// public class Beans{ private int sid; private String sname; private String spass; public int getsid(){ return sid; } public void setsid(int sid){ this.sid = sid; } public String getsname(){ return sname; } public void setsname(String sname){ this.sname = sname; } public String getspass(){ return spass; } public void setspass(String spass){ this.spass = spass; } } //JSPのコード///////////////////////////////// <%@page contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS" %> <jsp:useBean class="java.util.ArrayList" id="beansid2" scope="request"/> <jsp:useBean class="java.lang.String" id="beansid" scope="request"/> <%@page import="keiji.Beans"%> <%@page import= "java.util.*" %> <%@page import="java.sql.*"%> <%@page import="javax.servlet.*"%> <%--下のclassの所はBeansというのでも試してみました。--%> <jsp:useBean class="java.util.ArrayList" id="beansid2" scope="request"/> <%-- ArrayList beansid = (ArrayList)request.getAttribute("beansid"); --%> <%-- Iterator it = beansid.Iterator(); --%> ArrayList Iteratorと使ってみたのですが、 自分にはわけが分からず、JSPを実行したとき、処理がとまってしまいます。
- 締切済み
- Java
- サーブレットからJSPへ情報を渡す
サーブレットからJSPへ情報を渡すことについて質問がございます。 ■質問は、ブラウザからサーブレットにリクエストして モデルからデータを取り出しJSPがモデルを参照して ブラウザに結果を表示し、ブラウザの画面のボタンを クリックすると、またサーブレットにリクエストが いくようにしたいのですが、 そのJSPから二度目のサーブレットへのリクエスト及び リクエストする際にデータを渡すのですが、 JSPからサーブレットへ飛んでくれず404エラーがでます。 ★どうしたら、JSPからサーブレットへ飛んで くれるでしょうか? ■簡単な流れでかきますと リクエスト(hidden value="patu") ブラウザ → サーブレット → モデル ←→ テキスト ↓ ↑(参照) ブラウザ ← ← JSP →→→→→ 上記の流れは一回の流れですが、次JSPからまたサーブレットへ actionし、(hidden value="patu")をして同じ流れを くりかえしたいのです。 ■JSPではどのようになっているかと申しますと <form action="http:://localhost:8080/sotu/TextServlet"method="POST"> <input type="image" src="NEXTquiz.gif" value="次の問題" onclick="http://localhost:8080/sotu/TextServlet'"> <iuput type="hidden" name="patu" value="yonyc.getPatu()"> </form> となっております。 ■サーブレットでは protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { String kye = request.getParameter("patu");//value受け取り MondaiSC mondaisc = new MondaiSC(); //モデルクラス生成 mondaisc . mondaisc.DefaultQuiz(kye, i); //モデルにキーを渡す ArrayList textList = mondaisc.getTextList(); //モデルクラスからテキストの情報が入っているArrayListを受ける り HttpSession session =request.getSession();//sessionに入れる session.setAttribute("text",textList); RequestDispatcher rd =getServletContext().getRequestDispatcher("/yomi.jsp"); } このyomi.jspからまたサーブレットへ同じリクエストをおくりたいの です。 ところが飛んでくれません。 恐らく、JSPでの記述の仕方に問題があるのではないこと思っており ますが、どなたかアドバイスをお願い致します。 宜しくお願い致します。
- ベストアンサー
- Java
- サーブレットとJSPの連携
今、サーブレットとJSPについて勉強しまいます。 HTMLからサーブレットでリクエストを受け付け、 JSPに転送し表示させたいのですが、フォームからの入力の場合は String carname = request.getParameter("cars"); で入力データを取得するコードを書きますよね? (本ではこう書いてました・・・。) では、HTMLの入力フォームからではなくリンクからの 受付けの場合はどう書けばいいのですか? 勉強を始めたばかりで初心者なので、説明不足の点もあるかも 知れませんが分かりやすくご指導宜しくお願いします…。
- 締切済み
- Java
- jspでのパラメータでの値渡しについて
最近、JSPについて勉強していていろいろ作っているのですが、 JSPでサーブレットに値を渡そうとしたのですが、内容がNULLになってしまいます。 HTMLとJSPでは a hrefでのパラメータ渡し方が違うんでしょうか? select.jspからTest.javaへ値を渡したいです。 <a href="/testPrj/Test?myans=ア&toi"><font size="5">ア</font></a> <a href="/testPrj/Test?myans=イ&toi"><font size="5">イ</font></a> <a href="/testPrj/Test?myans=ウ&toi"><font size="5">ウ</font></a> <a href="/testPrj/Test?myans=エ&toi"><font size="5">エ</font></a> とselect.jspでやっており、(変数toiは"問 ○○"みたいな感じです) String myans=(String)req.getParameter("myans"); と サーブレットで受け取ろうとしています。 いろいろとやってみたのですが、サーブレット側で受け取ったmyansを表示させるとnullに なっていました。 よろしくお願いします。
- 締切済み
- Java
- JSP・サーブレット・HTMLについて・・・
今、サーブレットとJSPについて勉強しています。 HTMLからサーブレットでリクエストを受け付け、 JSPに転送し表示させたいのですが、フォームからの入力の場合は String carname = request.getParameter("cars"); で入力データを取得するコードを書きますよね? (本ではこう書いてました・・・。) では、HTMLの入力フォームからではなくHTMLのリンク部分を クリックされた時の受付けの場合はどう書けばいいのですか? 勉強を始めたばかりで初心者なので、説明不足の点もあるかも 知れませんが分かりやすくご指導宜しくお願いします…。
- ベストアンサー
- Java
- JSPでHashMap・配列の変数の値を扱う方法について
サーブレット側でHashMap型の「map」に値をセットしてしています。 mapは配列となっています。 ■サーブレット -------------------------------------- HashMap map[] = new HashMap[10]; ・・省略・・ getRequest().setAttribute("map",map) -------------------------------------- 上記でセットした値をJSP側で値を参照したいと思っているのですが、 HashMap・配列の値をJSP側でどのように読み込む/記述したら良いのか 分かりません。 初歩的な質問で申し訳ございませんが、よろしくお願いいたします。
- ベストアンサー
- Java
- servletから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難しいです・・・。
- ベストアンサー
- Java
- core:setでセットした値をサーブレットで取得
こんにちは。 JSP内で <core:set var="変数" value="値" scope="request" />した「変数」を JSPからリクエストされたサーブレットで取得したいとき request.getAttribute("変数"); ではダメなのですか!? 宜しくお願いします
- ベストアンサー
- Java
- アクションで新しくフラグを立てて、JSPに値を渡したい。
HTMLという言葉もしらないのに、 4月からいきなりIT企業に就職したものです。 javaといより、Strutsです。 【目的] アクションで新しくフラグを立てて、JSPに値を渡し、 そこで、条件分岐の処理を行いたい。 【具体的に書いたソース】 String selectMenu = "hava" をアクションに記述して、 この値をJSPに渡すため、以下のように記述。 req.setAttribute("have" , selectMenu) しかし、「リクエストが解決できません」 というエラーが出てしまいます。 ほんとに、困っています。助けて下さい。
- 締切済み
- Java
お礼
サーブレットでも?の後に<%=sid%>を使用し値を渡せることが わかりました。ありがとうございました。