Java JSP/サーブレットについて

このQ&Aのポイント
  • DBとのコネクションを行うログイン処理の画面を作成し、Test.javaファイルをLogin.javaファイルに変更した後、フォームのaction属性を変更するとリソースが利用できないエラーが発生する問題が発生しています。
  • 環境はEclipse3.4でTomcat6.0を使用しており、Strutsは使用していません。新しいファイルをコピーして実行しようとする際に他の変更や設定が必要なのか、見落としをしているのかを教えてください。
  • お手数をおかけしますが、アドバイスをお願いします。
回答を見る
  • ベストアンサー

Java JSP/サーブレットについて

HtmlファイルでDBとのコネクションを行うログイン処理の画面を作成しました。 <form name="mainForm" action="Test" method="POST"> でTest.javaファイルに処理が移りDBとのコネクトを行いデータの取得はできました。 Test.javaファイルを「Ctrl+C」で「Ctrl+V」を行い別名でLogin.javaファイルを作成しました。 作成したLogin.javaファイルはクラス名などはもちろんLoginと変更しています。 その後、<form name="mainForm" action="Login" method="POST">タグの actionを TestからLoginに変更しただけで、Htmlファイルから実行をすると The requested resource (ファイルのパス名) is not available.と出力されます。 環境としてはEclipse3.4でTomcat6.0です。strutsは使用しておりません。 Javaファイルをコピーして新しいファイル名を実行しようとしたら 何か他にも変更や設定をしないといけないことがあるのでしょうか? 見落としがありますでしょうか? お手数ではございますがアドバイスをお願いします。

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

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

  • ベストアンサー
  • outerlet
  • ベストアンサー率71% (15/21)
回答No.1

ご質問を拝見して、パッと思いつくことを書いてみます。 1.Login.javaを作成した後、Tomcat自体、もしくはアプリケーションの再起動はされましたか? 2.web.xmlでサーブレットマッピングはしていないのですか? 3.formタグのaction要素が「Login」と全角になっていますが、ソースでは「Login」と半角になっていますか? 特に2をされているのかが疑問です。 Tomcatも6.0になりますし、action要素とファイル名を対応させてくれるくらい親切な設計になっているのかも知れませんが、サーブレットを作成するときはweb.xmlでマッピングしておくのが原則だと考えるべきです。 もししていないのなら、web.xmlにマッピングした上でアプリケーションを再起動してみることをお勧めします。 web.xmlについてはURLを添付しておきました。参考になれば。 蛇足ですが、この手の質問をするときはソースコードを添付するのが回答する側も理解し易くていいと思います。少なくともサーブレット関係の質問をするときは、以下の材料を提示して貰えるとより確実な回答が期待できると思います。 ・開発環境のOSやIDE、APサーバのバージョン(今回は書かれてますが) ・Javaサーブレットのソースコード ・web.xml

参考URL:
http://www.javaroad.jp/opensource/js_tomcat14.htm

