天天看點

JSP中的page指令

       page指令主要的作用是用來設定一個JSP頁面的屬性。那麼主要的屬性包含以下幾個:

              · contentType屬性

              · import屬性

       設定MIME類型的屬性,例如,現在一個JSP頁面中包含了中文:

<h1>中國啊,奧運會!</h1>

       因為在浏覽器中預設的編碼是西歐風格的編碼,是以根本無法正确的顯示出中文,是以此頁面在運作的時候最好直接指定好其操作編碼。

       ·<%@page contentType="MIME類型"%>

<%@page contentType="text/html;charset=GBK"%>

<b>注意:</b>

       如果此時MIME類型設定錯誤,則會出現下載下傳框提示:

&lt;%@page contentType="<b>test/html;charset=GBK</b>"%&gt;

網頁制作的時候說過靜态頁面的字尾可以是*.htm、*.html,兩者可以通用就是因為兩者的MIME類型的解析方式完全一樣。Tomcathome/conf/web.xml

    &lt;mime-mapping&gt;

        &lt;extension&gt;htm&lt;/extension&gt;

        &lt;mime-type&gt;<b>text/html</b>&lt;/mime-type&gt;

    &lt;/mime-mapping&gt;

        &lt;extension&gt;html&lt;/extension&gt;

       那麼也就可以直接利用MIME類型将一個頁面轉成Word進行輸出,隻需要設定好相應的MIME類型即可,WORD的MIME類型為:

        &lt;extension&gt;doc&lt;/extension&gt;

        &lt;mime-type&gt;application/msword&lt;/mime-type&gt;

<b>例如:</b>将一個頁面儲存成word

&lt;%@ page contentType="application/msword"%&gt;

&lt;table border="1"&gt;

&lt;%

         for(int i=0;i&lt;10;i++){

%&gt;

                   &lt;tr&gt;

                   for(int j=0;j&lt;10;j++){

                            &lt;td&gt;&lt;%=i*j%&gt;&lt;/td&gt;

                   }

                   &lt;/tr&gt;

         }

&lt;/table&gt;

頁面運作之後出現了以下的提示框:

       在整個page中有很多的屬性,但是所有的屬性隻允許出現一次,惟獨隻有import屬性可以重複出現多次。

<b>例如:</b>以下程式導入多個包

&lt;%@ page contentType="text/html;charset=GBK"%&gt;

&lt;%@ page import="java.io.*"%&gt;

&lt;%@ page import="java.net.*"%&gt;

&lt;%@ page import="java.sql.*,java.util.*"%&gt;

       既然,頁面已經可以導入所需要的包,那麼就一定可以使用JDBC進行資料庫操作,觀察下面的步驟,在JSP中直接連接配接Oracle。

       在連接配接Oracle的時候需要把Oracle中的監聽和資料庫服務啟動,同時需要将驅動程式包拷貝到D:\Tomcat 5.5\common\lib目錄下。

<b>PageDemo05.jsp</b><b>:</b><b></b>

&lt;%@ page import="java.sql.*"%&gt;

&lt;%--

         查詢出EMP表中的全部資料

--%&gt;

&lt;%!

         public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;

         public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:MLDN" ;

         public static final String DBUSER = "scott" ;

         public static final String DBPASS = "tiger" ;

         Connection conn = null ;

         PreparedStatement pstmt = null ;

         ResultSet rs = null ;

try{

         Class.forName(DBDRIVER) ;

         conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;

         String sql = "SELECT empno,ename,job,sal,comm,hiredate FROM emp" ;

         pstmt = conn.prepareStatement(sql) ;

         rs = pstmt.executeQuery() ;

&lt;center&gt;

         &lt;table border="1" width="80%"&gt;

                            &lt;td&gt;雇員編号&lt;/td&gt;

                            &lt;td&gt;雇員姓名&lt;/td&gt;

                            &lt;td&gt;雇員工作&lt;/td&gt;

                            &lt;td&gt;雇員工資&lt;/td&gt;

                            &lt;td&gt;雇員傭金&lt;/td&gt;

                            &lt;td&gt;雇傭日期&lt;/td&gt;

         while(rs.next()){

                   int empno = rs.getInt(1) ;

                   String ename = rs.getString(2) ;

                   String job = rs.getString(3) ;

                   float sal = rs.getFloat(4) ;

                   float comm = rs.getFloat(5) ;

                   java.util.Date date = rs.getDate(6) ;

                            &lt;td&gt;&lt;%=empno%&gt;&lt;/td&gt;

                            &lt;td&gt;&lt;%=ename%&gt;&lt;/td&gt;

                            &lt;td&gt;&lt;%=job%&gt;&lt;/td&gt;

                            &lt;td&gt;&lt;%=sal%&gt;&lt;/td&gt;

                            &lt;td&gt;&lt;%=comm%&gt;&lt;/td&gt;

                            &lt;td&gt;&lt;%=date%&gt;&lt;/td&gt;

         &lt;/table&gt;

&lt;/center&gt;

}catch(Exception e){

         // 向tomcat中進行列印

         System.out.println(e) ;

}finally{

         rs.close() ;

         pstmt.close() ;

         conn.close() ;

}

<b>注意:</b><b></b>

       對于伺服器而言,隻要是放進了新的包,則伺服器必須重新啟動,因為重新啟動之後會自動把所有的包都加載進來。

本文轉自 李興華 51CTO部落格,原文連結:http://blog.51cto.com/lixinghua/101380,如需轉載請自行聯系原作者