• ベストアンサー

サーブレットのinit-param記述方法

サーブレットのweb.xmlへのinit-paramの記述についてですが、 複数のサーブレットがある場合に まとめてinit-paramを記述する方法がわかりません。 サーブレット毎に<servlet> ~ </servlet>の中へ DBへの接続(url,user,passwd)用のinit-paramを記述していますが、 毎回書くとweb.xmlが長く見難いものになってしまいます。 あるパス配下(../servlet/ など)でまとめて記述することはできますか? 現状でも動くことは問題ないのですが・・・

  • ssm3u
  • お礼率70% (42/60)
  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#16216
noname#16216
回答No.1

いくつかのServletのみに初期値を設定するようなパラメータは 少なくとも現在はないはずです。 (Servlet2.4になればあるのかもしれませんが。。。) 代わりに、<context-param>を使えば、Webアプリケーション全体に 対して初期値を設定できます。 他には、DBへの接続に限った話だと、DataSourceをサポートした 環境(Tomcatなどの一部のServletコンテナやAPサーバ)を使っても いいかもしれません。 または、プロパティファイルを別に用意して読み込むようにしても 対応はできると思います。 Servlet2.3をサポートしたコンテナの場合には、Filterを作って、 そのFilterの初期値として渡して、それを利用することで特定のURLのみ 共通の値を持たせることも可能でしょう。

参考URL:
http://www.sk-jp.com/java/servlet/webxml.html
ssm3u
質問者

お礼

お礼おそくなりましたことお許しください。 ありがとうございました。 <context-param>を利用し、無事に動くこと確認しました。 参考URLをブックマークさせて頂きます。 ServletContextのgetInitParameter()を利用する方法で 少し苦しみましたが・・・ とりあえず、DB接続用のみで使用する予定ですので Webアプリケーション全体で良いとしました。 ありがとうございます。

