J2EE Part 20

1. 課本 JSP 2.0 的第17章 -- XML
課本範例:book.xml

<?xml version='1.0' encoding='Big5'?>
<books>
<book><name>Visual C++ .NET 入門進階</name><date>2009-10-5</date><price>650</price></book>
<book><name>精通視窗程式設計</name><date>2009-7-15</date><price>790</price></book>
<book><name>Access 2007 徹底研究</name><date>2008-8-1</date><price>650</price></book>
<book><name>Access 2007 程式設計</name><date>2008-11-21</date><price>690</price></book>
<book><name>XML技術實務</name><date>2009-4-15</date><price>720</price></book>
</books>


課本範例:getXML.jsp

<%@ page contentType="text/html; charset=Big5"%>
<%@ page import="javax.xml.parsers.DocumentBuilderFactory,
        javax.xml.parsers.DocumentBuilder,
org.w3c.dom.*"%>
<%
Document BookDOM = null;
String File = request.getRealPath("/") + "ex17-1\\book.xml";
//取得XML文件的儲存路徑與檔名,使用Resin伺服器可改成
//String File = request.getRealPath(".") + "book.xml";

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//STEP 1、建立DocumentBoulderFactory的實體

try{
DocumentBuilder builder = factory.newDocumentBuilder();
//STEP 2、以DocumentBoulderFactory物件建立DocumentBuilder的實體

BookDOM = builder.parse(File);
// STEP 3、呼叫parse方法傳入XML文件的路徑與名稱
//,執行剖析取得Document物件

}
catch(Exception e){
out.println("XML文件剖析錯誤 : " + e.getMessage());
}
%>
<HTML>
<HEAD>
<TITLE>取得XML文件並輸出為HTML文件</TITLE>
</HEAD>
<BODY>
<CENTER>
<FONT SIZE = 5 COLOR = blue>取得XML文件並輸出為HTML文件</FONT>
</CENTER>
<HR>
<%
NodeList bookList = BookDOM.getElementsByTagName("book");
//取得根元素下包含所有books元素節點的節點集
%>
<P></P></CENTER>

<TABLE bgcolor=DodgerBlue width=80% align=center>
<TR bgcolor=SkyBlue>
<TD><B>書名</B></TD><TD><B>出版日期</B></TD><TD><B>價格</B></TD>
</TR>
<%
String Color;
for(int i=0; i<bookList.getLength(); i++){
Node curNode = bookList.item(i); //取得節點集包含的節點
NodeList detail = curNode.getChildNodes();
//取得節點所包含子節點的節點集,將包含name、date與price節點
out.print("<TR>");

//取得節點集的長度,並配合for迴圈,輸出節點集的值
for(int j=0; j<detail.getLength(); j++){

if (j % 2 == 0)
Color = "Wheat";
else
Color = "LightGoldenrodYellow";
%>
<TD bgcolor= <%= Color %> ><B>
<%= detail.item(j).getChildNodes().item(0).getNodeValue() %>
<%--先呼叫item(j)方法取得detail節點集內的name、date與price節點,
   再呼叫getChildNodes方法取得上述節點的節點集,
   以item(0)取得第一個節點,該節點為包含節點值的文字節點,
   再呼叫getNodeValue方法取得文字節點之值
--%>
</B></TD>
<%
}
out.print("</TR>");
}
%>
</TABLE>
</BODY>
</HTML>



2. 課本 JSP 2.0 的第3章 -- JavaScript
課本範例:ClientProg.htm

<HTML>
<HEAD>
<TITLE>在客戶端執行的程式</TITLE>
</HEAD>
<BODY>
<CENTER>
<FONT SIZE = 5 COLOR = blue>在客戶端執行的程式</FONT>
</CENTER>
<HR>
<P></P>
<SCRIPT Language = javascript>
<!--
function ShowTime()
{
alert("現在時間是" + new Date());
//呼叫window物件的alert方法顯示系統時間
}
-->
</SCRIPT>
<INPUT type="button" value="現在時間" name=button1 onclick = "ShowTime()">
</BODY>
</HTML>


老師範例:index.htm

<html>
  <head>
  </head>
  <body>
   //直接用下面的語法,可代替上面的語法
    <button onClick='javascript: alert("真乖!")'> 按我 </button>
    <img src='./apple.jpg' onClick='javascript: alert("別亂摸!")'>
    <a onClick='javascript: alert(" 吼! ..... 喵!")'>獅子</a>
  </body>
</html>


3.JavaScript 老師補充
老師範例:四星彩
FourStar_javascript\FourStar.htm

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>四星彩</title>
</head>
<body>
<script language='javascript'>
  document.write("四星彩開獎了: ");
  for ( i=0; i<4; i++){
    document.write("<img src='./image/");
    document.write( Math.floor(Math.random()*10) );
    document.write(".JPG'>");
  }
</script>
</body>
</html>


老師範例:樂透彩
Lottery_javascript\lottery.htm

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>樂透彩</title>
</head>
<body>
<script language='javascript'>
  document.write("樂透彩開獎了: ");
  balls = new Array(7);
  for ( i=0; i<balls.length; i++){
    balls[i] = Math.floor(Math.random()*49+1);
    //檢查是否重複
    for ( j=0; j<i; j++){
      if ( balls[i] == balls[j] ){
        i--;
        break;
      }
    }
  }
  //排序
  for ( i=0; i<balls.length-2; i++){
    if ( balls[i] > balls[i+1] ){
      t = balls[i];
      balls[i] = balls[i+1];
      balls[i+1] =t;
      i=-1;
    }
  }
  //顯示
  for ( i=0; i<balls.length; i++){
    document.write(balls[i] +", ");
  }
</script>
</body>
</html>
結果:


No comments: