JavaでHTMLファイルを操作する方法【初心者向け】
初心者向けにJavaでHTMLファイルを操作する方法について解説しています。ここではjspにJavaのコードを埋め込む方法を使ってHTMLファイルの操作を行います。基本の書き方と使用例を覚えましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
JavaでHTMLファイルを操作する方法について解説します。
実際にプログラムを書いて説明しているので、ぜひ理解しておきましょう。
そもそもJavaについてよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプJava講座の内容をもとに作成しています。
今回は、Javaに関する内容だね!
どういう内容でしょうか?
HTMLファイルを操作する方法について詳しく説明していくね!
お願いします!
JavaからHTMLファイルを操作する方法
JavaでHTMLを操作する方法はいくつか有ります。
公開されているAPIを利用したり、サーブレットから書き込んだりといった方法も有りますが、ここではjspにjavaのコードを埋め込む方法を紹介します。
(例)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html lang="ja"> <head> <meta charset="UTF-8"> <title>サンプル</title> </head> <body> <% String s = "ABC"; %> <p> <%=s%> </p> </body> </html>
このjspをサーバに配置してブラウザ上で表示させると「ABC」と表示します。
<% %>で囲んだ中にはJavaのコードを書き込むことができます。
上記の例ではString型の変数sを定義して、「ABC」と値を入れています。
<%= %>で囲んだ中にはJavaの変数、または式を入れて、その内容をHTMLとして出力することができます。
この部分に書き込んだ内容はブラウザで表示した際に目に見える部分です。
上記の例では上で定義した変数sを入れており、これによりブラウザ上で「ABC」と表示させています。
<% %>で囲んだ中には制御文も書くことができます。
(for文の例)
<body> <ul> <% String[] array = {"あいう","かきく","さしす","たちつ"}; for(int i=0; i<array.length; i++){ %> <li><%=array[i]%></li> <% } %> </ul> </body>
上記の例はfor文を使用して配列の内容をリストに表示させています。
for文を2つの<% %>のブロックに分割して、その間に通常のタグを記述することでタグの出力を繰り返しの対象にすることができます。
同様にif文も使用することができます。
(if文の例)
<% Calendar cal = Calendar.getInstance(); int i = cal.get(Calendar.DATE); if(i%2 == 0){ %> <div><%=i%>日は偶数日<div> <% } else { %> <div><%=i%>日は奇数日<div> <% } %>
上記の例は今日が偶数日か奇数日かで出力するHTMLの内容を変えています。
この様にJavaのコードによる制御でHTMLの内容を制御することが可能です。
実際に書いてみよう
下記のプログラムは実行時の曜日が日曜かどうかで異なる文言を表示します。
Javaのif文、for文を使用して出力するHTMLの内容を制御していることを確認してください。
<%@page import="java.util.Calendar"%> <%@page import="java.util.Date"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html lang="ja"> <head> <meta charset="UTF-8"> <title>サンプル</title> </head> <body> <% String[] days = { "", "日", "月", "火", "水", "木", "金", "土" }; Calendar cl = Calendar.getInstance(); int yyyy = cl.get(Calendar.YEAR); int mm = cl.get(Calendar.MONTH) + 1; int dd = cl.get(Calendar.DATE); int day = cl.get(Calendar.DAY_OF_WEEK); %> <p> <b> 今日は<%=yyyy%>年<%=mm%>月<%=dd%>日(<%=days[day]%>)曜日です。</b> </p> <% if (day == Calendar.SUNDAY) { %> <b> 今日はお休みです!!</b>> <% } else { for (int i = 1; i <= 7; i++) { cl.add(Calendar.DAY_OF_MONTH, 1); if (cl.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) { %> 次の日曜日まで後<%=i%>日です! <% break; } } } %> </body> </html>
実行結果の例
今日は2018年10月5日(金)曜日です。 次の日曜日まで後2日です!
監修してくれたメンター
堀田 悠貴
以前はSEとして某大学病院の電子カルテシステムの保守・開発に携わっていました。 基本業務はJavaでしたが案件次第で色々他のことにも手を出す必要があり、その都度苦労した記憶があります。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもJavaやServletの技術を使ってWebアプリケーション開発を習得できるオンラインブートキャンプJava講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。