• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:formのaction属性に設定する値に関する素朴な疑問)

formのaction属性に関する疑問

takataka111の回答

回答No.1

おつかれさまです。 Javaサーブレット等のWebシステムを動作させるためにTomcat等のサーブレットエンジンは一般的に 「http://www.~」とかかれていない限り同一のサーバへリクエストを返します。 つまり http://www.****.co.jp/index.jsp内に <%= response.encodeURL(request.getRequestURI()) %> のような記述が合った場合サーブレットエンジンは http://www.****.co.jp/コンテクスト名/~へリクエストを返します。

lawson
質問者

お礼

早速はやい回答をくださってありがとうございます。 すいませんが、 まだまだ、納得できません。 質問内容を補足すると たとえば、 1)一番最初 ブラウザでアドレスバーに http://www.****.co.jp/appl1/index.jsp と入力してエンターキーを押したとします。 2)サーバ側で appl1という名前のwebアプリケーションの index.jspが実行されます。 3)index.jspに <%= response.encodeURL(request.getRequestURI()) %> というコードがあったので、 request.getRequestURI() の部分が /appl1/index.jsp におきかえられます。 (4) それをうけとったブラウザの HTMLのソースには /appl1/index.jsp という記述がありますが。 submitボタンを押して もう一度リクエストを だそうにも、どのWebサーバかわからない 以上のようなことに ならないのですか? という質問ないようだったのですが out.println( で普通に request.getRequestURI() とすると /appl1/index.jsp という文字列が表示されます。 http://という記述がない文字列にも かかわらず、 http://wwww.****.co.jp/appl1/index.jsp には変換されませんが・・・ >http://www.****.co.jp/index.jsp内に ><%= response.encodeURL(request.getRequestURI()) %>> >のような記述が合った場合サーブレットエンジンは >http://www.****.co.jp/コンテクスト名/~へリクエスト>を返します。 とは http://という文字列がない時に request.getRequestURI()の 先頭に付加してくれるのは どのような時なのでしょうか?

lawson
質問者

補足

クライアントとサーバの 両方が 同じ、****.co.jp の中にないとダメだ とか、 同じlocalhost の中でならうまくいくやり方だ。 とかそういう意味でしょうか? おもいっきり、勘違いしているかもしれないですが。 そのへんのしくみがまだ、理解不足なので。

