トップ web.xmlとは
web.xmlとは配備記(デプロイメント)述子と呼ばれるファイルです。何かをテーマに書き方などを解説しています。
この記事の目次です。
1. web.xmlとは
2. web.xmlの呼び方
3. web.xmlの例と書き方
web.xmlは、JavaのWebアプリケーション(Servlet)をWebアプリケーションサーバ(Webコンテナ)に設定するためのXMLフォーマットのファイルです。
web.xmlは、「ウェブ・エックスエムエル」という呼び方以外に「配備記述子」あるいは「デプロイメント記述子」と呼ばれます。
Tomcatで動作させるWebアプリケーションの例をまず見ていき、そこで使用されるweb.xmlをみて、web.xmlの書き方を解説していきます。
まずはweb.xmlを使用したWebアプリケーションの例を見ていきます。
□tomcatホームディレクトリ ├□conf |└□Catalina | └□localhost | └◆test.xml └□webapps └□test └□WEB-INF ├□classes |└◆HelloWorld.class └◆web.xml
<Context path="/test"
docBase="<tomcatホームディレクトリ>/webapps/test"
reloadable="true">
</Context>
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 HelloWorld extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hello World!</title>");
out.println("</head>");
out.println("<body>");
out.println("Hello World!");
out.println("</body>");
out.println("</html>");
}
}
java -classpath <tomcatホーム>/lib/servlet-api.jar:. HelloWorld.java
<?xml version="1.0" encoding="UTF-8" ?>
<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>hello</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
ブラウザより、「http://<tomcatサーバのホスト>:8080/test/hello」へアクセスすると「Hello World! 」と表示されます。
上記の例を見てweb.xmlの書き方について解説していきます。
<servlet>~</servlet>と<servlet-mapping>~</servlet-mapping>は定型的な記述になります。
servlet-nameにはサーブレット名を記述し、servlet-classにはクラスファイル名を記述します。
servlet-nameにはサーブレット名を記述し、url-patternには呼び出す時につけるURLパス名を記述します。
「http://<tomcatサーバのホスト>:8080/test/」というコンテキストパスのURLの場合、 パス名を「/hello」とすると「http://<tomcatサーバのホスト>:8080/test/hello」というURLになります。
もっと詳しい情報は以下にまとめています。参考になればと思います。
Copyright (C) 2015-2023 名科辞典. All Rights Reserved. Loarding…