¤³¤³¤Ç¤Ï¡¢¥Ç¡¼¥¿¤¬¥«¥ó¥Þ¶èÀÚ¤ê¤ÇÊݸ¤µ¤ì¤Æ¤¤¤ëCSV (Comma Separated Values) ¥Õ¥¡¥¤¥ë¤ò³«¤¤¤Æ¡¢¥Ç¡¼¥¿¤òÆÉ¤ß½Ð¤·¤Æ½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¤ò³«¤¤¤¿¤êÊĤ¸¤¿¤ê¤¹¤ë¼ê½ç¤Ï¡¢¤É¤Î¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Ç¤âɬÍ×¤È ¤µ¤ì¡¢ÆÃ¼ì¤Ê¼ê½ç¤È¤¤¤¦°õ¾Ý¤ò¼õ¤±¤ë¤«¤âÃΤì¤Þ¤»¤ó¤¬¡¢¤³¤¦¤¤¤¦¤â¤Î¤À¤È ¼õ¤±»ß¤á¤Æ¡¢¤½¤Î¸å¤Î½èÍý¤ò¤·¤Ã¤«¤êÍý²ò¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¤½¤ì¤Ç¤Ï¡¢¤Þ¤º¤Ï¥Õ¥¡¥¤¥ë¤ò³«¤¤¤Æ¥Ç¡¼¥¿¤òÆÉ¤ß¼è¤ë±é½¬¤ò¹Ô¤¤¤Þ¤¹¡£ ¥Æ¥¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¤¢¤ì¤Ð¤¤¤¤¤Î¤Ç¤¹¤¬¡¢¥Ç¡¼¥¿¤¬¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿ CSV¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ¹¤ë¤â¤Î¤È¤·¤Þ¤¹¡£¤Þ¤º¤Ï¡¢¥³¥Ô¡¼¥Ú¡¼¥¹¥È¤Ç ·ë¹½¤Ç¤¹¤Î¤Ç¡¢²¼µ¤Îbuilding.csv¤òºîÀ®¤·¡¢Êݸ¤·¤Æ¤¯¤À¤µ¤¤¡£
building.csv
1,ËÜ´ÛÅï,7,¹ÖµÁ¼¼¡¢±é½¬¼¼¡¢»ö̳¶É¡¢¥¼¥ß¼[ 2,Âΰé´ÛÅï,2,¥¢¥ê¡¼¥Ê¡¢¥È¥ì¡¼¥Ë¥ó¥°¥ë¡¼¥à 3,³Ø½Ñ¥Õ¥í¥ó¥Æ¥£¥¢¶¦Æ±¸¦µæ¿ä¿Ê¥»¥ó¥¿¡¼,3,¹ñºÝ¶¦Æ±¸¦µæ¤Î¥Õ¥í¥ó¥Æ¥£¥¢¥×¥í¥¸¥§¥¯¥È¤ÎµòÅÀ 4,Áí¹ç¾ðÊ󥻥󥿡¼Åï,3,ÅŻҿ޽ñ´Û¡¢¥á¥Ç¥£¥¢¡¦¥Û¡¼¥ë¡¢¥¹¥¿¥¸¥ª 5,³ØÀ¸²ñ´Û¡Ö¥Ô¥ª¡¼¥Í¡×,2,Éô³èư¡¢¥µ¡¼¥¯¥ë¡¢³Ø±àº×¤Ê¤É¤Î²Ý³°³èư¤ÎµòÅÀ 6,¿©Æ²Åï,1,Ȭ³Ñ·Á¤Î·úʪ 7,ÌîµåÉô¥°¥é¥¦¥ó¥É,1,ÌîµåÀìÍÑ¥°¥é¥¦¥ó¥É 8,¥°¥é¥¦¥ó¥É,1,¿ÌÜŪ¥°¥é¥¦¥ó¥É 9,¥Æ¥Ë¥¹¥³¡¼¥È,1,¥Æ¥Ë¥¹¥³¡¼¥[ 10,Ãó¼Ö¾ì,1,³ØÀ¸Ãó¼Ö¾ì 11,Éô¼¼ÅïI¡¦II,2,Éô¼¼¡¢æÆÉ÷º×¼Â¹Ô°Ñ°÷²ñ¤Î½àÈ÷ºî¶ÈÉô²°
¼¡¤Ë¡¢¾åµ¤Îbuilding.csv¥Õ¥¡¥¤¥ë¤ò³«¤¤¤Æ¥Ç¡¼¥¿¤òÆÉ¤ß¼è¤ê¡¢É½¤ò½ÐÎϤ¹¤ë JSP¥Õ¥¡¥¤¥ë¤òºî¤ê¤Þ¤¹¡£²¼µ¤ÎÆâÍÆ¤ò¼êÆþÎϤǺîÀ®¤·¡¢building1.jsp¤È¤¤¤¦ ¥Õ¥¡¥¤¥ë̾¤ÇÊݸ¤·¤Æ¤¯¤À¤µ¤¤¡£
building1.jsp
<%@page contentType="text/html;charset=Shift_JIS"%> <%@page import="java.io.*, java.util.*" %> <html> <head><title>¾ðÊóÂç¤Î·úʪ</title></head> <body> <h1>¾ðÊóÂç¤Î·úʪ</h1> <table border="1"> <tr> <th>No.</th><th>·úʪ</th><th>³¬¿ô</th><th>ÆÃħ</th> </tr> <% String tmp; StringTokenizer stk; FileReader fr = new FileReader(application.getRealPath("building.csv")); BufferedReader br = new BufferedReader(fr); while (br.ready()) { tmp = br.readLine(); stk = new StringTokenizer(tmp, ","); out.println("<tr>"); while (stk.hasMoreTokens()) { out.println("<td>" + stk.nextToken() + "</td>"); } out.println("</tr>"); } br.close(); %> </table> </body> </html>
¤½¤ì¤Ç¤Ï½ç¤òÄɤäÆÀâÌÀ¤·¤Æ¤¤¤¤Þ¤¹¡£
¤Ï¡¢Ê¸»úÎó¤Îʬ³ä¤Ë»ÈÍѤ¹¤ëStringTokenizer¥¯¥é¥¹¤Î ¥¤¥ó¥¹¥¿¥ó¥¹¤òstk¤È¤¤¤¦¥¤¥ó¥¹¥¿¥ó¥¹Ì¾¤ÇÀë¸À¤·¤Æ¤¤¤Þ¤¹¡£Perl¤äPHP¤Ç¤Ï ÆÃ¤Ëʸ»úÎóʬ³äÍѤÎÊÑ¿ô¤ÏÍפê¤Þ¤»¤ó¤¬¡¢Java¤Ç¤Ï¤³¤Î¤è¤¦¤Ê¥¯¥é¥¹¤ò ÍøÍѤ»¤¶¤ë¤òÆÀ¤Þ¤»¤ó¡£
¤Ï¡¢FileReader¥¯¥é¥¹¤òÍѤ¤¤Æ¡¢¥Õ¥¡¥¤¥ë¤ò³«¤¯¤¿¤á¤Î ¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®¤·¤Æ¤¤¤Þ¤¹¡£¤Ç¤¹¤¬¡¢ÁȤ߹þ¤ß¥ª¥Ö¥¸¥§¥¯¥È¡ÊÆÃ¤Ë ÌÀ¼¨¤·¤Ê¤¯¤Æ¤â¾¡¼ê¤Ë»ÈÍѤǤ¤ë¥ª¥Ö¥¸¥§¥¯¥È¡§°ÅÌÛ¥ª¥Ö¥¸¥§¥¯¥È¤È¤â¤¤¤¦¡Ë ¤Ç¤¢¤ëapplication¤ÎgetRealPath() ¤È¤¤¤¦¥á¥½¥Ã¥É¤ò»ÈÍѤ·¤Æ¡¢¥Õ¥¡¥¤¥ë¤ÎÀäÂХѥ¹¤ò¼èÆÀ¤·¤Æ¤¤¤Þ¤¹¡£
¾åµ¤ÎÀë¸À¤Ç¥Õ¥¡¥¤¥ë¤ò³«¤¯¤³¤È¤¬¤Ç¤¡¢¥Ç¡¼¥¿¤òÆÉ¤ß¼è¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£ ¤·¤«¤·¤Ê¤¬¤é¡¢FileReader¤Ï¥Ð¥¤¥Èñ°Ì¤Çʸ»ú¤òÆÉ¤ß¼è¤ë¤¿¤á¸úΨ¤¬ °¤¤¤¿¤á¡¢BufferedReader¥¯¥é¥¹¤òÍѤ¤¤Æ ¤¤¤Þ¤¹¡£
BufferedReader¥¯¥é¥¹¤Ï¡¢ÆÉ¤ß¼è¤Ã¤¿Ê¸»úÎó¤ò¥Ð¥Ã¥Õ¥¡¤ËÃßÀѤ·¤Æ¤«¤é½èÍý¤ò¹Ô ¤¦¤¿¤á¡¢¸úΨ¤¬¾å¤¬¤ê¤Þ¤¹¡£
¤Ï¡¢¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¼è¤ê°ÌÃÖ¤ò¼¨¤¹¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤¬¡¢ÆÉ¤ß¼è¤ê²Äǽ¤«¤É¤¦¤« ¤òÊÖ¤·¤Þ¤¹¡£ÆÉ¤ß¼è¤ê²Äǽ¤Ê¸Â¤ê¡¢whileʸ¤¬·«¤êÊÖ¤µ¤ì¤Þ¤¹¡£ ¤½¤Îwhileʸ¤ÎÃæ¤Î½èÍý¤Ç¤¹¤¬¡¢
¤Ç¤Ï¡¢1¹Ô¤º¤Äʸ»úÎó¤òÆÉ¤ß¹þ¤ó¤Ç¡¢String¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ç¤¢¤ë tmp¤Ë³ÊǼ¤·¤Æ¤¤¤Þ¤¹¡£¤³¤Îtmp¤ËÂФ·¤Æ¡¢
¤Ç¡¢¥«¥ó¥Þ¶èÀÚ¤ê¤Çʬ³ä¤·¡¢¤½¤Î·ë²Ì¤òStringTokenizer¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹ ¤Ç¤¢¤ëstk¤Ë³ÊǼ¤·¤Æ¤¤¤Þ¤¹¡£¤³¤Îʬ³ä·ë²Ì¤ò¼è½Ð¤·¤ÆÉ½¼¨¤µ¤»¤¿¤¤¤ï¤±¤Ç¤¹¤¬¡¢
¤Ï¡¢Ê¬³ä¤µ¤ì¤¿Ê¸»úÎ󤬤ޤÀ¸ºß¤¹¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¡¢Â¸ºß¤¹¤ë¸Â¤êtrue¤ò ÊÖ¤·¤Þ¤¹¡£Ê¬³ä¤µ¤ì¤¿Ê¸»úÎó¤¬Â¸ºß¤¹¤ë¸Â¤ê¡¢whileʸ¤¬·«¤êÊÖ¤µ¤ì¤Þ¤¹¡£¤½¤·¤Æ¡¢
¤Ï¡¢stk.hasMoreTokens()¤Ç¤Þ¤À¸ºß¤¹¤ë¤È¼¨¤µ¤ì¤¿Ê¸»úÎó¤òÆÉ¤ß¤Ë¤¤¤¡¢ ¤½¤Îʸ»úÎó¤ò¼è½Ð¤·¤Æ¤¯¤ì¤Þ¤¹¡£¤³¤Î¼è½Ð¤·¤¿Ê¸»úÎó¤ò¡¢table·Á¼°¤ÎÃæ¤Ç ½ÐÎϤ·¤Æ¤¤¤ë¤È¤¤¤¦Î®¤ì¤Ç¤¹¡£
¼ÂºÝ¤Ë¡¢Sun ONE¾å¤Çưºî³Îǧ¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£¤³¤³¤Ç¤Ï¾ÜºÙ¤ò´°Á´¤Ë ³Ð¤¨¤Ê¤¯¤Æ¤â·ë¹½¤Ç¤¹¤Î¤Ç¡¢ ¡Ö¥Õ¥¡¥¤¥ë¤ò³«¤¤¤Æ¡¢1¹Ôñ°Ì¤ÇÆÉ¤ß¼è¤ê¡¢ ¥«¥ó¥Þ¶èÀÚ¤ê¤Çʬ³ä¤·¡¢½ÐÎϤ·¤Æ¤¤¤ë¡×¤È¤¤¤¦½èÍý¤Îή¤ì¤òÍý²ò¤¹¤ì¤Ð ½½Ê¬¤Ç¤¹¡£
¾åµ¤Îbuilding1.jsp¤Ç¤Ï¡¢Ã±½ã¤Ë¥«¥ó¥Þ¶èÀÚ¤ê¤Î¥Ç¡¼¥¿¤òÁ´¤Æ½ÐÎϤ·¤Æ ¤¤¤Þ¤·¤¿¡£CSV¥Õ¥¡¥¤¥ë¤Ïñ¤Ë¥«¥ó¥Þ¤Ç¥Ç¡¼¥¿¤¬¶èÀÚ¤é¤ì¤Æ¤¤¤ë¤À¤±¤Ç¤¹¤Î¤Ç¡¢ ¥Ç¡¼¥¿¤¬»ý¤Ä°À¡Ê̾Á°¤äÆÃħ¤Ê¤É¡Ë¤Ï¤ï¤«¤ê¤Þ¤»¤ó¡£¤Ç¤¹¤¬¡¢ ¥Ç¡¼¥¿¤¬»ý¤Ä°À¡¢¤ª¤è¤Ó¥Õ¥¡¥¤¥ë¤Î¹½À®¤¬»öÁ°¤Ë¤ï¤«¤Ã¤Æ¤¤¤ë CSV¥Õ¥¡¥¤¥ë¤Ï»È¤¤¤ä¤¹¤¤¤È¤â¸À¤¨¤Þ¤¹¡£
¤³¤³¤Ç¤Ï¡¢¥Ç¡¼¥¿¤ÎʤӤ¬¤ï¤«¤Ã¤Æ¤¤¤Æ¡¢2ÈÖÌܤΡַúʪ̾¡×¤À¤±¤òÃê½Ð¤·¤Æ ɽ¼¨¤µ¤»¤¿¤¤¤È¤¤¤¦ÆâÍÆ¤ò±é½¬¤·¤Þ¤¹¡£²¼µ¤Îbuilding2.jsp¤òºîÀ®¤·¤Æ ¤¯¤À¤µ¤¤¡£
building2.jsp
<%@page contentType="text/html;charset=Shift_JIS"%> <%@page import="java.io.*, java.util.*" %> <html> <head><title>¾ðÊóÂç¤Î·úʪ</title></head> <body> <h1>¾ðÊóÂç¤Î·úʪ</h1> <table border="1"> <tr> <th>·úʪ</th> </tr> <% String tmp; StringTokenizer stk; FileReader fr = new FileReader(application.getRealPath("building.csv")); BufferedReader br = new BufferedReader(fr); int i, num; String[] strData = new String[10]; while (br.ready()) { tmp = br.readLine(); stk = new StringTokenizer(tmp, ","); num = stk.countTokens(); for (i=0; i<num; i++) { strData[i] = stk.nextToken(); } out.println("<tr>"); out.println("<td>" + strData[1] + "</td>"); out.println("</tr>"); } br.close(); %> </table> </body> </html>
¾åµ¤Ç¤Ï¡¢ÆÃÄê¤Î¥Ç¡¼¥¿¡Ê2ÈÖÌܤΡַúʪ̾¡×¤Î¥Ç¡¼¥¿¡Ë¤À¤±¤ò¼è¤ê½Ð¤·¤¿¤¤¤Î ¤Ç¤¹¤¬¡¢1¹Ôʬ¤Îʸ»úÎó¤òÆÉ¤ß¹þ¤ó¤Ç¤¤¿¸å¤Ë¡¢
for (i=0; i<num; i++) { strData[i] = stk.nextToken(); }
¤Î¤è¤¦¤Ë¡¢String¥¯¥é¥¹¤ÎstrData¤È¤¤¤¦ÇÛÎó¤Ë¡¢°ìöʸ»úÎó¤ò³ÊǼ¤·¤Æ¤¤¤Þ¤¹¡£ ¤½¤Î¸å¡¢
¤Ë¤ª¤¤¤Æ¡¢2ÈÖÌܤΥǡ¼¥¿(strData[1])¤ò½ÐÎϤ·¤Æ¤¤¤Þ¤¹¡£
¤½¤ì¤Ç¤Ï¡¢¾åµ¤Î½èÍý¤ò´ðËܤˤ·¤Æ¡¢³¬¿ô¤¬3³¬°Ê¾å¤Î·úʪ¤À¤±¤òɽ¼¨¤µ¤»¤ë JSP¥Õ¥¡¥¤¥ë¤¬²¼µ¤Ë¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£³¬¿ô¥Ç¡¼¥¿¤Ïbuilding.csv¤Ç¤Ï3ÈÖÌÜ¤Ë µ½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢strData[2]¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
building3.jsp
<%@page contentType="text/html;charset=Shift_JIS"%> <%@page import="java.io.*, java.util.*" %> <html> <head><title>¾ðÊóÂç¤Î·úʪ¸¡º÷</title></head> <body> <h1>¾ðÊóÂç¤Î·úʪ¸¡º÷</h1> <h2>¸¡º÷¾ò·ï¡§¡Ö³¬¿ô¡×¤¬3°Ê¾å</h2> <table border="1"> <tr> <th>No.</th><th>·úʪ</th><th>³¬¿ô</th><th>ÆÃħ</th> </tr> <% String tmp; StringTokenizer stk; FileReader fr = new FileReader(application.getRealPath("building.csv")); BufferedReader br = new BufferedReader(fr); int i, num, flag=0; String[] strData = new String[10]; while (br.ready()) { tmp = br.readLine(); stk = new StringTokenizer(tmp, ","); num = stk.countTokens(); for (i=0; i<num; i++) { strData[i] = (String) stk.nextToken(); } if (Integer.parseInt(strData[2]) >= 3) { out.println("<tr>"); for (i=0; i<num; i++) { out.println("<td>" + strData[i] + "</td>"); } out.println("</tr>"); flag = 1; } } br.close(); %> </table> <% if (flag == 0) { out.println("<p>³ºÅö¤¹¤ë·úʪ¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£</p>"); } %> </body> </html>
¡Ö³¬¿ô¤¬3³¬°Ê¾å¤Ê¤éɽ¼¨¤µ¤»¤ë¡×¤È¤¤¤¦½èÍý¤Ï¡¢²¼µ¤Îµ½Ò¤¬Âбþ¤·¤Æ¤¤¤Þ¤¹¡£
³¬¿ô¥Ç¡¼¥¿¤È¤¤¤¤¤Þ¤·¤Æ¤â¡¢strData¤ÏString¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ç¤¹¤«¤é¡¢ ʸ»úÎó¤È¤·¤ÆÇ§¼±¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢¾åµ¤Î¤è¤¦¤Ë¡¢Integer¥¯¥é¥¹¤Î parseInt()¥á¥½¥Ã¥É¤ò»ÈÍѤ·¤Æ¡¢À°¿ô¤È¤·¤Æ¤ÎÈæ³Ó¤¬¤Ç¤¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¤Þ¤¿¡¢1·ï¤â³ºÅö¤¹¤ë·úʪ¤¬¤Ê¤±¤ì¤Ð¡¢¡Ö³ºÅö¤¹¤ë·úʪ¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡× ¤È¤¤¤¦É½¼¨¤ò¤µ¤»¤ë¤è¤¦¤Ë½èÍý¤·¤Æ¤¤¤Þ¤¹¡£
º£Å٤ϡ¢¡Ö¸¡º÷¡ÊÀµµ¬É½¸½¤ÎÍøÍÑ¡Ë¡×¤Ç ±é½¬¤·¤¿¤è¤¦¤Ë¡¢Àµµ¬É½¸½¤òÍøÍѤ·¤Æ¤ß¤Þ¤¹¡£¡ÖPattern¡×¥¯¥é¥¹¤ä ¡ÖMatcher¡×¥¯¥é¥¹¤òÍøÍѤ·¤Æ¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®¤¹¤ë¤È¤³¤í¤ÏƱ¤¸¤Ç¤¹¡£
²¼µ¤Îbuilding4.jsp¤Ç¤Ï¡¢¡Ö´Û¡×¤È¤¤¤¦Ê¸»úÎ󤬡¢2ÈÖÌܤΥǡ¼¥¿¤Ç¤¢¤ë ·úʪ̾¤Î¥Ç¡¼¥¿(strData[1])¤Ë´Þ¤Þ¤ì¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤Æ¤¤¤Þ¤¹¡£
building4.jsp
<%@page contentType="text/html;charset=Shift_JIS"%> <%@page import="java.io.*, java.util.*, java.util.regex.*" %> <html> <head><title>¾ðÊóÂç¤Î·úʪ¸¡º÷</title></head> <body> <h1>¾ðÊóÂç¤Î·úʪ¸¡º÷</h1> <h2>¸¡º÷¾ò·ï¡§¡Ö·úʪ¡×¤Ë¡Ö´Û¡×¤ò´Þ¤à</h2> <table border="1"> <tr> <th>No.</th><th>·úʪ</th><th>³¬¿ô</th><th>ÆÃħ</th> </tr> <% String tmp; StringTokenizer stk; FileReader fr = new FileReader(application.getRealPath("building.csv")); BufferedReader br = new BufferedReader(fr); int i, num, flag=0; String[] strData = new String[10]; Pattern searchPattern = Pattern.compile("´Û"); while (br.ready()) { tmp = br.readLine(); stk = new StringTokenizer(tmp, ","); num = stk.countTokens(); for (i=0; i<num; i++) { strData[i] = (String) stk.nextToken(); } Matcher searchMatcher = searchPattern.matcher(strData[1]); if (searchMatcher.find()) { out.println("<tr>"); for (i=0; i<num; i++) { out.println("<td>" + strData[i] + "</td>"); } out.println("</tr>"); flag = 1; } } br.close(); %> </table> <% if (flag == 0) { out.println("<p>³ºÅö¤¹¤ë·úʪ¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£</p>"); } %> </body> </html>
ºÇ¸å¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢HTML¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥à¤«¤éÁ÷¤é¤ì¤Æ¤¤¿¥Ç¡¼¥¿¤ò¸¡º÷¤Î ¾ò·ï¤Ë»ÈÍѤ·¤Þ¤¹¡£building4.jsp¤ËÂФ·¤Æ¡¢¥Õ¥©¡¼¥à¤«¤é¤Î¥Ç¡¼¥¿¤ÎÆÉ¤ß¼è¤ê ¤ÎÉôʬ¤òÄɲ乤ë¤À¤±¤Ç¤¹¤Î¤Ç¡¢¤½¤ì¤Û¤ÉÆñ¤·¤¯¤Ï¤¢¤ê¤Þ¤»¤ó¡£
building5.html
<html> <head> <title>¾ðÊóÂç¤Î·úʪ¸¡º÷</title> </head> <body> <form method="post" action="building5.jsp"> <p> ¸¡º÷¾ò·ï¤òÆþÎϤ·¤Æ²¼¤µ¤¤ </p> <table border="1"> <tr> <th>·úʪ̾</th> <td><input type="text" size="30" name="building" /></td> </tr> </table> <br /> <input type="submit" value="Á÷¿®" /> </form> </body> </html>
building5.jsp
<%@page contentType="text/html;charset=Shift_JIS"%> <%@page import="java.io.*, java.util.*, java.util.regex.*" %> <%! private String escapeChar(String strInput){ StringBuffer strOutput=new StringBuffer(); for(int i=0;i<strInput.length();i++){ switch(strInput.charAt(i)){ case '<' : strOutput.append("<"); break; case '>' : strOutput.append(">"); break; case '&' : strOutput.append("&"); break; case '"' : strOutput.append("""); break; default : strOutput.append(strInput.charAt(i)); break; } } return strOutput.toString(); } %> <html> <head><title>¾ðÊóÂç¤Î·úʪ¸¡º÷</title></head> <body> <% request.setCharacterEncoding("Shift_JIS"); String searchBuilding = escapeChar(request.getParameter("building")); %> <h1>¾ðÊóÂç¤Î·úʪ¸¡º÷</h1> <h2>¸¡º÷¾ò·ï¡§¡Ö·úʪ¡×¤Ë¡Ö<%=searchBuilding%>¡×¤ò´Þ¤à</h2> <table border="1"> <tr> <th>No.</th><th>·úʪ</th><th>³¬¿ô</th><th>ÆÃħ</th> </tr> <% String tmp; StringTokenizer stk; FileReader fr = new FileReader(application.getRealPath("building.csv")); BufferedReader br = new BufferedReader(fr); int i, num, flag=0; String[] strData = new String[10]; Pattern searchPattern = Pattern.compile(searchBuilding); while (br.ready()) { tmp = br.readLine(); stk = new StringTokenizer(tmp, ","); num = stk.countTokens(); for (i=0; i<num; i++) { strData[i] = (String) stk.nextToken(); } Matcher searchMatcher = searchPattern.matcher(strData[1]); if (searchMatcher.find()) { out.println("<tr>"); for (i=0; i<num; i++) { out.println("<td>" + strData[i] + "</td>"); } out.println("</tr>"); flag = 1; } } br.close(); %> </table> <% if (flag == 0) { out.println("<p>³ºÅö¤¹¤ë·úʪ¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£</p>"); } %> </body> </html>