・ブラウザからの入力のないプログラム:現在時刻表示
<%@ page contentType="text/html; charset=euc-jp" %>・・・文字コードの指定(指定しないとデフォルトはISO-8859-1が使用される) <% // 内容: 時刻を表示する例 // 現在の時刻を取得 java.util.Date nowTime = new java.util.Date(); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><title>時刻を出力する例</title></head> <body> <p>-- 時刻を出力する例 --</p> <p> 現在の時刻は <strong><%= nowTime %></strong> です。 </p> </body> </html>
・時刻による分岐方法
<%@ page import="java.util.*" contentType="text/html; charset=euc-jp" %> <% // 時刻に応じたあいさつを表示する例 // 現在の時刻を取得 GregorianCalendar calendar = new GregorianCalendar(); int nowHour = calendar.get(Calendar.HOUR_OF_DAY); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><title>時刻に応じたあいさつを表示する例</title></head> <body> <p>-- 時刻に応じたあいさつを表示する例 --</p> <p> 現在は <strong><%= nowHour %>時</strong> です。<br> <strong> <% if(nowHour >= 4 && nowHour < 7) { %> まだ朝早いですね <% } else if(nowHour >= 7 && nowHour < 12) { %> おはようございます <% } else if(nowHour >= 12 && nowHour < 15) { %> お昼ですね <% } else if(nowHour >= 15 && nowHour < 18) { %> もう夕方になりました <% } else if(nowHour >= 18 && nowHour < 22) { %> 夜になりましたね <% } else if(nowHour >= 22 || nowHour < 4) { %> 深夜です <% } %> </strong> </p> </body> </html>
・ブラウザから入力を受け取るプログラム
HTML側
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><title>入力ページ</title></head> <body> <p>-- 入力ページ --</p> <p><form action="3-4.jsp"> お名前: <input type="text" name="name" size=32><br> 生年月日: <input type="text" name="birthday" size=20><br> <br> <input type="submit" value="OK"> </form></p> </body> </html>
受け取った内容を出力するJSP
<%@ page contentType="text/html; charset=euc-jp" %> <% // ユーザーからの入力を出力する // パラメータを取得 String name = request.getParameter("name"); String birthday = request.getParameter("birthday"); // 文字コードの変換を行う name = new String(name.getBytes("8859_1"), "EUC_JP"); birthday = new String(birthday.getBytes("8859_1"), "EUC_JP"); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><title>ユーザーからの入力を出力する</title></head> <body> <p>-- ユーザーからの入力を出力する --</p> <p><ul> <li>お名前: <%= name %> <li>生年月日: <%= birthday %> </ul></p> </body> </html>
・メソッドの使用例
メソッド内は
<%! %>
を使用
出力する式は
<%= %><br>
<%@ page contentType="text/html; charset=euc-jp" %> <% // メソッドを使用する例 String redText = getColoredHTML("赤いテキスト", "red"); String blueText = getColoredHTML("青いテキスト", "blue"); String greenText = getColoredHTML("緑のテキスト", "green"); %> <%! /** * フォントカラーの指定を行ったHTML文を作成する * @param str 色を付けて表示する文字列 * @param color 色を指定する文字列 * @return フォントカラーの指定を行ったHTML文 */ public String getColoredHTML(String str, String color) { return "<font color=\"" + color + "\">" + str + "</font>"; } %> <html> <head><title>メソッドを使用する例</title> <body> <p>-- メソッドを使用する例 --</p> <p> <%= redText %><br> <%= blueText %><br> <%= greenText %><br> </p> </body> </html>
http://www.atmarkit.co.jp/fjava/rensai/jsp03/jsp03.html
・JavaとJSPの連携
Java側
CopyrightHTML.java
package atmarkit; /** * 著作権表示用のHTMLを生成するクラス */ public class CopyrightHTML { /** 著作年 */ public String year = ""; /** 著作者 */ public String name = ""; /** メールアドレス */ public String mail = ""; /** * 標準的な著作権表示HTML文を取得する * @return 標準的な著作権表示HTML文 */ public String getNormalHTML() { // メールアドレスが指定されている場合は著作者名にリンクをつける if(!mail.equals("")) { name = " <a href=\"mailto:" + mail + "\">" + name + "</a>"; } return "Copyright " + year + " " + name + ". All rights reserved."; } /** * 短い著作権表示HTML文を取得する * @return 短い著作権表示HTML文 */ public String getShortHTML() { // メールアドレスが指定されている場合は著作者名にリンクをつける if(!mail.equals("")) { name = " <a href=\"mailto:" + mail + "\">" + name + "</a>"; } return "(C) " + year + " " + name + "."; } }
・JSP側
<%@ page contentType="text/html; charset=euc-jp" import="atmarkit.CopyrightHTML" %> <% // オリジナルクラスを使用する CopyrightHTML copyright = new CopyrightHTML(); copyright.year = "2001"; copyright.mail = "taro@java.server.pages"; copyright.name = "JSP 太郎"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>オリジナルクラスを使用する</title> </head> <body> <p>-- オリジナルクラスを使用する --</p> <p> <hr> 標準的な著作権表示<br> <%= copyright.getNormalHTML() %> <hr> 短い著作権表示<br> <%= copyright.getShortHTML() %> <hr> </p> </body> </html>
CopyrightHTMLクラスをBeanにした場合は
http://www.border.jp/midilin/memo/index.php?UID=1288675628
を参考のこと。
http://www.atmarkit.co.jp/fjava/rensai/jsp06/jsp06.html