関連するQ&A

  • サーブレット

    HTMLからJavaサーブレットを起動させたいのですが、 うまく行きません submitでActionを起こしてます。 <form name="form1" method="post" action="AAA"> javaサーブレットは同じディレクトリに存在します。 どのようにすればよろしいでしょうか? よろしくお願いします。

  • サーブレットが実行できない

    VAJを利用してサーブレットを動かそうとしているのですが、うまくいきません。どこに問題があると考えられるでしょうか? htmlファイルからServlet起動 html:input1.html Servlet:Login1.java input1.htmlのFORMタグ <FORM action = "/servlet/Login1" method = "GET">

    • ベストアンサー
    • Java
  • JSPからクラス(サーブレット)を呼び出す方法

    JSPからクラス(サーブレット)を呼び出そうとしてるんですが 以下のエラーになってしまいます。 The requested resource (/Hello) is not available. ネットで調べてみたら、パスの指定の仕方が悪いんじゃないかって感じがするので 色々パスを弄ってみましたが、ずっとavailableになります。 わかる方いらっしゃったらアドバイスよろしくお願いします。 ※usebeanはこのエラーの前の段階で、getとset両方動くのを確認しています。 ※「http://localhost:8080/javaroad/Hello」を直接WEBブラウザのURLに入れたら動きました。 【フォルダ構成 (Tomcat 6.0\webappsの直下) 】 javaroad ---------- index.jsp ---------- WEB-INF -------------------- web.xml -------------------- classes ---------------------------- HelloServlet.class 【index.jsp】 <%@ page contentType="text/html;charset=Shift_JIS" %> <jsp:useBean id="GSBean" class="Testaaa.GetSetBean" /> <html> <head> <title>Hello World!</title> </head> <body> <form method="post" action="/Hello"> <input type="text" name="name1" maxlength="10" style="ime-mode: disabled"> <jsp:setProperty name="GSBean" property="userID" param="name1" /> <br><br> <input type="submit" value="submit"> </form> </body> </html> 【web.xml】 <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <servlet> <servlet-name>Hello</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Hello</servlet-name> <url-pattern>/Hello</url-pattern> </servlet-mapping> </web-app> 【HelloServlet.class】 import java.io.*; import java.text.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<HTML>"); out.println("<BODY>"); out.println(new java.util.Date()); out.println("</BODY>"); out.println("</HTML>"); } 以下試して駄目だったパスの一覧です。 <form method="post" action="Hello"> <form method="post" action="/Hello"> <form method="post" action="../servlet/Hello"> <form method="post" action="HelloServlet"> <form method="post" action="/HelloServlet"> <form method="post" action="../servlet/HelloServlet"> <form method="post" action="WEB-INF\classes/HelloServlet"> <form method="post" action="http://localhost:8080/javaroad/Hello">

    • ベストアンサー
    • Java
  • JSPが表示されません

    Apache2+Tomcat4.1+j2sdk1.4.2_06+EclipseでJSPとサーブレットのページを作ろうとしています。 HTMLファイルのフォームの内容をJSPファイルに送り、ServletでDBと参照、登録という流れを作ろうとしています。 aaa.html(ユーザーがデータを入力) ↓(1)フォームの内容を転送 bbb.jsp((2)htmlからの入力をccc.classに中継、(7)返り値を表示) ↓(3)メソッド呼び出し ↑(6)返り値を返す ccc.class(重複の有無確認やDBへの登録メソッド) ↓(4)SQL ↑(5)結果 DB(PostgresSQL) 本に書いてあるのを真似たらlocalhost上ではちゃんと動くようになりました。 つまり、下記のようにaaa.htmlからの転送先をlocalhost:8080/bbb.jspに指定するとうまく作動します。 <form name="form1" method="post" action="http://localhost:8080/bbb.jsp"> しかしながらこれではローカルでしか使えないので転送先を相対パスで指定したらうまくいきません。 <form name="form1" method="post" action="../bbb.jsp"> 外部から参照できるURL(サーバのIPアドレス)でもダメです。 <form name="form1" method="post" action="http://***.***.**.**/bbb.jsp"> 症状としては.jspファイルの最初のHTMLの記述はちゃんと動いているようで画面の色等はちゃんと変わります。 <%.....%>で囲まれたJAVAの記述がまったく作動しません。 /work/org/apache/jspに発生する中間ファイルもlocalhostのときには出来るのですが相対パスにすると出来ません。 どうしたらいいのでしょうか? ひょっとしたらとても初歩的なことかもしれませんがご存知の方がいらっしゃいましたらご教授願いたいと思います。

    • ベストアンサー
    • Java
  • eclipse でjspからJavaを実行するには

    eclipse 3.4 tomcat 4.1 j2sdk1.4.2 sysdeo 3.2.1 を使用し開発を行おうとしています。 なんとかeclipse上からtomcatを起動し、localhost:8080 を指定してjspの画面は出るようになったのですが、jspからJAVAを呼ぼうとすると エラーになってしまいます。 呼び出し部分は <form action="servlet/javahello.FileUploadServlet" method="post" enctype="multipart/form-data" name="form1"> 名前: <input type="text" name="name"> <br> ファイル: <input type="file" name="file1"> <br> <br> <input type="submit" name="Submit" value="送信"> <input type="reset" name="submit" value="リセット"> </form> とし、javaファイルは eclipse上のプロジェクト(tomcat_test)のWEB-INF/src/配下に servlet/javahelloを作ってFileUploadServlet.javaを入れています。 http://localhost:8080/tomcat_test/servlet/javahello.FileUploadServletを実行すると エラーは以下のようなエラーで HTTP Status 404 - /tomcat_test/servlet/javahello.FileUploadServlet javaファイルが見つけられていないと思うのですが、 jspからjavaを見に行く時はどのように参照しにいくのでしょうか。 宜しくお願いします。

    • ベストアンサー
    • Java
  • Javaサーブレット?がわかりません。

    質問です。 HTMLで作られた画面のテキストボックス(test1)に値を設定し、 ボタンを押下することによってJava(サーブレット?)に値を渡し、 Java側からHTML画面の別のテキストボックスに値を設定するのには どうしたら良いのでしょうか? 画面は <HTML><HEAD> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <TITLE></TITLE> </HEAD><BODY> <FORM name="Form" action="main"> <TR><TD><INPUT type="text" name="test1"> <INPUT type="text" name="test2"> </TD></TR><BR> <TR><TD><INPUT type="submit" value="試験"></TD></TR> </FORM></BODY></HTML> こんな感じです。 Java側のdoGetメソッドで String name = request.getParameter( "test1" ); で取得した値を画面のtest2のテキストボックスに値を設定したいのですが 新しくHTML画面を作成するのではなく、既存の画面のテキストボックスに値をいれることができるのでしょうか? よろしくお願いします

    • ベストアンサー
    • Java
  • HTML のフォームでaction="" とは何

    HTMLのFORMではたいがいaction= の部分はPHPなどのサーバースクリプトの名前が書かれているのですが、時々action="" というのを見かけます。 これはどういう意味なのでしょうか? 例としては次のようなものです。 <form id="login-id" action="" method="post"> どうかよろしくお願いいたします。

    • ベストアンサー
    • HTML
  • JSPでの文字化け

    こんにちは。 今JAVAを勉強中でJSPファイルを作成しています。 test.jsp <%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J"%> <HTML> <HEAD><TITLE>文字表示テスト</TITLE></HEAD> <BODY> <% String text = request.getParameter("text"); if (text != null) { if (!text.equals("")) { out.println("画面からの文字<BR>"); out.println(text); } } %> <FORM NAME="testForm" METHOD="post" ACTION="test.jsp"> <TEXTAREA NAME="text"></TEXTAREA> <INPUT TYPE="submit" VALUE="送信"> </FORM> </BODY> </HTML> Windowsで上のプログラムを実行すると問題なく表示されますが Linuxサーバで実行すると???となってしまいます。

    • ベストアンサー
    • Java
  • JSPでメッセージボックスを表示したい

    urizakaです。 さて、早速質問したいのですが、現在作っているJSPのプログラムで ボタンを押すとFORMのActionに記述されているサーブレットに移動 してサーブレットを実行するかキャンセルするかという(いわゆるVB でいうところの)メッセージボックスを表示したいのですが、そのような 方法というのはあるのでしょうか?確か、javaにはメッセージボックス という概念が無かったような気もするので… 環境は、JBuilder4で、HTMLのソースコードは <Form Method="POST" Action="×××(ここにサーブレットの アドレスを入力)"> <Input type="submit" Value="押す"> </Form> です。  宜しくお願いします。

    • ベストアンサー
    • Java
  • java、サーブレットなどを勉強しています。html(jsp)のfor

    java、サーブレットなどを勉強しています。html(jsp)のform actionでサーブレットに飛ばしたいとき、レイアウト上別の処理をさせたい(submit)ボタンがあります。 form actionタグはネスト出来ないとの事で、他の方法を探しています。 submitでなく、type="button" でjava script処理と言う解法があるようですが、まだそこまで勉強していないので、ひとつ教えてください。 input type="submit"にvalueがあります、ボタン名になりますが、このvalueは受け手のサーブレットで、読めないのでしょうか。読めればそれによって、処理を分けれるのですが。 あるいは、input type="submit"でサーブレットに別の情報を送る手段はあるでしょうか。 よろしくお願いいたします。