tomcatに関してですが、現在サーブレットからjspを呼び出すようなことをしたいと思い、web.xmlを以下のように設定し、”http:localhost:8080/servlet/Login”としても『HTTP Status 404 - 』が返却されます。jspからサーブレットを呼び出すことはできるのですが・・・(この場合、jspファイルをWEB-INFの直下にディレクトリを作成するとやはりアクセスができませんでした。WEB-INFと同レベルに置けばアクセスは可能でした。)。
どなたかわかる方がいれば教えて下さい!
よろしくお願いします。
---------------
環境
---------------
Windows2000Server
eclipse ver2.1.1
tomcat ver4.1
---------------
ディレクトリ構成
---------------
WEB-INF
Lclasses
| LLogin_serv.java
Ljsp
LLogin.jsp
---------------
web.xml
---------------
<?xml version="1.0" encoding="shift_jis"?>
<!DOCTYPE web-app
PUBLIC "-//SUN Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>serv.Login_serv</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet>
<url-pattern>Login</url-pattern>
</servlet-mapping>
</web-app>
補足:tomcat-confにあるweb.xmlの『invoker』はコメントを外し有効にしてます。
No.1ベストアンサー
- 回答日時:
上記の書き方を使うなら、invokerは関係ないです。
<url-pattern>/Login</url-pattern>
と直して、
http:localhost:8080/webapps/Login
でアクセスしてください。
webappsの部分は、Webアプリケーション名が入ると思います(ROOTコンテキストに指定してあれば不要です)が、web.xmlではなくserver.xmlの設定によって決まるので、上記だけでは分かりません。
server.xmlの
<Context path="hoge" docBase="hoge" debug="0" reloadable="true" />
のあたりをご確認ください。
invokerを使うなら、
http:localhost:8080/webapps/servlet/serv.Login_serv
ですね。
こちらも、webappsの部分はご確認ください。
この回答への補足
回答ありがとうございました。
web.xmlの設定
<url-pattern>/Login</url-pattern>
は気づいて修正しましたが、一向に変化がありません。
ちなみに、server.xmlの設定は、
<Context path="/webinfo" reloadable="true" docBase="C:\app\eclipse\workspace\webinfo" workDir="C:\app\eclipse\workspace\webinfo\work\org\apache\jsp" />
のように設定されており、これはEclipseが自動で行っていました。
やはりまだ何か設定で足りない部分があるのでしょうか?
No.3
- 回答日時:
あとJSPは単体でも動くはずですので
想定されるURLを打ち込んでみてください。
たぶんsendRedirect(パス)のパスがおかしいと思います。
これはドキュメントルートからのパスではなく
コンテキストルートからのパスが入ったと思います。
サーブレットが呼び出せないのでしょうか?
それともその後のJSPが呼び出せないのでしょか?
404エラーが出たときのアドレス欄にはなんと表示されていますか?
この回答への補足
URLは
『http://localhost:8080/System/servlet/Login』
としてあり大丈夫だと思います。
しかし404エラー表示後のURLも変化はありませんでした。
エラーの内容からしてディレクトリが認識されていないと思うのですが・・・。
エラー内容
The requested resource (/System/servlet/html/login.html) is not available
>たぶんsendRedirect(パス)のパスがおかしいと思います。
>これはドキュメントルートからのパスではなくコンテキストルートからのパスが入ったと思います。
すいません。上記のパスを確認するにはいったいどうしたら良いのでしょうか?
No.4
- 回答日時:
返答いただいた内容からですと、serv.Login_servには、以下のどちからでアクセス可能かと思います。
http://localhost:8080/webinfo/servlet/serv.Login …
http://localhost:8080/webinfo/Login
もしダメなら、
serv.Login_serv
というクラス名が正しいことを確認してください。
一行目に、
package serv;
という宣言があり、コンパイル後のクラスファイルが、
C:\app\eclipse\workspace\webinfo\WEB-INF\classes\serv\Login_serv.class
にありますでしょうか?
classesディレクトリ直下ではなく、servディレクトリ以下に置かないといけません。
以下、情報がちょっと分からなくなってきているのですが、
> jspファイルをWEB-INFの直下にディレクトリを作成するとやはりアクセスができませんでした。
WEB-INFディレクトリは、直接外部からのアクセスを許可しないディレクトリです。
このディレクトリにjspファイルやhtmlを置いても使えません。
> /System/servlet/html/login.html
これは上記リクエストの結果のエラーでしょうか?
上記ともかぶりますが、invokerを使っている以上、htmlファイルを/servletというURIで呼び出すのは間違いです。
servlet-mappingなどを使うのは、直接呼び出せないWEB-INF/classes以下に置いたclassファイルを実行させるためで、jspやhtmlを呼び出すためには使いません。
ドキュメントルート(C:\app\eclipse\workspace\webinfo)直下やWEB-INF以外のディレクトリを作って直接スアクセスしてください。
> http://localhost:8080/System/servlet/Login
WebアプリケーションはSystemじゃなくて、webinfoなんですよね?
回答ありがとうございました。
つまりJSPファイルやHTMLはWEB-INF直下に置くのではなく、WEB-INF同レベルのディレクトリを作成しファイルを配置し、アクセスすると言うことですね。
(サーブレットからJSP等を呼び出す場合も同じと言うことでしょうか?)
確かに、WEB-INF同レベルのディレクトリを作成しそこにJSPやHTMLを配置すれば、アクセスは可能でした。
WEB-INF同レベルのディレクトリに配置した場合のセキュリティ面が気になった為、WEB-INF直下に置いてました。
> http://localhost:8080/System/servlet/Login
> WebアプリケーションはSystemじゃなくて、webinfoなんですよね?
すいません。誤記でした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- IT・エンジニアリング プログラマの仕事内容 4 2022/08/13 00:34
- サーバー 別サーバに構築したApache+Tomcatの連携について 2 2023/03/06 23:23
- その他(Microsoft Office) Microsoft Edgeの「ニュースと関心事項」についてお聞きします。 3 2023/05/22 12:08
- Java 問題作成のWebアプリの作り方を教えてください 1 2022/11/26 22:01
- その他(プログラミング・Web制作) pythonのWebスクレイピングでfind_allだとurlがNoneに 4 2022/04/17 18:21
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- システム 古いWEBシステム。もう追加プログラムは作れない? それともできる? 6 2022/06/08 13:41
- HTML・CSS リンクバナーのHTMLタグ。画像を変えたり、設置位置を変えるとバナー貼付け側はどう見える? 2 2023/02/01 12:01
- その他(開発・運用・管理) Beutiful Soupを用いてWebスクレイピングを行おうと考えているのですが、 <meta n 1 2022/06/01 20:18
- PHP php ログイン 1 2022/11/01 00:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Tomcatでサーブレットを動かそ...
-
サーバーで実行できる?
-
tomcatとapacheの連携
-
JSPからServletへの遷移
-
Eclipseにおけるサーブレット作...
-
servletでHTTPステータス404エ...
-
サーブレットが実行できない
-
足し算アプリ
-
DB接続しようと思ったら下記の...
-
Eclipseで、プロジェクト名のと...
-
html上で、バッチやexeファイル...
-
Eclipseのアンインストールの仕方
-
Eclipse(JAVA)のデバッグで他...
-
classファイルについて
-
javaクラスファイルをEclipseで...
-
JSPのクラスをコンパイルできな...
-
正しいURL指定しているにもかか...
-
「%CATALINA_HOME%」とはどこの...
-
「ワークスペースをビルド中」...
-
SVFの設定について:クラスパス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSPからServletへの遷移
-
servlet (resin) について
-
【Servletのエラーについて教え...
-
サーブレットが起動しない
-
「javax.servlet.ServletExcept...
-
servletでHTTPステータス404エ...
-
eclipse servlet 404対処方法
-
JSPからサーブレットを呼び出す...
-
[Servlet]ページ表示に関して
-
サーブレットが実行できない
-
resin.confの設定でご質問です
-
Eclipseにおけるサーブレット作...
-
WEB開発をはじめたばかりの初心...
-
eclipse でjspからJavaを実行す...
-
Tomcatでサーブレットを動かそ...
-
HTTPステータス 404 - /servlet...
-
Tomcat起動時にエラーが発生し...
-
サーブレット フィルタ
-
list<クラス名> とは何でしょう...
-
テーブルにレコードを追加する...
おすすめ情報