質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

1回答

273閲覧

javaでウェブページ作成

rev_timo

総合スコア117

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2018/06/24 11:38

今までphpでウェブアプリをいくつか作りましたが、javaでは全く作ったことがないです。
Tomcat/サーブレット/JSPなどは初心者なので、質問させてください。

VM 環境で実装しています。
OS:Ubuntu 18.04 live server
Webサーバー:nginx
Webコンテナ:Tomcat9
プログラミング言語:Java です。

本を読みながらやっていますが、本の場合はeclipseにtomcatをダウンロードして、eclipseから新規ウェブプロジェクト作成みないに簡単にできてしまいますが、VM環境では結構ハードです。

できているところ
・一応 localhost:8080にアクセスするとtomcatのページが表示されている状態です。
・Tomcatのexamplesプログラミングなどもちゃんと実行されて、ブラウザ上にも表示されています。

分からないこと
Tomcatのexamples プログラミング(http://localhost:8080/examples/servlets/servlet/HelloWorldExample)と同じようなjavaファイルを作ってコンパイルして、ブラウザから(http://localhost:8080/examples/servlets/servlet/SampleServlet)アクセスしてみたら404になっています。

SampleServletのコード

package mypackage; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class SampleServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String[] luckArray = {"a", "b", "c"}; int index = (int) (Math.random() * 3); String luck = luckArray[index]; Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); String today = sdf.format(date); response.setContentType("text/html; charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>hello</title>"); out.println("</head>"); out.println("<body>"); out.println("<p>"+today+"のランダムは"+luck+"です</p>"); out.println("</body>"); out.println("</html>"); } }

SampleServlet.javaは tomcat9/webapps/examples/WEB-INF/classes/の中に置いてあります。
そもそも私のやり方が間違っているかもしれませんが、教えてください。

Tomcat/サーブレット/JSPについて勉強したいですが、いいサイトとかありましたら教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

よくわかりませんが、
プログラムSampleServlet.javaが、examples/WEB-INF/classes/の中にあるのに、
http://localhost:8080/examples/servlets/servlet/SampleServlet
にアクセスしているのはなぜでしょうか

eclipseで開発した場合、プロジェクト名が
http://localhost:8080/プロジェクト名 になるのが普通です。
アクセスする場合は
http://localhost:8080/プロジェクト名/〇〇.jsp
となります。プログラムに問題がない場合は表示されます。

JavaでのWebアプリはサーブレットとJSPの関係がはっきりしていないと
クライアント側で何もできないと思うのですが・・

投稿2018/06/24 13:37

編集2018/06/24 13:57
casaganai

総合スコア144

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問