3.3page指令

       page指令主要的作用是用来设置一个JSP页面的属性。那么主要的属性包含以下几个:
              · contentType属性
              · import属性

3.3.1、contentType属性

       设置MIME类型的属性,例如,现在一个JSP页面中包含了中文:
<h1>中国啊,奥运会!</h1>
       因为在浏览器中默认的编码是西欧风格的编码,所以根本无法正确的显示出中文,所以此页面在运行的时候最好直接指定好其操作编码。
       ·<%@page contentType="MIME类型"%>
<%@page contentType="text/html;charset=GBK"%>
<h1>中国啊,奥运会!</h1>
注意:
       如果此时MIME类型设置错误,则会出现下载框提示:
<%@page contentType="test/html;charset=GBK"%>
<h1>中国啊,奥运会!</h1>
 
网页制作的时候说过静态页面的后缀可以是*.htm、*.html,两者可以通用就是因为两者的MIME类型的解析方式完全一样。Tomcathome/conf/web.xml
    <mime-mapping>
        <extension>htm</extension>
        <mime-type>text/html</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>html</extension>
        <mime-type>text/html</mime-type>
    </mime-mapping>
       那么也就可以直接利用MIME类型将一个页面转成Word进行输出,只需要设置好相应的MIME类型即可,WORD的MIME类型为:
    <mime-mapping>
        <extension>doc</extension>
        <mime-type>application/msword</mime-type>
    </mime-mapping>
例如:将一个页面保存成word
<%@ page contentType="application/msword"%>
<table border="1">
<%
         for(int i=0;i<10;i++){
%>
                   <tr>
<%
                   for(int j=0;j<10;j++){
%>
                            <td><%=i*j%></td>
<%
                   }
%>
                   </tr>
<%
         }
%>
</table>
页面运行之后出现了以下的提示框:
 

3.3.3、import属性

       在整个page中有很多的属性,但是所有的属性只允许出现一次,惟独只有import属性可以重复出现多次。
例如:以下程序导入多个包
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.io.*"%>
<%@ page import="java.net.*"%>
<%@ page import="java.sql.*,java.util.*"%>
       既然,页面已经可以导入所需要的包,那么就一定可以使用JDBC进行数据库操作,观察下面的步骤,在JSP中直接连接Oracle。
       在连接Oracle的时候需要把Oracle中的监听和数据库服务启动,同时需要将驱动程序包拷贝到D:\Tomcat 5.5\common\lib目录下。
PageDemo05.jsp
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.sql.*"%>
<%--
         查询出EMP表中的全部数据
--%>
<%!
         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() ;
%>
<center>
         <table border="1" width="80%">
                   <tr>
                            <td>雇员编号</td>
                            <td>雇员姓名</td>
                            <td>雇员工作</td>
                            <td>雇员工资</td>
                            <td>雇员佣金</td>
                            <td>雇佣日期</td>
                   </tr>
<%
         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) ;
%>
                   <tr>
                            <td><%=empno%></td>
                            <td><%=ename%></td>
                            <td><%=job%></td>
                            <td><%=sal%></td>
                            <td><%=comm%></td>
                            <td><%=date%></td>
                   </tr>
<%
         }
%>
         </table>
</center>
<%
}catch(Exception e){
         // 向tomcat中进行打印
         System.out.println(e) ;
}finally{
%>
<%
         rs.close() ;
         pstmt.close() ;
         conn.close() ;
%>
<%
}
%>
注意:
       对于服务器而言,只要是放进了新的包,则服务器必须重新启动,因为重新启动之后会自动把所有的包都加载进来。