関連するQ&A

  • formタグのaction属性

    お世話になります。holmonと申します。 先日、とほほ様のJavaScriptリファレンスで調べものをしている最中、わからない箇所が1点ありましたので、質問させていただくことにしました。 下記formタグにおいて、action要素の#が何を意味しているかがわかりません。 <form action="#"> <input type="button" value="Click Me!!" onclick="window.alert('Hello!!')"> </form> おそらくactionによる送信先の指定を自分(もしくは送信先設定を無効)にしているのかと思いますが、詳しい方、居られましたらご教授いただきたいと思います。 ※w3c勧告の○○ら辺見ればわかるよ的なことも教えていただけると助かります^^; URLは下記です。(イベントハンドラの項) http://www.tohoho-web.com/js/write.htm

    • ベストアンサー
    • HTML
  • formのaction属性を指定する意味はあるか?

    リクエストの送信元と送信先が異なる仕組みの場合、必要なのは当然ですのでそれは除外します。同一ページ内だけでリクエストのやり取りをするページにおいて、formのaction属性を指定する意味についてです。 HTML5から仕様として明確に不要になりました(そもそも仕様として明確に定義される前から正常に動いていたと思うのですが)。 いくつかのサイトのソースをみたのですが、そもそもaction属性無しのサイトを今のところ発見していません(自分自身に送信という例が少なかったり、Ajaxで処理していたりするサイトが多いというせいもあるのですが)。 いまだにわざわざ記述しているページばかりです。それもHTML5のタグを使い、レスポンシブWebデザインにしているような最新技術を盛り込んで実装しているサイトですらわざわざaction属性を指定している例もありました。 質問は以下です。 ・action属性を指定しなければならない理由が今でも存在するのでしょうか?  (特にHTML5のタグを使用しておきながら、それでもなおaction属性を指定しなければならない理由)。  存在するならその具体的な内容も教えてください。 ・もしかするとセキュリティの問題が発生することがあるのでしょうか? ・何となく昔から書いてるから、惰性や習慣で書き続けているだけでしょうか?  というかそもそも省略可になったということを知らない人が多いということなのでしょうか? よろしくお願いします。

  • FORM ACTION?

    よく、HPで項目をチェックしたり、書き込んで送信ボタン押すとデータが送れる仕組みにしたりするやり方なんですがソースを見ると FORM ACTIONのところが"mail toの後にアドレスがありその後に?subjectと記述されてます。これってCGIではないですよね?送信ボタンを押すと拒絶されてこういうコメントが出てきます。<URLが表示されて>: Recipient address rejected: Access deniedと、、。ウィンドウズは送れますがMACではダメみたいです。Symantec Visual Page 1.0.1でつくったようですが、よその会社からHPのデアインを一式引継ぎを依頼されて困ってます。教えて下さい。FORM ACTIONのところのmail toのアドレスを変えて、FTPでマックとかWINで送ってみましたが、MAC側では機能しません。だれか、このような現象体験された方、処理対処方法教えてください。

    • ベストアンサー
    • CGI
  • struts関連 web.xmlに複数の<servlet-mappin

    struts関連 web.xmlに複数の<servlet-mapping>を記述する方法について 初歩的なことなのかもしれませんが質問させてください。 Struts1.3.5での質問なのですが、web.xmlにURLパターンを複数記述している場合に servlet-mapping の記載位置が後の方のURLパターンが、 JSPのFormタグで生成されるパスに設定されてしまい、原因が分からず困っています。 現象としては、 例えば、web.xmlの<servlet-mapping>にそれぞれ異なる URLパターンを[/abc/*]→[/xyz/*]の順で記述している場合、 web.xml(抜粋)---------------------------------------------- <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/abc/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/xyz/*</url-pattern> </servlet-mapping> ---------------------------------------------------------- URLパターンが[/abc/*]となる以下のURLをブラウザで表示した所、 [https:/localhost/{コンテキストルート}/abc/LoginAction] 表示されたJSP内で指定しているformタグのアクションパスが web.xmlで記載したURLパターンのパスではなく、 web.xmlで後の方に記載した別のURLパターンのパス(/xyz/)が設定されてしまいます。 ・表示されるJSP内で指定しているアクションパス <html:form action="/LoginAction"> 上記で生成されるHTML <form name="LoginForm" method="post" action="/コンテキスト名/xyz/LoginAction">       web.xmlでURLパターンを[/xyz/*]→[/abc/*]の順で記述した場合は、 正しくURLパターンで記述したパスが設定されます。 <form name="LoginForm" method="post" action="/コンテキスト名/abc/LoginAction"> ただし、この場合はURLパターンが[/xyz/*]のURLを表示した場合に <form ~ action="/{コンテキストルート}/abc/LoginAction">となってしまいます。 どなたかこうした現象について回避策をご存知の方はいらっしゃらないでしょうか?

    • ベストアンサー
    • Java
  • document.form.actionでの処理

    以下のようなソースにて、 ・<form>のactionでは"send.php"へPOSTしたい。 ・javascriptにて、<select>で選択した値をhoge.phpへ渡したい 上記の事を実現するため、 ・リストから選んだ値を画像クリックで"hoge.php"へ渡し別窓で表示 ・"text"に入力した値をsubmitで"send.php"へ渡す といった処理をしているのですが、 "hoge.php"を参照した後に"text"へ何か入力してsubmitすると 本来send.phpへとぶはずが、"hoge.php"へとんでしまいます。 何が原因なのか、また最良を方法がありましたら ご教授頂ければと思います。 <script> <!-- function form_submit(url){ document.form.action=url; document.form.target = "_blank"; } //--> </script> | <FORM METHOD="POST" name="form" action="send.php"> <SELECT name="sel"> <OPTION value="001">001</OPTION> <OPTION value="002">002</OPTION> </SELECT> <input type="image" src="sub.gif" onClick="javascript:form_submit('hoge.php')"> <input type="text" name="text"> <input type="submit" value="送信"> </FORM> |

  • アクションで新しくフラグを立てて、JSPに値を渡したい。

    HTMLという言葉もしらないのに、 4月からいきなりIT企業に就職したものです。 javaといより、Strutsです。 【目的] アクションで新しくフラグを立てて、JSPに値を渡し、 そこで、条件分岐の処理を行いたい。 【具体的に書いたソース】 String selectMenu = "hava" をアクションに記述して、 この値をJSPに渡すため、以下のように記述。 req.setAttribute("have" , selectMenu) しかし、「リクエストが解決できません」 というエラーが出てしまいます。 ほんとに、困っています。助けて下さい。

  • 教えてください:strutsのhtml:formタグがjspに展開された状態の、actionの値について

    java初心者です。 どなたか教えていただけませんでしょうか? JAVAのstrutsを使用してソフトを作成しています。 JSPに記載した「<html:form action="/authentication" focus="id"> 」 との記述が、WEB(IE)に展開されたソースを見ると、「<form name="AuthenticationForm" method="post" action="/strutsTest/authentication">」 に変換されています。 action="/authentication"と記述しているにもかかわらず、 action="/strutsTest/authentication"と展開されているのですが /strutsTestが自動的に付与されているのは、なぜなのでしょうか? なにか設定するところがあるのでしょうか? ※struts-config.xmlに指定したpathと一致しない為、404NotFoundになるので自動設定しないように変更したいのです。 ちなみに環境は struts-1.3.10 Apache Tomcat 6.0.14 Server EclipsVersion: 3.4.2 pakage名:struts プロジェクト名:strutsTest struts-config.xmlの設定   <form-beans> <form-bean name="AuthenticationForm" type="struts.AuthenticationForm"/> </form-beans> <global-exceptions> </global-exceptions> <global-forwards> <forward name="fail" path="/login.jsp"/> </global-forwards> <action-mappings> <action path="/authentication" name="AuthenticationForm" type="struts.AuthenticationAction" scope="session"> <forward name="success" path="/welcome.jsp"/> <forward name="fail" path="/login.jsp"/> </action> </action-mappings> login.jsp <%@ page contentType="text/html; charset=Windows-31J" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <html:html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"/> <title>ログイン画面</title> </head> <body> <html:errors/> ID・パスワードを入力してください。 <html:form action="/authentication" focus="id"> <html:text property="id" size="16"/> <br> <html:password property="pas" size="16" redisplay="false" /> <br> <html:submit property="submit" value="送信"/> <html:reset value="リセット"/> </html:form> </body> </html:html> 動作順は、login.jsp => AuthenticationAction.class => welcome.jsp です。 よろしくお願いします。

  • form actionでよそのサーバーのcgiファイルが読込めない。

    form actionに外のサーバーのcgiファイルを指定しています。 ドメイン名以下のパスは通っているのですが、ドメイン名が表示されない(読込まれない)。 Not Found The requested URL /xxx/xxx.cgi was not found on this server. になってしまいます。 読込み元のHTMLはフレームに分けてありますが、ここも問題があるのでしょうか。 そもそも外のcgiファイルはよみこめないのでしょうか、 それとも他に問題が、あるのでしょうか。 又、パーミッション、セキュリティも問題ありますか。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • 1つのformで複数のactionを実行できますか?

    フォーム内に商品の購入ボタンがあります。同じフォーム内に商品名でグーグルのサイト内を検索させるボタンを設置し、横に並べることは可能ですか? フォームの入れ子はよくないようなので、検索をJava scriptでできればよいのですが・・・ スタイルシートではデザイン上無理でした。 <form id="fm" name="fm" action="URL" method="POST"> <input type="hidden" name="shouhinmei" value="商品名"> <input type="hidden" name="kakaku" value="500"> <input type="image" src="kounyuu.gif value="購入"> <form method=get action="http://www.google.co.jp/search"> <input type=hidden class="q" name=q value="商品名"><input type=hidden name=ie value=UTF-8><input type=hidden name=oe value=UTF-8><input type=hidden name=hl value="ja"><input name=btnG type="image" src="検索.gif value="検索"><input type=hidden name=sitesearch value="サイトのURL"></form> </form> </form> +----+  +----+ |購入|  |検索| +----+  +----+

  • Formを使わずに値の受け渡し 

    今MIDPで携帯アプリを作成しているものです。 アプリの方から、PHPにアクセスし、POST送信でデータ(文字列)を送りたいのです。 WebサイトであればFormなどで値を送ることが可能ですが、javaサイドからの受け渡しとしてはどういったものがあるのでしょうか。 また、質問が変わるのですが URL(.php)?name=abc をアドレスに直接打ち込む場合、abcに日本語を打ち込むとうまくいきません。 日本語は使えないのでしょうか。 一応過去ログなども参照してみたのですが、どうしてもわからず書き込むことにしました。 よろしければ御教鞭、もしくは参考ソースのURLなどをご提示いただけないでしょうか。 宜しくお願いします。

    • ベストアンサー
    • PHP