初心者向け!サーブレットを作る4つのポイント【JavaWeb入門講座5】サーブレットの基本

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ธ.ค. 2024

ความคิดเห็น • 78

  • @まさと-d6y
    @まさと-d6y ปีที่แล้ว +10

    ひとつ前の動画をクリアできたと思ったら・・・
    エラーが解決できません。
    パッケージjavax.servletは存在しません
    パッケージjavax.servlet.httpは存在しません
    パッケージjavax.servlet.annotationは存在しません
    FirstServlet.java:8: エラー: シンボルを見つけられません
    public void doGet(HttpServletRequest req, HttpServletResponse res)
    ^
    FirstServlet.java:9: エラー: シンボルを見つけられません
    throws IOException, ServletException{
    ^
    これらのエラーが表示されます。
    お時間あるときでかまいませんのでどのような対応があるかご教授
    お願いいたします。

    • @まさと-d6y
      @まさと-d6y ปีที่แล้ว +1

      jakarta.servlet.*;
      javax でなく jakarta に変更したらエラーがなくりました。
      バージョンによって変更する必要があるみたいです。

    • @SekaChan
      @SekaChan  ปีที่แล้ว +6

      まさとさん、コメントありがとうございました!
      貴重な情報をシェアしてもらえて感謝です!
      Tomcat10からサーブレット関連のパッケージ名が javax.~ → jakarta.~ に変更されたんですよね。
      他の方にとっても役立つ情報だと思うので、このコメントをトップに固定させてください(動画の説明欄にも追記しました)。

    • @jkfahklhgautattara501
      @jkfahklhgautattara501 ปีที่แล้ว +3

      私も同様のエラーに悩みましたが、以下の対応でコンパイルが通りました。
      エラー時:インストールしたtomcatのzipファイルを解凍せずに、C:ドライブにzipファイルの中の階層から移動して使用

      解消時:tomcatを解凍したのち、C:ドライブに移動して使用。念のため、環境変数ももう一度うやり直し。CALSSPA”SS”ではなく、CLASSPA”TH”にしないことをご注意ください。

    • @もなち-u1l
      @もなち-u1l 11 หลายเดือนก่อน +5

      @@SekaChan
      コメント失礼いたします。コメント欄に記載されていた解決方法も環境変数の設定しなおしなど、試してみましたがエラーが一向に解決される気配がありません。解説お願いします(´;ω;`)
      C:\pleiades\2023-12\tomcat\9\webapps\Javaweb2\WEB-INF\classes>javac *.java
      FirstServlet.java:8: エラー: シンボルを見つけられません
      public class FirstServlet extends HttpServlet { //HttpServletクラスを継承
      ^
      シンボル: クラス HttpServlet
      FirstServlet.java:7: エラー: シンボルを見つけられません
      @WebServlet("/first")
      ^
      シンボル: クラス WebServlet
      FirstServlet.java:9: エラー: シンボルを見つけられません
      public void doGet(HttpServletRequest req, HttpServletResponse res)
      ^
      シンボル: クラス HttpServletRequest
      場所: クラス FirstServlet
      FirstServlet.java:9: エラー: シンボルを見つけられません
      public void doGet(HttpServletRequest req, HttpServletResponse res)
      ^
      シンボル: クラス HttpServletResponse
      場所: クラス FirstServlet
      FirstServlet.java:10: エラー: シンボルを見つけられません
      throws IOException, ServletException { //doGet()をオーバーライド
      ^
      シンボル: クラス ServletException
      場所: クラス FirstServlet
      FirstServlet.java:3: エラー: パッケージjavax.servletは存在しません
      import javax.servlet.*;
      ^
      FirstServlet.java:4: エラー: パッケージjavax.servlet.httpは存在しません
      import javax.servlet.http.*;
      ^
      FirstServlet.java:5: エラー: パッケージjavax.servlet.annotationは存在しません
      import javax.servlet.annotation.*;
      ^
      エラー8個

    • @ひさん-n2o
      @ひさん-n2o 10 หลายเดือนก่อน

      @@SekaChan
      Eclipse付属のTomcatを利用しているのですが、Javacコマンドでコンパイルしようとすると上記と同様のエラーが8個出力されてしまいます...
      もちろんclassファイルも生成されず、試しにプログラムファイルの内容をjavax.~ → jakarta.~に変更したとしてもエラー状況は変わらずでした。
      お手数おかけしますが、原因や対応方法などご教授いただけますと幸いです。

  • @askaseri4017
    @askaseri4017 วันที่ผ่านมา

    サーブレットデビューできました~!!今回何のエラーにも引っかからずスムーズにできたのでとてもスッキリです。先生いつもありがとうございます!本当にわかりやすい☺

  • @mochico-gz2xw
    @mochico-gz2xw ปีที่แล้ว +6

    いつも先生の動画が分かりやすくて本当に助かっています!
    会社の研修でも講師の方がいらっしゃるのですが、いつも「分からなければネットで調べましょう」としか言ってもらえず(調べても分からないから聞いているのに・・・!?)と毎度泣きそうになりながら先生の動画を繰り返し見て勉強しています!「
    これが理解出来てないとこの先大変だよ」と言われる度に心が折れそうですが、なんとか頑張りたいと思います😭

    • @SekaChan
      @SekaChan  ปีที่แล้ว +4

      mochicoさん、コメントありがとうございました!
      会社の研修でJavaを勉強中なんですね。ただ、大変な講師にあたっちゃったようで‥
      「これが理解出来てないとこの先大変」なのはその通りかもしれませんが、それなら理解してもらうために全力を注いでほしいなと同業者としては思います😅
      Javaに関しては幅広く解説動画を作ってあるので、ぜひ研修の振り返りに活用してもらえたら嬉しいです!

  • @csozonbi
    @csozonbi 2 ปีที่แล้ว +12

    今日、研修でサーブレットについて学習し始めたのですが、何が何やら全くわからず、藁にもすがる思いでこちらの動画にたどり着きました。
    こんな短い時間なのに、めちゃくちゃわかりやすい!
    ありがとうございます。

    • @SekaChan
      @SekaChan  2 ปีที่แล้ว +4

      背中がかゆいさん、コメントありがとうございます!
      初めてサーブレットを学習したときって、新しい記述が多すぎて混乱しますよね💦(僕もそうでした)
      きっと、研修はこの後JSPやMVCモデルに続いていくと思います。
      このwebアプリ開発講座でもMVCモデルまで解説するので、ぜひ一緒に頑張っていきましょう!!

  • @m_corma
    @m_corma 7 หลายเดือนก่อน +1

    今回もとても分かりやすくて、すんなり頭に入ってきました。ありがとうございます。

    • @SekaChan
      @SekaChan  7 หลายเดือนก่อน

      ここはwebアプリ編の中でも特に重要なところなので、理解してもらえたみたいで良かったです!

  • @buffaloisikawa
    @buffaloisikawa 2 ปีที่แล้ว +4

    いつもわかりやすい動画ありがとうございます!
    次回も楽しみにしてます!

    • @SekaChan
      @SekaChan  2 ปีที่แล้ว +1

      buffaloisikawaさん、こんにちは。
      嬉しいコメントありがとうございました!!
      次回はサーブレットとフォーム画面の連携です。
      また分かりやすく解説するので、楽しみに待っててください✨

  • @うさぎめもり
    @うさぎめもり 2 หลายเดือนก่อน +1

    いつもありがとうございます! 11:23 で最後にサイトを更新しても、要求されたリソース [/javaweb/first] は利用できません。
    説明 オリジンサーバーは、ターゲットリソースの現在の表現を見つけられなかった のような説明が出てきます。他の方のコメントを参考に環境変数の見直しなどをしたのですが、解決しませんでした‥他に考えられる原因があれば、教えていただきたいです。

    • @SekaChan
      @SekaChan  2 หลายเดือนก่อน

      うーん、それは環境変数の問題ではないような気がしますね🤔
      「リソースを見つけられなかった」のであれば、クラスファイルが正しい場所に配置されているかや、どこかの名称が間違えていないかなどを確認してみてください。

    • @うさぎめもり
      @うさぎめもり 2 หลายเดือนก่อน

      @@SekaChan ありがとうございます
      そちら確認しましたが、正しかったので他の要因ではないかと考えています。
      コンパイルの部分で動画のようにjavac *. javaができないので、クラス名でコンパイルを行っているのですが、その部分が原因の可能性もあると考えています。javac *. javaはどの動画で解説されていますか?

  • @ontran381
    @ontran381 ปีที่แล้ว +2

    HTTPステータス 404 - 見つかりませんって表示された・・・
    解決お願いいたします。

  • @fumi4746
    @fumi4746 ปีที่แล้ว +4

    こんにちは。
    本動画と同じ記述のjavaファイルをコンパイルしてブラウザで表示したところ、日本語を書いていたtitleとh1の箇所が文字化け(?????)ていました。
    無知ながら、サーブレット側でも何かしら文字コードのエンコーディング処理が必要??とかと思ってるのですが、もし発生の可能性等がわかればお伺いしたいです。🙇‍♂️

    • @SekaChan
      @SekaChan  ปีที่แล้ว +1

      fumiさん、こんにちは。
      文字化けしてしまう原因はいくつかありますね。
      まず、setContentTypeメソッドで指定しているcharsetの値が正しいか(スペルミスなどがないか)を確認してください。
      また、サーブレットのjavaファイルを保存するときの文字コードも確認してもらうと良いと思います。
      サーブレットのクラスファイルを新しく更新するときは、Tomcatの再起動を忘れないでくださいね😄

    • @fumi4746
      @fumi4746 ปีที่แล้ว +2

      @@SekaChan 回答ありがとうございます!
      先ほど改めて確認したところ、恥ずかしながらcharsetのスペルが誤っておりました…
      修正したところ、正しく日本語が表示されました!ありがとうございました🙇‍♂️

  • @user-wg9ii5ub7f
    @user-wg9ii5ub7f หลายเดือนก่อน +1

    次回 0:54

  • @うさぎめもり
    @うさぎめもり 2 หลายเดือนก่อน

    いつもありがとうございます!
    10:39 のjavac *. javaでコンパイルするというのがエラーが出てしまいできないのですが、javac *. javaについてはどの動画で解説されていますか?

    • @SekaChan
      @SekaChan  2 หลายเดือนก่อน

      「javac *.java」のコンパイル方法については、Java基礎講座で解説しています。
      こちらの動画を参考にしてください。
      th-cam.com/video/GiicGJ9EfP4/w-d-xo.html

  • @永井萌子-d8f
    @永井萌子-d8f 2 ปีที่แล้ว +4

    いつも分かりやすい動画、解説を視聴させていただきありがとうございます。
    こちらをeclipseで作成し、実行したのですがエラー404「リソースは利用できません」と出てしまいます。こちらの動画はJavaをインストールしてテキストエディタで行う前提のものでしょうか?

    • @SekaChan
      @SekaChan  2 ปีที่แล้ว +3

      永井萌子さん、コメントありがとうございました。
      この動画のプログラムはテキストエディタで行う前提のものではなく、eclipse上でも動かすことができますよ😄
      ただ、webアプリでは動的プロジェクトを作る必要があるなど、気をつけることがあります。
      こちらでeclipse上でwebアプリを作る方法を解説しているので、ぜひ参考にしてみてください!
      ●Eclipseでwebアプリを開発する4ステップ
      th-cam.com/video/PXvs02_VM0I/w-d-xo.html

    • @永井萌子-d8f
      @永井萌子-d8f 2 ปีที่แล้ว +3

      ご回答いただきありがとうございます!
      これからも先生の動画を観て精進致します😊

  • @rimu-zatsugaku
    @rimu-zatsugaku 3 หลายเดือนก่อน

    mainメソッドは、tomcatのどのファイルに格納されているかお聞きしたいです。

  • @永井萌子-d8f
    @永井萌子-d8f 2 ปีที่แล้ว +4

    連続でのコメント失礼致します。
    この度テキストエディタで取り組んでいるのですが、何度やってもエラーが出てしまいます。
    ・インポート文に対して「パッケージが存在しません」となってしまいます。
    ・doGetメソッドに対して、そのままの文章を打ち込んでいるはずですが、「シンボルを見つけられません」と出てしまいます。
    Java入門編のhelloworldは出力できたので環境構成に問題はないかと思います。
    解決のヒントなどあれば教えていただきたいです。

    • @SekaChan
      @SekaChan  2 ปีที่แล้ว +1

      永井萌子さん、コメントありがとうございました。
      どのパッケージやどのシンボルが見つけられていないかが分からないので何とも判断が難しいですが、おそらく環境に原因がありそうな気がします。
      また、前回のコメントのときはeclipseで作られていましたが今回はテキストエディタを使っているようなので、そのあたりも何か関係があるかもしれません。
      エラーの原因として最も可能性が高そうなのは、こちらで解説しているCLASSPATHの設定です。
      th-cam.com/video/1D9PeDnONOQ/w-d-xo.html
      あわせて、CATALINA_HOMEの値も確認しておくと良いと思います。

    • @まいく-t9d
      @まいく-t9d ปีที่แล้ว

      もう解決されてるかもしれないですが、自分も同じ現象が起きましたがいろいろ試しているうちに解決したので共有します。
      eclipceフォルダに同梱されているtomcatをおそらく使用されていたと思います。
      CLASSPATHの頭の「.;」を削除したパスに変更するとなぜか通りました。
      参考になったら幸いです。

    • @nyoutube-s3v
      @nyoutube-s3v ปีที่แล้ว +1

      私も同じ現象が発生しましたが、単純にCLASSPATHの設定が間違っていました。
      CLASSPATH ではなく CRASSPATH にしてしまってました。。。

  • @narandelger5808
    @narandelger5808 2 ปีที่แล้ว +5

    こんにちは、コンパイルが通れなくて、「この文字(0*EF)は、エンコーディングwindows-31jにマップできません」+文字化け になっています。どこが間違ったでしょうか?宜しくお願い致します。

    • @jojo-fz9cb
      @jojo-fz9cb 2 ปีที่แล้ว

      ここにはエンコーディングをつけてコンパイルしたら行けたと書いてありますね。
      qiita.com/HachiwareWorks/items/2b23b180d328df597fe4
      javac -encoding UTF-8 ****.java

    • @SekaChan
      @SekaChan  2 ปีที่แล้ว +1

      Naran Delgerさん、こんにちは。コメントありがとうございました!
      エンコーディングのコンパイルエラーはプログラム以外(環境まわり)に原因があるケースが多いので、この情報だけでは正確なアドバイスは難しいですね‥🙏
      僕ならこのあたりを試して、結果をみながらエラーの原因を探します。
      ・プログラムを半角文字のみにしてみる(日本語の出力をしない)
      ・テキストエディタの文字コードの設定を確認する
      ・javaファイルを文字コードutf-8で保存してみる
      また、Javaの環境構築についてこちらの動画で解説しているので、もしかしたら参考になるかもしれません。
      ●Javaの始め方
      th-cam.com/video/QeCX5-OmWW8/w-d-xo.html

    • @narandelger5808
      @narandelger5808 2 ปีที่แล้ว +2

      @@SekaChan ご丁寧の説明していただき、ありがとうございました😊

  • @matori-y9u
    @matori-y9u ปีที่แล้ว +3

    コンパイル後tomcatを起動したら、HTTPステータス 404が表示されてしまいます。
    お教え頂ければ幸いです。

    • @matori-y9u
      @matori-y9u ปีที่แล้ว +2

      講座4にある@Ruka-wg8rm様のコメントを参考に無事解決できました。
      お騒がせしました。

  • @Mrki570
    @Mrki570 ปีที่แล้ว +2

    日本語の行があるとプロンプトのコンパイルエラーが出てしまいます。
    半角英字にすれば通るので、今はそうしています。
    なにが原因か分かりますでしょうか

    • @SekaChan
      @SekaChan  ปีที่แล้ว +1

      キーさん、コメントありがとうございました。
      (エラーメッセージが分からないので違うかもしれませんが‥)もしエンコーディング関連のエラーであれば、こちらの動画のコメント欄を参考にしてみてください。
      視聴者さんが原因や対策をシェアしてくれています!
      th-cam.com/video/2RKKo3kPItU/w-d-xo.html

    • @Mrki570
      @Mrki570 ปีที่แล้ว +2

      @@SekaChan
      ありがとうございます!
      助かります試してみます

  • @ああ-o2k9d
    @ああ-o2k9d 8 หลายเดือนก่อน +1

    質問があります。
    「HpptServletResponse」をAPIドキュメントで調べると「ServletResponse」インターフェースを継承したインターフェースであると出てきました。
    "インターフェースを実装したクラス"ではなく、
    "インターフェースそのもの"を引数として受け取り、更にオブジェクトとして扱う事に違和感があるのですが、今は気にすべきでは無いのでしょうか?

    • @ああ-o2k9d
      @ああ-o2k9d 8 หลายเดือนก่อน +2

      すみません。部分的に解決しました。
      インターフェースを引数にする事が出来るっぽいですね。
      挙動は確認出来てませんが、インターフェースのキャストなるものも存在する様です。

    • @ああ-o2k9d
      @ああ-o2k9d 8 หลายเดือนก่อน +2

      解決しました。
      難しく考えてたようです。
      クラスのキャストや、その概念の応用であるポリモーフィズムと変わらないですね。
      単に「スーパークラス、サブクラス」の関係が「クラス、インターフェース」の関係になっただけでしたね
      お騒がせしました。

    • @rimu-zatsugaku
      @rimu-zatsugaku 3 หลายเดือนก่อน

      HttpServletResponse res = new クラス名();
      という理解でよろしいですか?