JavaでHTMLファイルを操作する方法【初心者向け】

初心者向けにJavaでHTMLファイルを操作する方法について解説しています。ここではjspにJavaのコードを埋め込む方法を使ってHTMLファイルの操作を行います。基本の書き方と使用例を覚えましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

JavaでHTMLファイルを操作する方法について解説します。

実際にプログラムを書いて説明しているので、ぜひ理解しておきましょう。

 

なお本記事は、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日です!

 

[PR] Javaで挫折しない学習方法を動画で公開中

監修してくれたメンター

堀田 悠貴

以前はSEとして某大学病院の電子カルテシステムの保守・開発に携わっていました。
基本的にJavaを使用してクライアント側のプログラム開発を担当していました。

基本業務はJavaでしたが案件次第で色々他のことにも手を出す必要があり、その都度苦労した記憶があります。
現在はその会社を退社して、こちらでのメンター業務のみ行っています。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

また、オンラインのプログラミングスクールTechAcademyでは、Java講座を開催しています。

JavaやServletの技術を使ってWebアプリケーションの開発を学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。