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

Поділитися
Вставка
  • Опубліковано 14 жов 2024

КОМЕНТАРІ • 79

  • @まさと-d6y
    @まさと-d6y 11 місяців тому +9

    ひとつ前の動画をクリアできたと思ったら・・・
    エラーが解決できません。
    パッケージ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 11 місяців тому +1

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

    • @SekaChan
      @SekaChan  11 місяців тому +6

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

    • @jkfahklhgautattara501
      @jkfahklhgautattara501 11 місяців тому +3

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

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

    • @もなち-u1l
      @もなち-u1l 9 місяців тому +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個

    • @もんふじ-d1c
      @もんふじ-d1c 8 місяців тому

      @@SekaChan
      前の動画でTomcatのzipファイルからだとstart.batの起動ができないという問題があったので、この問題を解決するためにEclipse付属のTomcatを利用しているのですが、Javacコマンドでコンパイルしようとすると上記と全く同じエラー8個が出力されます。
      (もちろんclassファイルも生成されません)
      お手隙の際にお手数ですが、考えられる原因や解決策など教えてください。

  • @rimu-zatsugaku
    @rimu-zatsugaku 19 днів тому

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

  • @うさぎめもり
    @うさぎめもり 4 дні тому +1

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

    • @SekaChan
      @SekaChan  4 дні тому

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

    • @うさぎめもり
      @うさぎめもり 3 дні тому

      @@SekaChan
      ありがとうございます。それらを確認しても正しかったので、もしかしたらコンパイルが原因かもしれません。動画で行われているようなjavac *. javaで行おうとすると、無効なフラグですというメッセージが出てしまいます。このjavac *. javaについてどこで解説されているか教えていただきたいです。

    • @うさぎめもり
      @うさぎめもり 8 годин тому

      @@SekaChan
      確認してみましたが、場所や名前も合っていました‥
      コンパイルの時にjavac *. javaが動画では使われていると思うのですが、こちらのpcで実行した場合エラーが出て使えないので、クラス名を入力してコンパイルを行っています。そのためサイトが更新できない可能性もあると思うのですが、javac *. javaはどの動画で解説されていますか?

  • @m_corma
    @m_corma 4 місяці тому +1

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

    • @SekaChan
      @SekaChan  4 місяці тому

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

  • @mochico-gz2xw
    @mochico-gz2xw Рік тому +6

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

    • @SekaChan
      @SekaChan  Рік тому +4

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

  • @csozonbi
    @csozonbi 2 роки тому +12

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

    • @SekaChan
      @SekaChan  2 роки тому +4

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

  • @matori-y9u
    @matori-y9u 11 місяців тому +3

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

    • @matori-y9u
      @matori-y9u 11 місяців тому +2

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

  • @fumi4746
    @fumi4746 Рік тому +4

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

    • @SekaChan
      @SekaChan  Рік тому +1

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

    • @fumi4746
      @fumi4746 Рік тому +2

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

  • @Mrki570
    @Mrki570 Рік тому +2

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

    • @SekaChan
      @SekaChan  Рік тому +1

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

    • @Mrki570
      @Mrki570 Рік тому +2

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

  • @ontran381
    @ontran381 11 місяців тому +2

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

  • @永井萌子-d8f
    @永井萌子-d8f 2 роки тому +4

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

    • @SekaChan
      @SekaChan  2 роки тому +3

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

    • @永井萌子-d8f
      @永井萌子-d8f 2 роки тому +3

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

  • @ああ-o2k9d
    @ああ-o2k9d 6 місяців тому +1

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

    • @ああ-o2k9d
      @ああ-o2k9d 5 місяців тому +2

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

    • @ああ-o2k9d
      @ああ-o2k9d 5 місяців тому +2

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

    • @rimu-zatsugaku
      @rimu-zatsugaku 19 днів тому

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

  • @永井萌子-d8f
    @永井萌子-d8f 2 роки тому +4

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

    • @SekaChan
      @SekaChan  2 роки тому +1

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

    • @まいく-t9d
      @まいく-t9d Рік тому

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

    • @nyoutube-s3v
      @nyoutube-s3v Рік тому +1

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

  • @buffaloisikawa
    @buffaloisikawa 2 роки тому +4

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

    • @SekaChan
      @SekaChan  2 роки тому +1

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

  • @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の始め方
      ua-cam.com/video/QeCX5-OmWW8/v-deo.html

    • @narandelger5808
      @narandelger5808 2 роки тому +2

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