「HTMLヘッダ」や「web.xmlのタグ」の解説。オマジナイのようだけどそれだけではありません。

今回の記事では「HTMLヘッダ」「web.xmlのタグ」の解説をします。それらは、オマジナイのように受け継がれているもの。しかし、それだけのものではありません。

きちんとした理由があれば開発も楽しくなることでしょう。それではさっそく始めます。

HTMLヘッダ

HTMLのヘッダというかスキーマというのか、一番最初に書く文ありますね。
それについて厳密に何なのか知らずに書いていたのです。まるでオマジナイのように。
ずっと気にはなっていたのですが中々きちんとした情報を得る機会がなくて。

今回、それ調査しました。それをかみ砕いてご紹介いたします。
これがわかればHTTP通信の基本的なことは理解できるのではないでしょうか。

みなさんHTML書くときの型として、こんな感じのものを書きますよね。

<!DOCTYPE html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja" dir="ltr">
<head>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<link href="./style.css" rel="stylesheet" type="text/css">
<link rel="index" href="./index.html">
<title lang="ja">タイトル</title>
</head>
<body>
本文
</body>
</html>


これらは一体何なのか。それぞれについて解説していきます。最初に必須か任意かを書いておきます。

<!DOCTYPE html public "-//W3C//DTD HTML 4.01 Transitional//EN">
必須。文書の型を宣言している。

<html lang="ja" dir="ltr"></html>
任意。「国」と「左から右」に読むことを設定している。(left to rightですね)

<head></head>
任意。この中に色々と要素を詰めますよね。

<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
必須。文字コードを記載する。

<link href="./style.css" rel="stylesheet" type="text/css">
<link rel="index" href="./index.html">
必須。文書間の関係を明示する。

<title lang="ja">フォーマット</title>
必須。タイトルを記載する。言語の登録があればなお良し。

<body></body>
任意。本文や表示したい画像などを記載する。


ということでタグの解説完了です。タグの意味がだいぶ見えてきたのではないでしょうか。


web.xmlについて

Apache TomcatでWebページ作るときにweb.xmlというファイルを作りますね。
これは厳密には何なのか知らない方も多いのではないでしょうか。その意味と使い方を知ることで便利な機能を使えるようになることでしょう。

web.xmlはざっくり言うと「Webアプリケーションの動作を定義する」ファイルです。
どんな動作かというと次のとおりです。
・サーブレット定義
・セッション定義
・認証設定
・ウェルカム・エラーページ設定
・などなど

では実際のファイルに記載されているタグを解説していきましょう。

<?xml><!DOCTYPE>
最初に記載されているの上記2つのタグではDTD宣言の設定しています。

<servlet>
servletタグでは、サーブレットクラスの名称を定義しています。使用するJavaクラスの名称に名前つけてるということですね。

<servlet-mapping>
先ほど名付けたサーブレットクラスの名称とURLをマッピングしています。

<security-constraint>
ここでは認証の設定をしています。

<login-config>
ここでは認証方式を設定しています。基本認証、ダイジェスト認証、など色々ありますね。

以上で基本的なweb.xmlのタグについての解説は完了です。いかがでしたでしょうか。web.xmlのタグはわりとたくさんあるので、随時追加していきたいと思います。そのときにはここにリンクをはりますので是非覗いていってください。


そういえば昔、サラリーマンやってたころにプロジェクト内でログイン画面が必要になったことがあったのです。で、リーダー的な活動をしていた人が「私が作る」とか言ってたのです。

私は協力したほうが良いのかなと思いつつも放っておきました。以前、その人に協力したら邪魔者扱いされたことがあったし物言いがキツイからです。

しかし、その後一向に連絡がなく1ヵ月は過ぎていたころにギブアップ連絡が第三者から入りました。結局納期に間に合わないのと仕様に明記されていないとの理由から、ログイン機能なしの方向になりました。しかし上記機能使えば簡単に出来そうですね。


上司がクソ野郎になってきた

上司がクソだ。 全然勉強していなくて話が通じなくてクソ REST知らないってどういうことなんだろう。弊社標準になってから久しいJavaをまともに組めないってのはどういうことなんだろう。 計画上では詳細設計フェーズが半分を過ぎようというときに要件定義できていないってのはどう...