• 締切済み

JSPで指定サーブレットに飛ばす方法

JSPページで以下のようにCookieを取得して // Cookieの取得 Cookie cookies[] = request.getCookies(); そのCookie情報を見て指定したServletに飛ばす方法を 探しています。ちなみに <jsp:forward page="../servlet/TestServlet" /> のように指定しても飛んでくれません。 よろしくお願いします。

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

みんなの回答

  • KaZtoYou
  • ベストアンサー率73% (11/15)
回答No.1

htmlの機能を使ってmetaタグで飛ばすのはどうでしょうか? <META HTTP-EQUIV="Refresh" CONTENT="0;URL=<%= url %>"> urlの中身は相対パスでも絶対パスでも問題ないです。 404 Not Foundならパスの記述ミスということで ブラウザに表示されるURLを見て調整しましょう。

takataka111
質問者

お礼

以下のようにして飛ばすことができました。 MyForm.action="servlet/jp.co.servlets.MyServlet"; MyForm.submit(); ありがとうございました。

関連するQ&A

  • Cookieが反映されない

    Servletで設定したCookieをJSPで取得できないのです。 具体的には (1)Servletクラスで↓のようにresponseに対してaddCookieを行います。 Cookie cookie = new Cookie("key", "KEY"); cookie.setMaxAge(-1); // ブラウザが終了するまで有効 HttpServletResponse response.addCookie(cookie); (2)nextPage.jspにホワードします。 HttpServletRequest req; HttpServletResponse res; ServletContext context = this.getServletContext(); RequestDispatcher rd =context.getRequestDispatcher("nextPage.jsp"); rd.forward(req,res); (3)nextPage.jspでCookieを取得 Cookie cookies[] = request.getCookies(); String name = cookies[0].getName(); String value = cookies[0].getValue(); 以下の方法でServletで書き換えたCookieが取得できません、もっと具体的に言うと1つ前のCookieの状態が取得されてしまいます。(最新のCookie情報が取得できない) というような状況です。 皆様よきアドバイスを。。。

  • サーブレットのパラメタ変更

    例えば、 - a.html - <form method="post" action="/Servlet1"> <input type="text" name="animal" size="12"> <input type="submit" value="送信"> </form> というHTML文がありanimalのテキスト内容がcatとしてServlet1へリクエストしたとします。 Servlet1ではgetParameter("animal")でcatを取得できます。そこで次のページをレスポンスするべく、 getServletContext().getRequestDispatcher("Jsp1.jsp").forward( request, response ); という形でJsp1.jspへフォワードします。Jsp1.jspでもrequest.getParameter("animal");とすると catという値が取得できると思うのですが、これをServlet1でanimalがcatならdogというようにパラメータの値を変更することはできますでしょうか? 初歩的な質問かと思いますが、何卒、宜しくお願いいたします。

    • ベストアンサー
    • 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
  • JSP URLに表示される拡張子 .jsp

    Servlet、JSPの開発を行っているのですが・・・ ページを表示する際のアドレスに「http://hogehoge/test.jsp」とJSPの拡張子が表示されると思うんですが、この拡張子を表示させずにアクセスする方法はあるでしょうか? サーバー:Apache 2.2.3 Tomcat:Apache Tomcat 5 OS:CentOS 5 自分で考えた方法 ・ApacheのProxy設定でJSPファイル一つずつ設定していく ・JSPファイルへのアクセスに対してもサーブレットを介して、dispacher.forward(request, response)を使う。 ※forwardだったらサーブレットのアドレスのままになったので。 どちらも結構面倒なんですが・・・他に方法はあるでしょうか?

    • ベストアンサー
    • Java
  • Servlet-JSP間のhidden要素での値受け渡し

    Servletをはじめて間もない初心者です. 説明がわかりづらいかも知れませんがご容赦ください. Servlet-JSP間の値の受け渡しについての質問です. Servlet1-----page1.jsp  |      |__beans1.java  | Servlet2-----page2.jsp        |__beans2.java という2つのページがあるとします. page1.jspからpage2.jspを開く時に page1.jsp → Servlet2 → page2.jsp(編集モード)               → page2.jsp(登録モード) の何れかのモードでpage2.jspを開きたいと考えています. page1.jspの中に <input type="hidden" name="PageState"> というhidden要素を定義してServlet2にフラグを渡せば解決できると思うのですが,hidden要素はセキュリティ上使用しない方が良い?という記述を読んだことがあるので,この方法でよいのか悩んでおります.  何かご意見や別の方法がありましたらアドバイスお願いいたします.

    • ベストアンサー
    • Java
  • JSPタグの属性値に変数を指定

    JSPのタグのattributeの値を、固定テキストでなく 変数の値を指定するような書き方はできますか? イメージとしてはこんな感じで。 ----- <%-- hogehoge.jspへフォワード --%> <% String url = "hogehoge.jsp"; %> <jsp:forward page="<%= url %>" /> -----

    • ベストアンサー
    • Java
  • [JSP]ページの挿入!?

    JSPでページを挿入する際・・・ <jsp:include page="Menu.jsp" flush="true"> としますが、 たとえばRequestからファイル名を取得するにはどうすればいいでしょう? ↓これじゃだめですよね?だめでした。 ~/Test.jsp?target=Menu.jsp で、 <jsp:include page="<%= request.getParameter("target") %>.jsp" flush="true"> うぅぅん。

    • ベストアンサー
    • Java
  • ServletとJSPで。。。

    省略してますが、下記の記述で JSPの----部分の記述方法がわかりません。 実際、実行できる環境だといいのですが、今は実行環境がないので調査できません。 まだなにもわからない状態なので、記述が正しいかも自信ありませんがよろしくお願いします。 =============Servlet==============================Schedulebean bean = new Schedulebean(); bean.setYear(request.getParameter("year")); bean.setMonth(request.getParameter("month")); request.setAttribute("bean", bean); request.getRequestDispatcher("/jsp/schedulefrm.jsp").forward(request,response); ============ JSP ================== <%@ page contentType = "text/html; charset=Shift_JIS"%> <jsp:useBean id="bean" scope="request" class="java.lang.String"/> <HTML> <FRAMESET FRAMESPACING="10" COLS="250,*"> <FRAME src="/jsp/calender.jsp?Year=<%= year % -------- ↑ >&Month=<%= month %>" --------- ↑    上記をid 取得する記述は? name = "left" scrolling = "no" NORESIZE /> <FRAME src="/jsp/schedule.jsp?Year=<%= year %>&Month=<%= month %>" name = "right" scrolling = "yes" /> </FRAMESET> </HTML>

    • ベストアンサー
    • Java
  • JSPとサーブレットでのJARの使い方

    現在,jspやサーブレットにダウンロードしてきたjarの中のクラスを使おうとするとエラーをはいてしまいます。自分的にはエラーの原因はなんかしらの設定かソースがおかしいのではないかと考えております。なので自分がやった設定の手順とソースを説明させていただき、そこでおかしいと思った点を指摘していただきたいと思い投稿させてもらいました。 開発環境はEclipseとTomcatを合したものなのですが、 まずダウンロードしてきたJARをデスクトップに置きました。 次にEclipseでjspのプロジェクトを作成し、 プロジェクトの設定で、外部JARの追加を選択しデスクトップのJARを追加しました。 次にエラーが出るまでのソースを説明させていただくと、 まずJSPの方は <%@ page language="java" contentType="text/html; charset=windows-31j" pageEncoding="windows-31j"%> <%@ page import="java.util.Date" %> <%@ page import="com.lowagie.text.Document" %>//これがダウンロードしてきたjarのクラス この様に書いたところEclipseのエディタ上ではエラーは出ないのですが、 デバックすると、 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: JSPのクラスをコンパイルできません: というエラーが出てしまいます。なお4行目をコメントアウトすると正常に動作します。 次にサーブレットの方は import java.io.*; import com.lowagie.text.Document;//こっちはこのimport文ではエラーが出ない import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class selfreport_Pdf extends javax.servlet.http.HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Document doc = new Document();//ここでエラーがでる こちらもEclipseのエディタ上ではエラーは出ないのですが、デバックして jspからサーブレットにsubmit(?)をすると 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 javax.servlet.ServletException: サーブレットの実行により例外を投げました 原因 java.lang.NoClassDefFoundError: com/lowagie/text/Document selfinfo.selfreport_Pdf.doGet(selfreport_Pdf.java:29) javax.servlet.http.HttpServlet.service(HttpServlet.java:690) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) この様なエラーが出ます。なおこちらはDcoment doc = enw Docment() の処をコメントアウトすると、正常に動作します。またこのプログラムを 最も基本的なjavaアプリケーションに落とし込んで実行すると、正常に動作します。 また自分はjsp初心者なので、何か書き損じている点があるかもしれません。 もしそのような点があった場合はお手数ですが書いていただけると、後で補足させていただきます。 お返事おまちしております。

    • ベストアンサー
    • Java
  • JSPプログラミング 携帯電話用のJSPページを表示

    PCのブラウザでアクセスしてきたクライアントに対してはPC用のJSPページへ転送し、携帯電話でアクセスしてきたクライアントに対しては携帯電話用のJSPページへ転送する処理を行うプログラムで、PCからのアクセスはできるのですが、携帯電話からアクセスすると「サーバメンテナンス中です。しばらくしてからご利用ください。」と携帯電話の画面には表示されます。メンテナンス中でもないのに何が原因なのですか? 転送元のsmp.jsp <%@ page contentType="text/html; charset=Windows-31J" %> <% // 内容: forward アクションを使用する // User Agent を取得 String user_agent = request.getHeader("user-agent"); // User Agent が "DoCoMo****" のタイプだったら携帯電話用の // ページへ転送 if(user_agent.startsWith("DoCoMo")) { %><jsp:forward page="smpMobile.jsp" /><% } // PC用のページの内容を出力 %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><title>forward アクションを使用</title></head> <body> <p>PC 用のページ</p> </body> </html> 転送先のsmpMobile.jsp <%@ page contentType="text/html; charset=Shift_JIS" %> <% // 内容: forward アクションを使用(携帯電話用のページ) String user_agent = request.getHeader("user-agent"); %> <html><body> 携帯用のページです<br> <%= user_agent %> </body> </html>

    • ベストアンサー
    • Java

専門家に質問してみよう