Java:12星座占いサーブレット [勉強]
お暑うございます。しゃくれアゴです。
前回、職業訓練の課題で出された「12星座占い」のサーブレットソースをUPしますかねぇ。
あ、そのまえに・・・
最近お気に入りのSTARTREK壁紙の画像をUPしよう。
職業訓練で使用しているPCも、家のデスクトップPCも同じ壁紙にしています。
名にEnterpriseがつくShipたち。
帆船だったり、戦艦?だったり、原子力空母だったり、スペースシャトルだったり・・・
そして、途中からSTARTREKの世界で活躍する宇宙船Enterpriseたちですね。
U.S.S.Enterprise X(Enterpriseに登場)はなんとなく分かるけど・・・複数の輪の中に棒みたいヤツ・・・・・・なんだろ、これは?
そのあとは、U.S.S.Enterprise NCC-1701(TV版スタートレックでカーク船長が乗ってたヤツね:コンスティテューション級)、NCC-1701-A(映画スタートレック4:コンスティテューション級)、NCC-1701-B(映画スタートレック ジェネレーションズ:エクセルシオール級)、NCC-1701-C(TV版TNG(The Next Generation)「亡霊船艦エンタープライズ"C"」:アンバサダー級)、NCC-1701-D(TV版スタートレック TNG:ギャラクシー級)、NCC-1701-E(映画スタートレック ファーストコンタクト:ギャラクシー級??)。で、たぶん最後のエンタープライズはジェイムズ・T・カークが若き頃に乗ったヤツかな?
おっとトレッキー魂に火がつき始めるところだった。(^-^;
そうそう、12星座占いサーブレットの回答ソースでしたねぇ。
まずは、サーブレットが呼び出すメソッドを持っているクラスのソースね。
public class Uranai {
private static String[] colors = {
"赤", "青", "黄", "緑", "紫", "白", "茶", "黄緑", "橙", "水", "灰", "金", "銀"
// {"red", "blue", "yellow", "green", "purple", "white", "saddlebrown", "greenyellow",
// "orange", "aqua", "gray", "gold", "silver"},
};
private static String[] items = {
"シルバーアクセサリー", "観葉植物", "週刊誌", "Tシャツ", "ガンプラ", "キン消し",
"文庫本", "文房具", "招き猫", "狸の置物", "スニーカー", "手鏡", "果物"
};
private static String[] stars = {
"☆★★★★",
"☆☆★★★",
"☆☆☆★★",
"☆☆☆☆★",
"☆☆☆☆☆"
};
private static String[] seiza = {
"おひつじ座",
"おうし座",
"ふたご座",
"かに座",
"しし座",
"おとめ座",
"てんびん座",
"さそり座",
"いて座",
"やぎ座",
"みずがめ座",
"うお座"
};
public static String getSeiza(int n) {
return seiza[n];
}
public static String getMoneyLuck() {
int num = (int)(Math.random() * stars.length);
return stars[num];
}
public static String getLoveLuck() {
int num = (int)(Math.random() * stars.length);
return stars[num];
}
public static String getHealthLuck() {
int num = (int)(Math.random() * stars.length);
return stars[num];
}
public static String getJobLuck() {
int num = (int)(Math.random() * stars.length);
return stars[num];
}
public static String getLuckyColor() {
int num = (int)(Math.random() * colors.length);
return colors[num];
}
public static String getLuckyItem() {
int num = (int)(Math.random() * items.length);
return items[num];
}
}
で、つぎがサーブレットのソース。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class UranaiServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String[] iro = new String[12];
for (int i = 0; i < iro.length; i++) {
iro[i] = Uranai.getLuckyColor();
}
String[] bgColor = new String[12]; //"red";
for (int i = 0; i < bgColor.length; i++) {
if (iro[i].equals("赤")) {
bgColor[i] = "red";
} else if (iro[i].equals("青")) {
bgColor[i] = "blue";
} else if (iro[i].equals("黄")) {
bgColor[i] = "yellow";
} else if (iro[i].equals("緑")) {
bgColor[i] = "green";
} else if (iro[i].equals("紫")) {
bgColor[i] = "purple";
} else if (iro[i].equals("白")) {
bgColor[i] = "white";
} else if (iro[i].equals("茶")) {
bgColor[i] = "saddlebrown";
} else if (iro[i].equals("黄緑")) {
bgColor[i] = "greenyellow";
} else if (iro[i].equals("橙")) {
bgColor[i] = "orange";
} else if (iro[i].equals("水")) {
bgColor[i] = "aqua";
} else if (iro[i].equals("灰")) {
bgColor[i] = "gray";
} else if (iro[i].equals("金")) {
bgColor[i] = "gold";
} else if (iro[i].equals("銀")) {
bgColor[i] = "silver";
}
}
response.setContentType("text/html; charset=Windows-31J");
PrintWriter out = response.getWriter();
String s = "<html>" + "<head>" + "<title>12星座占い</title>" + "</head>" + "<body>";
out.println(s);
for (int i = 0; i < 12; i++) {
out.println("<table border=1 bgcolor=" + bgColor[i] + " cellpadding=5>");
out.println("<tr><td width=200 colspan=2 align=center>");
out.println(Uranai.getSeiza(i));
out.println("</td></tr>");
out.println("<tr><td width=100>金運</td>");
out.println("<td width=100>");
out.println(Uranai.getMoneyLuck());
out.println("</td></tr>");
// out.println("<tr><td width=100>健康運</td>");
// out.println("<td width=100>");
// out.println(Uranai.getHealthLuck());
// out.println("</td></tr>");
// out.println("<tr><td width=100>恋愛運</td>");
// out.println("<td width=100>");
// out.println(Uranai.getLoveLuck());
// out.println("</td></tr>");
// out.println("<tr><td width=100>仕事運</td>");
// out.println("<td width=100>");
// out.println(Uranai.getJobLuck());
// out.println("</td></tr>");
out.println("<tr><td width=100>ラッキーカラー</td>");
out.println("<td align=center>");
out.println(iro[i]);
out.println("</td></tr>");
out.println("<tr><td width=100>ラッキー<br>アイテム</td>");
out.println("<td align=center>");
out.println(Uranai.getLuckyItem());
out.println("</td></tr>");
out.println("</table>");
}
out.println("</body></html>");
}
}
金運以外がコメントアウトされているのは・・・沢山表示するのが面倒だったから(^-^;
サーブレット側にif文をいれて、力業でラッキーカラーと同じ色でテーブルが表示されるようにしています。
もうちょっとスマートな実現手段があるとは思いますが、私が考えついたのは、ここまででした。
これを、tomcatのwebapps→entry→WEB-INF→srcに入れて、WEB-INFでcompile.batを通して2つのソースをコンパイルして、WEB-INFにあるweb.xmlにUranaiServletの情報を追記して、tomcatを起動(または再起動)して、ブラウザでhttp://localhost:8080/entry/UranaiServletにアクセスすれば、その都度12星座の占い結果が見れます。
ランダムだから、信憑性はありませんけどね。
って、占いは「当たるも八卦、当たらぬも八卦」だったっけ。(^-^;
あ、八卦(はっけ)は、中国の神様?女禍の旦那様である伏儀が編み出したモノだそうです。
おっと、TVドラマ「ハンマーセッション」が始まりそうだから、ここまで。
再見! (^-^)ノシ
コメント 0