関連するQ&A

  • strutsに関連したxmlのサーブレットマッピング

    失礼致します。 初歩的なことですが質問させてください。 strutsにおけるxmlファイルの記述例は次のようになります。 <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> ここで、新しいサーブレット(download)を追加しようと次のように記述を加えました。 <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <servlet-name>download</servlet-name> <servlet-class>Download</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-patte <servlet-name>download</servlet-name> <url-pattern>/download</url-pattern>rn> </servlet-mapping> すると、入り口のファイルに対し、「The requested resource (/プロジェクト名/ファイル名.jsp) is not available.」と警告されました。 strutsではサーブレットの追加は出来ないのでしょうか?ご指摘お願いします。

    • ベストアンサー
    • Java
  • サーブレットで絵文字を使用するには

    JSPで絵文字を使用するには? JSPでimodeの絵文字を使用する方法をどなたかご存知でしょうか? Shift_JISでimodeの絵文字をJSPファイルに埋め込んだところ、 内部で変換がうまくいかないのかエラーになってしまいました。 環境は WindowsXP + Tomcat5.0.24 です。 JSPファイルの先頭には <%@ page contentType="text/html; charset=Shift_JIS" %> という記述をしています。 また、conf/web.xmlにShift_JIS用の記述をしています。 <servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <init-param> <param-name>fork</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>javaEncoding</param-name> <param-value>Shift_JIS</param-value> </init-param> <init-param> <param-name>xpoweredBy</param-name> <param-value>false</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet>

    • ベストアンサー
    • Java
  • JSPからサーブレットを呼び出す際に404エラー

    現在、tomcatでサーブレット/JSPの勉強をしています。 参考書に載っている、jspの入力画面で入力した値をサーブレットで受け取り、そのまま表示させるようなサンプルを作成しています。 JSPの入力画面は表示できるのですが、値を入力してサーブレットに移動する際、404エラーが出てしまいます。 ・ファイルの配置 basic |-input |...|-echo.jsp |-WEB-INF |...|-src |......|-input |.........|-EchoServlet.java |...|-classes |......|-input |.........|-EchoServlet.class |...|-web.xml ・echo.jsp内のサーブレットのパスに関する記述 <FORM ACTION="../servlet/input.EchoServlet"> ・web.xmlの記述 <servlet> <servlet-name>EchoServlet</servlet-name> <servlet-class>input.EchoServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>EchoServlet</servlet-name> <url-pattern>/servlet/EchoServlet</url-pattern> </servlet-mapping> tomcatの/confのinvokerのコメントは外していません。 過去の質問も調べてみて、上記の記述の辺りがおかしいのではないかと 思うのですが、、お気付きの点がありましたら教えて頂けないでしょうか。

    • ベストアンサー
    • Java
  • tomcatでサーブレットが呼び出せません

    最近javaを始めたものなのですがさっそく躓いています http://www.javadrive.jp/servlet/schedule/現在、上記のサイトを参考にしてTomcat6.0を使ってスケジューラを作ろうと思っています 始めたてなのでアレンジなどはパスなどを自分に合わせるなど以外には行っていません にもかかわらず現在第2段階のカレンダーの表示の中にあるサーブレットの呼び出しができません スケジュール管理の画面とサーブレットのリンクまでは出せるのですが、いざサーブレットのリンク先へ行くとHTTP404のエラーとなってしまいます 問題になると思われるweb.xmlはWEB-INFの直下に置いているのですが何が間違っているのかが全くわからない状態です 一応これがweb.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>MonthView</servlet-name> <servlet-class>MonthView1</servlet-class> </servlet> <servlet-mapping> <servlet-name>MonthView</servlet-name> <url-pattern>/MonthView</url-pattern> </servlet-mapping> </web-app> 他にどういう情報を出せばいいのかわからないため 他に開示してほしい情報があればどんどん聞いてください どうか皆さんの知恵をかしてください

  • Servlet_HelloWorld表示方法

    お世話になります。 java暦数ヶ月のものです。 現在、Java勉強の為サーブレットに取り組んでおります。 参考サイトや参考書を使っているのですがうまく表示ができません。 表示テスト用として、下記のhelloworld2直下にindex.htmlファイルを置いてURLより叩いたのですがこれでも表示されません。 (※前回やっていた場合は、表示ができておりその際に作ったファイルは、表示ができています) 【開発環境】 Eclipseにて、classファイル化して所定のフォルダに格納 【環境】 ・サーブレット C:\servlet-sample\helloworld2 │ index.BAK・・・・勝手に作られた │ index.html・・・・『http://localhost:8080/hello2/index.htmlで動作するかテスト │ ├─img │ p1.png │ └─WEB-INF │ web.xml │ └─classes HelloWorld2.class サーバー側(conf内) C:. │ catalina.policy │ catalina.properties │ context.xml │ logging.properties │ server.xml │ tomcat-users.xml │ web.xml │ └─Catalina └─localhost hello2.xml 【ファイル内容】 ・Java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld2 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>"); } } ・コンテキストxmlファイル <Context path="/hello2" docBase="C:\servlet-sample\helloworld2"/> ・web.xml <?xml version="1.0" encoding="ISO-8859-1"?> http://www.apache.org/licenses/LICENSE-2.0 <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <servlet> <servlet-name>helloworld2</servlet-name> <servlet-class>HelloWorld2</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>Sample1</servlet-name> <servlet-class>Sample1</servlet-class> <init-param> <param-name>fork</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>xpoweredBy</param-name> <param-value>false</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet> <servlet-mapping> <servlet-name>helloworld2</servlet-name> <url-pattern>/helloworld2</url-pattern> </servlet-mapping> <!-- The mappings for the JSP servlet --> <servlet-mapping> <servlet-name>Sample1</servlet-name> <url-pattern>/Sample1</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jspx</url-pattern> </servlet-mapping> <session-config> <session-timeout>30</session-timeout> </session-config> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> 【参考サイト】 http://www.javadrive.jp/servlet/ 【アクセスURL】 http://localhost:8080/hello2/helloworld2 http://localhost:8080/hello2/index.html (接続確認用)でアクセス 【エラーメッセージ】 HTTPステータス404  The requested resource (/hello2/index2.html) is not available. 参照先がないという意味だと思うのですがなぜこのようなメッセージが表示され、正常に稼動しないのかが不明です。 表示が出来ていたファイルに近づけてやっておりますが・・・ 他の方に上記ソースで実施して頂いたら実行できたようです^^; ご教示の程、よろしくお願い致します。

  • サーブレットのマッピングについて

    サーブレットのマッピングについて教えてください。 現在サーブレットを学習しています。 書籍に付属するサンプルをとりあえず動かしている段階なのですが、マッピングがうまくいきません。 http://localhost:8080/エントリポイント/servlet/MyServlet とアドレス入力した場合はきちんと表示されるのですが、WEB-INF直下にweb.xmlファイルを作成して http://localhost:8080/エントリポイント/servlet/ms にアクセスすると404エラーが返ってきます。 これは何が原因なのでしょうか? 知識不足もあって皆目検討がつかないため、皆様のお力をお借りしたく思います。 よろしくお願いいたします。 なお、サーブレットはWEB-INF直下のclassesというディレクトリ内にコンパイルしておいてあります。 また、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"> <!-- MyServlet→msと定義する --> <web-app> <servlet> <servlet-name>ms</servlet-name> <servlet-class>MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ms</servlet-name> <url-pattern>/classes</url-pattern> </servlet-mapping> </web-app>

    • ベストアンサー
    • Java
  • サーブレット フィルタ

    簡単なフィルタを設定しようとしています。 web.xmlに<filter>タグを記載し、URLに http://localhost:8080/Servlet/サーブレット名  を指定すると404エラーになってしまいます。 <filter>タグを取り除けば、正常にサーブレットが表示されます。 明らかにweb.xmlの<filter>タグが問題なのですが、 問題をどう切り分けたらいいかもわからず、困っております。 スペルミス等も何度も確認したのですが・・・ どなたかアドバイスお願いします。

  • eclipse + lomboz + tomcatでのサーブレットの実行方法

    お世話になります。 現在、eclipse + lomboz + tomcatを連携し、メッセージを表示するサーブレット(一部抜粋:参照1)を実行しようとしているのですが、ブラウザにエラーメッセージ(内容:ページが見つかりません HTTP 404 - ファイル未検出)が表示されてしまいます。デプロイ、debug serverは成功してるのですが、サーブレットファイルがうまく配置されてないのでしょうか? web.xmlのmappingやserver.xmlの設定はチェックしております(参照2)。 直接URLで指定したjspファイル、tomcatのサンプルサーブレットの表示はできます。 参照1 ********** SC.java の一部抜粋****************** PrintWriter out = response.getWriter(); out.println("HelloServlet"); *********************************************** 参照2 ********** server.xml ************  <Context path="/SC" reloadable="true" docBase="○○" workDir="○○" /> ********************************** ********** web.xmlの編集 ********** <servlet> <servlet-name>SC</servlet-name> <servlet-class>SC</servlet-class> </servlet> <servlet-mapping> <servlet-name>SC</servlet-name> <url-pattern>/SC</url-pattern> </servlet-mapping> ********************************** ソフトのバージョン  Eclipse:3.0.2  rg.objectweb.lomboz_3.0.1.N20050106  emf-sdo-xsd-SDK-2.0.2  tomcat4.1.27 一般的に何か足りない点や間違ってる点がありましたらご教授願います。 宜しくお願いします。

  • JSPからサーブレットを呼び出す際に404エラー

    現在、tomcatとeclipseでサーブレット/JSPの勉強をしています。 参考書に載っている、jspの入力画面で入力した値をサーブレットで受け取り、そのまま表示させるようなサンプルを作成しています。 JSPの入力画面は表示できるのですが、値を入力してサーブレットに移動する際、404エラーが出てしまいます。 ■eclipseのパッケージエクスプローラー basic |-WEB=INF/src |..|input |...|EchoServlet.java |-WEB-INF |..|web.xml |.|echo.jsp (WEB-INF直下に作成) ■echo.jsp内のサーブレットのパスに関する記述 <FORM ACTION="/servlet/EchoServlet"> ■web.xmlの記述 <servlet> <servlet-name>EchoServlet</servlet-name> <servlet-class>input.EchoServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>EchoServlet</servlet-name> <url-pattern>/servlet/EchoServlet</url-pattern> </servlet-mapping> ■EchoServlet.javaの記述 package input; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class EchoServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String msg = request.getParameter("message"); response.setContentType("text/plain; charset=Windows-31J"); PrintWriter out = response.getWriter(); out.println("message=" + msg); } } お気づきの点がございましたらご査収の程よろしくお願いいたします。

  • Tomcatにおけるサーブレットの呼び出し

    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』はコメントを外し有効にしてます。

    • ベストアンサー
    • Java

専門家に質問してみよう