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

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

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

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Tomcat

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

Q&A

0回答

1744閲覧

linuxで動的アプリケーション(サーブレット、jsp)が動くようにしたい

richard97

総合スコア6

Java EE

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Tomcat

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

0グッド

0クリップ

投稿2017/06/21 15:17

###前提・実現したいこと(eclipseではなくCUIで実現したいです)
OS:Mac
サーブレットやjspファイルを含んだwebアプリケーションを作りたくて、そのための設定をしています。
現状でやったことは、ホームディレクトリにservlet-sampleというディレクトリを作り、その中に、コンテキストルートのディレクトリであるhelloworldを作りました。treeコマンドするとこうなります。

Mac-mini:~ bluelawson$ tree servlet-sample
servlet-sample
└── helloworld
_______ ├── WEB-INF
_______ │**   ├── classes
_______ │**   │**   └── HelloWorld.class
_______ │**   └── web.xml
_______ ├── img
_______ │**   └── hello.png
_______ └── index.html
4 directories, 4 files

それで、tomcatをインストールして、tomcatをインストールしたフォルダ内のstart.shを実行して、http://localhost:8080/root/index.htmlにアクセスしたところ、index.htmlを表示することができ、Helloworldクラスも動きました。

###発生している問題・エラーメッセージ

ですが、これを実現する際に、/usr/local/apache-tomcat-9.0.0.M21/conf/Catalina/localhost/ の中にroot.xmlというファイルを作り、そこに、

<Context path="/root" docBase="/Users/bluelawson/servlet-sample/helloworld"/>

と書き込む必要がありました。
これを書くことで、tomcatがhelloworldをコンテキストルートのディレクトリとして認識し、helloworld内のファイルを呼び出すことができるのですが、<context>タグは一つしか書けないため、helloworld以外のコンテキストルートのディレクトリを新しく作って実行しようと思ったら、またわざわざ/usr/local/apache-tomcat-9.0.0.M21/conf/Catalina/localhost/ まで行ってxmlファイルを書き換えなければなりません。xmlファイルを書き換えなくても複数のプロジェクトを動かせるようにできないでしょうか。

###該当のソースコード
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>helloworld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>helloworld</servlet-name> <url-pattern>/helloworld</url-pattern> </servlet-mapping> </web-app>

index.html

<html> <meta charset="utf-8"> <head><title>HelloWorld</title></head> <body> <br> <img src="./img/hello.png"> <a href="/root/helloworld">クリックして下さい</a> <br> </body> </html>

HelloWorld.java
import java.io.;
import javax.servlet.
;
import javax.servlet.http.*;

public class HelloWorld 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("<head>"); out.println("<title>Hello World!</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Hello World!</h1>"); out.println("</body>"); out.println("</html>");

}
}
###試したこと
課題に対してアプローチしたことを記載してください

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問